:root {
  --navy: #061d46;
  --navy-2: #0a2d68;
  --blue: #0b63f6;
  --blue-bright: #168dff;
  --cyan: #21d4fd;
  --background: #f5f8fc;
  --surface: #ffffff;
  --surface-soft: #f8faff;
  --text: #12213a;
  --muted: #637087;
  --success: #17a673;
  --warning: #f3a62f;
  --error: #d64242;
  --border: #dde5f0;
  --shadow-sm: 0 8px 24px rgba(6, 29, 70, 0.07);
  --shadow-lg: 0 30px 80px rgba(6, 29, 70, 0.16);
  --radius-sm: 12px;
  --radius: 20px;
  --radius-lg: 28px;
  --sidebar-width: 272px;
  --focus: 0 0 0 4px rgba(22, 141, 255, 0.2);
  --primary: #0b63f6;
  --primary-soft: #eaf2ff;
  --card-primary: #0b63f6;
  --card-accent: #21d4fd;
  --card-bg: #f5f8fc;
  --card-surface: #ffffff;
  --card-text: #12213a;
  --card-font: Inter;
  color-scheme: light;
}

* {
  box-sizing: border-box;
}

html {
  min-width: 320px;
  font-family: Inter, Poppins, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--text);
  background: var(--background);
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  min-height: 100vh;
  background: var(--background);
  color: var(--text);
  line-height: 1.5;
}

button,
input,
select,
textarea {
  font: inherit;
}

a {
  color: var(--blue);
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: none;
  box-shadow: var(--focus);
}

img {
  display: block;
  max-width: 100%;
}

[hidden] {
  display: none !important;
}

.skip-link {
  position: fixed;
  z-index: 1000;
  top: 12px;
  left: 12px;
  transform: translateY(-180%);
  padding: 10px 16px;
  border-radius: 10px;
  background: var(--surface);
  color: var(--navy);
  font-weight: 700;
  box-shadow: var(--shadow-sm);
}

.skip-link:focus {
  transform: translateY(0);
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--blue-bright);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.eyebrow::before {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
  content: "";
  box-shadow: 0 0 0 5px rgba(22, 141, 255, 0.12);
}

.auth-body {
  overflow-x: hidden;
}

.auth-shell {
  display: grid;
  min-height: 100vh;
  grid-template-columns: minmax(420px, 1.05fr) minmax(460px, 0.95fr);
  background: var(--surface);
}

.auth-brand-panel {
  position: relative;
  isolation: isolate;
  display: flex;
  min-height: 100vh;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  padding: clamp(36px, 6vw, 82px);
  background:
    radial-gradient(circle at 76% 18%, rgba(33, 212, 253, 0.3), transparent 26%),
    radial-gradient(circle at 14% 76%, rgba(22, 141, 255, 0.26), transparent 30%),
    linear-gradient(145deg, #04132f 0%, var(--navy) 44%, #0a3477 100%);
  color: white;
}

.auth-brand-panel::before,
.auth-brand-panel::after {
  position: absolute;
  z-index: -1;
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 50%;
  content: "";
}

.auth-brand-panel::before {
  width: 540px;
  height: 540px;
  right: -220px;
  bottom: -170px;
}

.auth-brand-panel::after {
  width: 320px;
  height: 320px;
  right: -74px;
  bottom: -38px;
}

.brand-mark--light {
  width: min(300px, 52%);
}

.brand-mark--light img {
  width: 100%;
  filter: brightness(0) invert(1);
  opacity: 0.98;
}

.auth-brand-copy {
  position: relative;
  z-index: 2;
  max-width: 650px;
  margin: auto 0;
  padding: 72px 0;
}

.auth-brand-copy .eyebrow {
  color: var(--cyan);
}

.auth-brand-copy h1 {
  margin: 20px 0 24px;
  font-size: clamp(3rem, 5.2vw, 5.8rem);
  font-weight: 800;
  letter-spacing: -0.055em;
  line-height: 0.98;
}

.auth-brand-copy p {
  max-width: 560px;
  margin: 0;
  color: rgba(255, 255, 255, 0.73);
  font-size: clamp(1rem, 1.5vw, 1.25rem);
  line-height: 1.75;
}

.auth-brand-orbit {
  position: absolute;
  z-index: -1;
  width: 170px;
  height: 170px;
  top: 24%;
  right: 12%;
  border: 1px solid rgba(33, 212, 253, 0.3);
  border-radius: 50%;
  box-shadow:
    0 0 0 28px rgba(33, 212, 253, 0.04),
    0 0 90px rgba(33, 212, 253, 0.17);
}

.auth-main {
  display: flex;
  min-height: 100vh;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: clamp(24px, 5vw, 72px);
  background:
    linear-gradient(rgba(11, 99, 246, 0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(11, 99, 246, 0.025) 1px, transparent 1px),
    var(--surface);
  background-size: 34px 34px;
}

.auth-card {
  width: min(100%, 470px);
}

.auth-mobile-logo {
  display: none;
  width: 170px;
  margin: 0 auto 30px;
}

.form-heading {
  margin-bottom: 32px;
}

.form-heading h2 {
  margin: 12px 0 10px;
  font-size: clamp(2rem, 4vw, 2.65rem);
  letter-spacing: -0.045em;
  line-height: 1.08;
}

.form-heading p {
  margin: 0;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.7;
}

.form-stack {
  display: grid;
  gap: 20px;
}

.field-group {
  display: grid;
  gap: 8px;
}

.field-group label {
  color: var(--text);
  font-size: 0.9rem;
  font-weight: 750;
}

.field-label-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.field-label-row a {
  font-size: 0.86rem;
  font-weight: 700;
}

.field-group input,
.field-group select,
.field-group textarea {
  width: 100%;
  min-height: 52px;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 0 15px;
  background: var(--surface);
  color: var(--text);
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.field-group input:hover,
.field-group select:hover,
.field-group textarea:hover {
  border-color: #bfd0e8;
}

.field-group input:focus,
.field-group select:focus,
.field-group textarea:focus {
  border-color: var(--blue-bright);
  background: #fbfdff;
  box-shadow: var(--focus);
  outline: none;
}

.password-field {
  position: relative;
}

.password-field input {
  padding-right: 78px;
}

.password-field button {
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
  border: 0;
  border-radius: 9px;
  padding: 7px 9px;
  background: transparent;
  color: var(--blue);
  cursor: pointer;
  font-size: 0.78rem;
  font-weight: 800;
}

.field-error {
  color: var(--error);
  font-size: 0.82rem;
  font-weight: 650;
}

.button {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 1px solid transparent;
  border-radius: 13px;
  padding: 11px 18px;
  cursor: pointer;
  font-weight: 800;
  text-align: center;
  text-decoration: none;
  transition: transform 0.16s ease, box-shadow 0.16s ease, background 0.16s ease;
}

.button:hover {
  text-decoration: none;
  transform: translateY(-1px);
}

.button:active {
  transform: translateY(0);
}

.button--primary {
  background: linear-gradient(135deg, var(--blue), var(--blue-bright));
  color: white;
  box-shadow: 0 14px 30px rgba(11, 99, 246, 0.24);
}

.button--primary:hover {
  box-shadow: 0 18px 34px rgba(11, 99, 246, 0.3);
}

.button--secondary {
  border-color: var(--border);
  background: var(--surface);
  color: var(--navy);
}

.button--secondary:hover {
  border-color: #b7c9e4;
  background: var(--surface-soft);
}

.button--quiet {
  min-height: 38px;
  border-color: #cfe0f6;
  padding: 7px 12px;
  background: #edf5ff;
  color: var(--blue);
  font-size: 0.82rem;
}

.button--full {
  width: 100%;
}

.alert {
  margin-bottom: 20px;
  border: 1px solid;
  border-radius: 14px;
  padding: 13px 15px;
  font-size: 0.9rem;
  font-weight: 650;
}

.alert--success {
  border-color: rgba(23, 166, 115, 0.25);
  background: rgba(23, 166, 115, 0.08);
  color: #0f7954;
}

.alert--error {
  border-color: rgba(214, 66, 66, 0.25);
  background: rgba(214, 66, 66, 0.07);
  color: #ad2929;
}

.security-note {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  margin-top: 24px;
  border-top: 1px solid var(--border);
  padding-top: 20px;
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.55;
}

.security-note span {
  display: grid;
  flex: 0 0 22px;
  height: 22px;
  place-items: center;
  border-radius: 50%;
  background: rgba(23, 166, 115, 0.1);
  color: var(--success);
  font-weight: 900;
}

.security-note p {
  margin: 0;
}

.auth-footer {
  margin: 38px 0 0;
  color: #91a0b6;
  font-size: 0.78rem;
}

.empty-state {
  display: grid;
  justify-items: center;
  text-align: center;
}

.empty-state__icon {
  display: grid;
  width: 64px;
  height: 64px;
  place-items: center;
  border-radius: 20px;
  background: rgba(214, 66, 66, 0.1);
  color: var(--error);
  font-size: 1.8rem;
  font-weight: 900;
}

.empty-state h2 {
  margin: 22px 0 10px;
  font-size: 2rem;
  letter-spacing: -0.035em;
}

.empty-state p {
  max-width: 390px;
  margin: 0 0 24px;
  color: var(--muted);
  line-height: 1.65;
}

.error-code {
  background: linear-gradient(135deg, var(--blue), var(--cyan));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-size: clamp(4.5rem, 12vw, 7rem);
  font-weight: 900;
  letter-spacing: -0.07em;
  line-height: 1;
}

.debug-box {
  width: 100%;
  max-height: 180px;
  overflow: auto;
  border-radius: 12px;
  padding: 14px;
  background: #111827;
  color: #d1fae5;
  text-align: left;
  white-space: pre-wrap;
}

.admin-body {
  min-height: 100vh;
  background: var(--background);
}

.admin-shell {
  min-height: 100vh;
}

.sidebar {
  position: fixed;
  z-index: 40;
  inset: 0 auto 0 0;
  display: flex;
  width: var(--sidebar-width);
  flex-direction: column;
  border-right: 1px solid rgba(255, 255, 255, 0.08);
  padding: 24px 18px;
  background:
    radial-gradient(circle at 10% 88%, rgba(33, 212, 253, 0.14), transparent 28%),
    linear-gradient(180deg, #051a40 0%, #061d46 100%);
  color: white;
}

.sidebar__brand {
  width: 190px;
  margin: 2px 7px 28px;
}

.sidebar__brand img {
  filter: brightness(0) invert(1);
}

.sidebar__nav {
  display: grid;
  gap: 8px;
}

.nav-item {
  display: flex;
  min-height: 48px;
  align-items: center;
  gap: 12px;
  border-radius: 13px;
  padding: 10px 13px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.92rem;
  font-weight: 700;
  transition: color 0.16s ease, background 0.16s ease;
}

.nav-item:hover,
.nav-item--active {
  background: linear-gradient(135deg, rgba(22, 141, 255, 0.23), rgba(33, 212, 253, 0.08));
  color: white;
  text-decoration: none;
}

.nav-item--active {
  box-shadow: inset 3px 0 0 var(--cyan);
}

.nav-icon {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.08);
  font-size: 1rem;
}

.sidebar__footer {
  margin-top: auto;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding: 20px 8px 4px;
}

.sidebar__footer p {
  margin: 9px 0 0;
  color: rgba(255, 255, 255, 0.48);
  font-size: 0.76rem;
}

.module-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: rgba(255, 255, 255, 0.83);
  font-size: 0.78rem;
  font-weight: 700;
}

.module-pill span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #32e6a1;
  box-shadow: 0 0 0 5px rgba(50, 230, 161, 0.1);
}

.admin-content {
  min-height: 100vh;
  margin-left: var(--sidebar-width);
}

.topbar {
  position: sticky;
  z-index: 30;
  top: 0;
  display: flex;
  min-height: 82px;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-bottom: 1px solid rgba(221, 229, 240, 0.9);
  padding: 12px clamp(20px, 3.4vw, 48px);
  background: rgba(255, 255, 255, 0.9);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}

.topbar__title {
  display: grid;
  gap: 2px;
}

.topbar__title .eyebrow {
  font-size: 0.62rem;
}

.topbar__title strong {
  font-size: 1.05rem;
}

.topbar__actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.topbar__menu {
  display: none !important;
}

.icon-button {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  color: var(--navy);
  cursor: pointer;
  font-size: 1rem;
  font-weight: 800;
  transition: background 0.16s ease, transform 0.16s ease;
}

.icon-button:hover {
  background: var(--surface-soft);
  transform: translateY(-1px);
}

.user-chip {
  display: flex;
  align-items: center;
  gap: 10px;
  border-left: 1px solid var(--border);
  padding-left: 14px;
}

.user-chip__avatar {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border-radius: 13px;
  background: linear-gradient(135deg, var(--blue), var(--cyan));
  color: white;
  font-weight: 900;
  box-shadow: 0 9px 22px rgba(11, 99, 246, 0.2);
}

.user-chip__copy {
  display: grid;
  line-height: 1.25;
}

.user-chip__copy strong {
  max-width: 160px;
  overflow: hidden;
  font-size: 0.84rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.user-chip__copy small {
  max-width: 160px;
  overflow: hidden;
  color: var(--muted);
  font-size: 0.72rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.main-content {
  padding: clamp(22px, 3.5vw, 48px);
}

.hero-card {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  overflow: hidden;
  border-radius: var(--radius-lg);
  padding: clamp(28px, 5vw, 52px);
  background:
    radial-gradient(circle at 86% 12%, rgba(33, 212, 253, 0.24), transparent 26%),
    linear-gradient(135deg, #061d46, #0b367a);
  color: white;
  box-shadow: 0 26px 55px rgba(6, 29, 70, 0.17);
}

.hero-card::after {
  position: absolute;
  z-index: -1;
  width: 260px;
  height: 260px;
  right: -80px;
  bottom: -150px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 50%;
  content: "";
  box-shadow: 0 0 0 38px rgba(255, 255, 255, 0.025);
}

.hero-card .eyebrow {
  color: var(--cyan);
}

.hero-card h1 {
  margin: 12px 0 12px;
  font-size: clamp(2.15rem, 4vw, 3.7rem);
  letter-spacing: -0.05em;
  line-height: 1.05;
}

.hero-card p {
  max-width: 760px;
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.7;
}

.hero-card__status {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 999px;
  padding: 10px 14px;
  background: rgba(255, 255, 255, 0.08);
  font-size: 0.82rem;
  font-weight: 750;
  white-space: nowrap;
}

.status-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #3be3a6;
  box-shadow: 0 0 0 5px rgba(59, 227, 166, 0.12);
}

.metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin-top: 24px;
}

.metric-card,
.panel-card {
  border: 1px solid rgba(221, 229, 240, 0.95);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}

.metric-card {
  display: grid;
  gap: 5px;
  min-height: 146px;
  align-content: center;
  border-radius: var(--radius);
  padding: 24px;
}

.metric-card__label {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 750;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.metric-card strong {
  color: var(--navy);
  font-size: clamp(1.65rem, 3vw, 2.25rem);
  letter-spacing: -0.04em;
}

.metric-card small {
  color: #8390a5;
  font-size: 0.76rem;
}

.dashboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
  gap: 24px;
  margin-top: 24px;
}

.panel-card {
  border-radius: var(--radius);
  padding: clamp(22px, 3vw, 32px);
}

.panel-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 24px;
}

.panel-card__header h2 {
  margin: 7px 0 0;
  font-size: 1.35rem;
  letter-spacing: -0.025em;
}

.badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 7px 10px;
  font-size: 0.72rem;
  font-weight: 800;
}

.badge--success {
  background: rgba(23, 166, 115, 0.1);
  color: #117653;
}

.check-list {
  display: grid;
  gap: 18px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.check-list li {
  display: flex;
  gap: 13px;
}

.check-list > li > span {
  display: grid;
  flex: 0 0 28px;
  height: 28px;
  place-items: center;
  border-radius: 9px;
  background: rgba(23, 166, 115, 0.09);
  color: var(--success);
  font-size: 0.78rem;
  font-weight: 900;
}

.check-list li div {
  display: grid;
  gap: 3px;
}

.check-list strong {
  font-size: 0.9rem;
}

.check-list small {
  color: var(--muted);
  line-height: 1.5;
}

.detail-list {
  display: grid;
  gap: 0;
  margin: 0;
}

.detail-list > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border-bottom: 1px solid var(--border);
  padding: 13px 0;
}

.detail-list > div:first-child {
  padding-top: 0;
}

.detail-list dt {
  color: var(--muted);
  font-size: 0.82rem;
}

.detail-list dd {
  max-width: 58%;
  margin: 0;
  overflow: hidden;
  font-size: 0.84rem;
  font-weight: 750;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.notice-box {
  margin-top: 20px;
  border: 1px solid rgba(243, 166, 47, 0.24);
  border-radius: 12px;
  padding: 12px 14px;
  background: rgba(243, 166, 47, 0.07);
  color: #8b5b12;
  font-size: 0.78rem;
  line-height: 1.55;
}

.notice-box code {
  border-radius: 5px;
  padding: 2px 5px;
  background: rgba(243, 166, 47, 0.13);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}

.sidebar-backdrop {
  position: fixed;
  z-index: 35;
  inset: 0;
  border: 0;
  background: rgba(4, 19, 47, 0.54);
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
}

@media (max-width: 1120px) {
  .metric-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dashboard-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 960px) {
  .auth-shell {
    grid-template-columns: 1fr;
  }

  .auth-brand-panel {
    display: none;
  }

  .auth-main {
    min-height: 100svh;
    padding: 34px 24px;
  }

  .auth-mobile-logo {
    display: block;
  }

  .sidebar {
    transform: translateX(-105%);
    transition: transform 0.22s ease;
  }

  .sidebar-open .sidebar {
    transform: translateX(0);
  }

  .admin-content {
    margin-left: 0;
  }

  .topbar__menu {
    display: grid !important;
  }

  .hero-card {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 680px) {
  .topbar {
    min-height: 70px;
    gap: 10px;
    padding: 10px 16px;
  }

  .topbar__title .eyebrow,
  .user-chip__copy,
  .pwa-install {
    display: none !important;
  }

  .topbar__actions {
    gap: 8px;
  }

  .user-chip {
    border-left: 0;
    padding-left: 0;
  }

  .user-chip__avatar {
    width: 38px;
    height: 38px;
  }

  .main-content {
    padding: 18px 14px 30px;
  }

  .hero-card {
    border-radius: 22px;
    padding: 28px 22px;
  }

  .metric-grid {
    grid-template-columns: 1fr;
    gap: 12px;
    margin-top: 14px;
  }

  .metric-card {
    min-height: 116px;
    padding: 20px;
  }

  .dashboard-grid {
    gap: 14px;
    margin-top: 14px;
  }

  .panel-card {
    border-radius: 18px;
    padding: 22px 18px;
  }

  .detail-list > div {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }

  .detail-list dd {
    max-width: 100%;
    text-align: left;
  }
}

@media (max-width: 420px) {
  .auth-main {
    justify-content: flex-start;
    padding: 28px 18px;
  }

  .auth-mobile-logo {
    width: 145px;
    margin-bottom: 24px;
  }

  .form-heading {
    margin-bottom: 26px;
  }

  .form-heading h2 {
    font-size: 1.85rem;
  }

  .field-label-row {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
  }

  .sidebar {
    width: min(86vw, 290px);
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* Módulo 2: SaaS, RBAC, planes y administración */
.nav-section-label{display:block;margin:18px 14px 7px;color:rgba(255,255,255,.48);font-size:.66rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.user-chip--link{text-decoration:none}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}.page-heading h1{margin:5px 0 7px;font-size:clamp(1.7rem,3vw,2.45rem);letter-spacing:-.045em}.page-heading p{max-width:720px;margin:0;color:var(--muted);line-height:1.65}.heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.limit-chip{display:inline-flex;align-items:center;min-height:38px;padding:8px 13px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--muted);font-size:.78rem;font-weight:800}.form-card{padding:26px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.field-group{display:grid;gap:8px}.field-group--wide{grid-column:1/-1}.field-group label,.field-label,.stack-form label{color:var(--text);font-size:.8rem;font-weight:800}.field-group input,.field-group select,.field-group textarea,.stack-form input,.stack-form select,.stack-form textarea,.copy-row input{width:100%;min-height:48px;border:1px solid var(--border);border-radius:13px;padding:10px 13px;background:#fff;color:var(--text);font:inherit}.field-group textarea,.stack-form textarea{min-height:100px;resize:vertical}.field-group input:focus,.field-group select:focus,.field-group textarea:focus,.stack-form input:focus,.stack-form select:focus,.stack-form textarea:focus{border-color:var(--blue-bright);outline:0;box-shadow:0 0 0 4px rgba(22,141,255,.13)}.field-group input:disabled,.field-group select:disabled{background:#f1f5fa;color:var(--muted)}.field-group small,.stack-form small{color:var(--muted);font-size:.72rem;line-height:1.5}.form-actions{display:flex;justify-content:flex-end;padding-top:4px}.form-actions .button{min-width:180px}.button:disabled{cursor:not-allowed;filter:grayscale(.4);opacity:.55}.record-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.record-card{border:1px solid var(--border);border-radius:20px;padding:20px;background:var(--surface);box-shadow:0 10px 28px rgba(6,29,70,.06)}.record-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.record-card__head strong{display:block;font-size:1rem}.record-card__head small{display:block;margin-top:4px;color:var(--muted)}.record-card p{color:var(--muted);font-size:.84rem;line-height:1.6}.stack-form{display:grid;gap:13px}.stack-form label{display:grid;gap:7px}.inline-form{margin-top:12px}.row-actions{display:flex;align-items:center;gap:12px}.row-actions form{margin:0}.text-button{border:0;padding:0;background:transparent;color:var(--blue);cursor:pointer;font:800 .78rem inherit;text-decoration:none}.text-button:hover{text-decoration:underline}.text-button--danger{color:var(--error)}.muted{color:var(--muted);font-size:.76rem}.table-card{padding:0;overflow:hidden}.table-card>.panel-card__header{padding:24px 24px 0}.table-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:16px 18px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.data-table th{background:#f8fafe;color:var(--muted);font-size:.68rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.data-table td{font-size:.82rem}.data-table td strong,.data-table td small{display:block}.data-table td small{margin-top:3px;color:var(--muted)}.data-table tr:last-child td{border-bottom:0}.truncate-cell{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge--warning{background:rgba(243,166,47,.12);color:#9a650f}.badge--neutral{background:#eef2f7;color:#607087}.notice-box--warning{border-color:rgba(243,166,47,.25);background:rgba(243,166,47,.08)}.empty-state.compact{min-height:180px;padding:35px}.empty-state.compact h3{margin:0 0 8px}.share-box{margin-bottom:20px}.share-box p{margin:5px 0 14px}.copy-row{display:flex;gap:10px}.copy-row .button{flex:0 0 auto}.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.permission-option{display:flex;align-items:flex-start;gap:11px;border:1px solid var(--border);border-radius:14px;padding:14px;background:#fbfcff;cursor:pointer}.permission-option input{width:18px;height:18px;margin-top:2px}.permission-option span{display:grid;gap:3px}.permission-option strong{font-size:.79rem}.permission-option small{color:var(--muted);font-size:.7rem;line-height:1.4}.mini-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:16px 0}.mini-stats div{border-radius:12px;padding:10px;background:#f5f8fc}.mini-stats dt{color:var(--muted);font-size:.66rem;text-transform:uppercase}.mini-stats dd{margin:3px 0 0;font-weight:850}.plan-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px;border-radius:24px;padding:28px;background:linear-gradient(135deg,#061d46,#0b63f6);color:#fff;box-shadow:0 18px 40px rgba(6,29,70,.18)}.plan-hero .eyebrow{color:rgba(255,255,255,.72)}.plan-hero h2{margin:5px 0;font-size:2rem}.plan-hero p{margin:0;color:rgba(255,255,255,.74)}.plan-hero__badge{display:grid;width:100px;height:100px;place-items:center;border:1px solid rgba(255,255,255,.2);border-radius:28px;background:rgba(255,255,255,.1);font-weight:900;text-transform:uppercase}.subscription-card{align-self:start}.two-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.alert-list{margin:0;padding-left:18px}.auth-form .field-group{margin-bottom:16px}
@media(max-width:1120px){.record-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.page-heading{align-items:stretch;flex-direction:column}.heading-actions{justify-content:flex-start}.form-grid,.permission-grid,.record-grid{grid-template-columns:1fr}.field-group--wide{grid-column:auto}.form-actions{justify-content:stretch}.form-actions .button{width:100%}.data-table thead{display:none}.data-table,.data-table tbody,.data-table tr,.data-table td{display:block;width:100%}.data-table tr{padding:12px 16px;border-bottom:1px solid var(--border)}.data-table td{display:grid;grid-template-columns:110px 1fr;gap:12px;border:0;padding:7px 0}.data-table td:before{content:attr(data-label);color:var(--muted);font-size:.67rem;font-weight:900;text-transform:uppercase}.truncate-cell{max-width:none;white-space:normal}.plan-hero{align-items:flex-start;flex-direction:column}.plan-hero__badge{width:auto;height:auto;border-radius:999px;padding:10px 14px}.copy-row{align-items:stretch;flex-direction:column}.two-fields{grid-template-columns:1fr}}


/* Módulo 3: constructor de tarjetas, temas y publicación */
.badge--info{background:rgba(11,99,246,.11);color:#0752c9}.badge--muted{background:#edf1f6;color:#69768a}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.card-grid>.empty-state{grid-column:1/-1}.empty-icon{display:grid;width:64px;height:64px;margin:0 auto 16px;place-items:center;border-radius:20px;background:linear-gradient(135deg,rgba(11,99,246,.12),rgba(33,212,253,.16));color:var(--blue);font-size:1.6rem}.digital-card-tile{overflow:hidden;border:1px solid var(--border);border-radius:24px;background:var(--surface);box-shadow:var(--shadow-sm)}.digital-card-tile__visual{position:relative;height:145px;overflow:hidden;background:linear-gradient(135deg,var(--navy),var(--blue) 68%,var(--cyan))}.digital-card-tile__visual[data-bg-style="solid"]{background:var(--navy)}.digital-card-tile__visual[data-bg-style="soft"]{background:linear-gradient(145deg,#eaf3ff,#eefcff)}.digital-card-tile__cover{width:100%;height:100%;object-fit:cover}.digital-card-tile__visual:after{position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(6,29,70,.34));content:""}.digital-card-tile__avatar{position:absolute;z-index:1;bottom:14px;left:18px;display:grid;width:64px;height:64px;overflow:hidden;place-items:center;border:3px solid rgba(255,255,255,.92);border-radius:20px;background:linear-gradient(145deg,var(--blue),var(--cyan));color:#fff;font-size:1.35rem;font-weight:900;box-shadow:0 12px 24px rgba(6,29,70,.24)}.digital-card-tile__avatar img{width:100%;height:100%;object-fit:cover}.digital-card-tile__body{padding:20px}.card-tile-meta{display:flex;align-items:center;justify-content:space-between;gap:10px}.card-tile-meta small{color:var(--muted);font-size:.7rem}.digital-card-tile h2{margin:14px 0 3px;font-size:1.08rem}.digital-card-tile p{min-height:40px;margin:0;color:var(--muted);font-size:.8rem}.public-url{overflow:hidden;margin:14px 0;border:1px solid var(--border);border-radius:11px;padding:9px 11px;background:#f8faff;color:var(--muted);font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}.tile-actions{display:flex;gap:8px;flex-wrap:wrap}.tile-actions .button{min-height:38px;padding:8px 11px;font-size:.72rem}.card-admin-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:15px;padding-top:14px;border-top:1px solid var(--border)}.card-admin-actions form{margin:0}.builder-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,420px);gap:24px;align-items:start}.builder-editor{display:grid;gap:18px;min-width:0}.builder-editor fieldset{display:grid;gap:18px;margin:0;border:0;padding:0}.builder-editor fieldset:disabled{opacity:.62}.builder-section{padding:24px}.step-chip{display:grid;width:36px;height:36px;place-items:center;border-radius:12px;background:#edf5ff;color:var(--blue);font-size:.72rem;font-weight:900}.field{display:grid;align-content:start;gap:8px;color:var(--text);font-size:.78rem;font-weight:800}.field--full{grid-column:1/-1}.field input,.field select,.field textarea{width:100%;min-height:48px;border:1px solid var(--border);border-radius:13px;padding:11px 13px;background:#fff;color:var(--text)}.field textarea{min-height:120px;resize:vertical}.field input[type="file"]{padding:10px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue-bright);outline:0;box-shadow:0 0 0 4px rgba(22,141,255,.12)}.field small{color:var(--muted);font-size:.69rem;font-weight:500;line-height:1.45}.input-prefix{display:flex;overflow:hidden;border:1px solid var(--border);border-radius:13px;background:#f6f9fd}.input-prefix:focus-within{border-color:var(--blue-bright);box-shadow:0 0 0 4px rgba(22,141,255,.12)}.input-prefix span{display:flex;align-items:center;padding:0 0 0 12px;color:var(--muted);font-size:.72rem;font-weight:700;white-space:nowrap}.input-prefix input{border:0;box-shadow:none!important}.check-row{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.7rem;font-weight:700}.check-row input{width:16px;min-height:auto;height:16px}.theme-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.theme-option{position:relative;display:grid;gap:6px;border:1px solid var(--border);border-radius:16px;padding:14px;background:#fbfcff;cursor:pointer}.theme-option:has(input:checked){border-color:var(--blue);box-shadow:0 0 0 3px rgba(11,99,246,.1)}.theme-option input{position:absolute;top:12px;right:12px;width:17px;height:17px}.theme-option strong{font-size:.78rem}.theme-option small{color:var(--muted);font-size:.66rem;line-height:1.4}.theme-swatch{display:flex;width:78px;height:24px;overflow:hidden;border-radius:999px}.theme-swatch i{flex:1}.theme-swatch i:nth-child(1){background:var(--navy)}.theme-swatch i:nth-child(2){background:var(--blue)}.theme-swatch i:nth-child(3){background:var(--cyan)}.color-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:18px 0}.color-field{display:grid;gap:6px;border:1px solid var(--border);border-radius:14px;padding:10px;background:#fff}.color-field span{font-size:.67rem;font-weight:800}.color-field input{width:100%;height:34px;border:0;padding:0;background:transparent;cursor:pointer}.color-field code{color:var(--muted);font-size:.63rem}.section-sorter{display:grid;gap:9px;margin-bottom:18px}.section-sorter__item{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--border);border-radius:14px;padding:12px 14px;background:#fbfcff}.section-sorter__item>strong{flex:1;font-size:.78rem}.section-sorter__item>div{display:flex;gap:6px}.drag-mark{color:#9aa7b9;font-weight:900}.icon-button--small{width:32px;height:32px;min-width:32px}.privacy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.toggle-row{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--border);border-radius:14px;padding:13px;background:#fff;cursor:pointer}.toggle-row input{width:18px;height:18px;margin-top:2px}.toggle-row span{display:grid;gap:3px}.toggle-row strong{font-size:.75rem}.toggle-row small{color:var(--muted);font-size:.66rem;line-height:1.4}.builder-savebar{position:sticky;z-index:5;bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid rgba(11,99,246,.2);border-radius:18px;padding:14px 16px;background:rgba(255,255,255,.95);box-shadow:0 20px 45px rgba(6,29,70,.16);backdrop-filter:blur(14px)}.builder-savebar div{display:grid}.builder-savebar strong{font-size:.82rem}.builder-savebar small{color:var(--muted);font-size:.69rem}.builder-preview-panel{position:sticky;top:92px;border:1px solid var(--border);border-radius:24px;padding:16px;background:#edf2f8;box-shadow:var(--shadow-sm)}.preview-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;color:var(--muted);font-size:.7rem;font-weight:800}.preview-toolbar span{display:flex;align-items:center;gap:7px}.preview-toolbar i{width:8px;height:8px;border-radius:50%;background:var(--success);box-shadow:0 0 0 4px rgba(23,166,115,.12)}.phone-frame{position:relative;overflow:hidden;max-width:390px;min-height:660px;margin:auto;border:8px solid #10203a;border-radius:38px;background:#fff;box-shadow:0 28px 58px rgba(6,29,70,.25)}.phone-frame__speaker{position:absolute;z-index:4;top:10px;left:50%;width:76px;height:18px;transform:translateX(-50%);border-radius:999px;background:#10203a}.live-card{min-height:644px;background:linear-gradient(145deg,var(--card-bg),color-mix(in srgb,var(--card-primary) 12%,var(--card-bg)));color:var(--card-text);font-family:var(--card-font),system-ui,sans-serif}.live-card[data-bg-style="solid"]{background:var(--card-bg)}.live-card[data-bg-style="soft"]{background:linear-gradient(180deg,var(--card-bg),var(--card-surface))}.live-card__cover{height:180px;overflow:hidden;background:linear-gradient(135deg,var(--card-primary),var(--card-accent))}.live-card__cover img{width:100%;height:100%;object-fit:cover}.live-card__content{position:relative;padding:26px 24px 22px;text-align:center}.live-card__avatar{display:grid;width:92px;height:92px;margin:-70px auto 13px;overflow:hidden;place-items:center;border:5px solid var(--card-surface);border-radius:28px;background:linear-gradient(145deg,var(--card-primary),var(--card-accent));color:#fff;font-size:2rem;font-weight:900;box-shadow:0 18px 36px rgba(6,29,70,.22)}.live-card__avatar img{width:100%;height:100%;object-fit:cover}.live-card__type{display:inline-flex;border-radius:999px;padding:5px 9px;background:color-mix(in srgb,var(--card-primary) 10%,transparent);color:var(--card-primary);font-size:.62rem;font-weight:900;text-transform:uppercase}.live-card h2{margin:10px 0 4px;font-size:1.45rem;letter-spacing:-.035em}.live-card__headline{margin:0;color:color-mix(in srgb,var(--card-text) 65%,transparent);font-size:.78rem;font-weight:700}.live-card__description{margin:18px 0 0;border-radius:16px;padding:14px;background:var(--card-surface);font-size:.72rem;line-height:1.6;text-align:left;box-shadow:0 10px 24px rgba(6,29,70,.07)}.live-card__future{margin-top:18px;border:1px dashed color-mix(in srgb,var(--card-primary) 28%,transparent);border-radius:16px;padding:14px;color:color-mix(in srgb,var(--card-text) 56%,transparent);font-size:.66rem;line-height:1.5}.live-card__branding{display:block;margin-top:24px;color:color-mix(in srgb,var(--card-text) 45%,transparent);font-size:.6rem;font-weight:700}.preview-url{display:flex;justify-content:center;gap:2px;overflow:hidden;margin-top:12px;color:var(--muted);font-size:.68rem;white-space:nowrap}.preview-url strong{max-width:150px;overflow:hidden;color:var(--blue);text-overflow:ellipsis}.public-card-body{min-width:320px;background:#eaf0f7}.public-card-stage{display:grid;min-height:100vh;place-items:center;padding:28px 14px}.public-digital-card{width:min(100%,520px);overflow:hidden;border:1px solid rgba(6,29,70,.08);border-radius:34px;background:var(--card-bg);color:var(--card-text);font-family:var(--card-font),system-ui,sans-serif;box-shadow:0 36px 90px rgba(6,29,70,.22)}.public-digital-card[data-bg-style="gradient"]{background:linear-gradient(145deg,var(--card-bg),color-mix(in srgb,var(--card-primary) 13%,var(--card-bg)))}.public-digital-card[data-bg-style="soft"]{background:linear-gradient(180deg,var(--card-bg),var(--card-surface))}.public-digital-card__cover{height:230px;overflow:hidden;background:linear-gradient(135deg,var(--card-primary),var(--card-accent))}.public-digital-card__cover img{width:100%;height:100%;object-fit:cover}.public-digital-card__surface{padding:30px}.public-profile{text-align:center}.public-profile__avatar{display:grid;width:112px;height:112px;margin:-82px auto 14px;overflow:hidden;place-items:center;border:6px solid var(--card-surface);border-radius:34px;background:linear-gradient(145deg,var(--card-primary),var(--card-accent));color:#fff;font-size:2.4rem;font-weight:900;box-shadow:0 20px 45px rgba(6,29,70,.24)}.public-profile__avatar img{width:100%;height:100%;object-fit:cover}.public-profile__type{display:inline-flex;border-radius:999px;padding:6px 10px;background:color-mix(in srgb,var(--card-primary) 11%,transparent);color:var(--card-primary);font-size:.68rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.public-profile h1{margin:12px 0 3px;font-size:clamp(1.7rem,6vw,2.3rem);letter-spacing:-.05em}.public-profile__headline{margin:0;color:color-mix(in srgb,var(--card-text) 68%,transparent);font-weight:700}.public-profile__branch{display:inline-flex;margin:12px 0 0;border-radius:999px;padding:6px 10px;background:var(--card-surface);font-size:.72rem;box-shadow:0 8px 20px rgba(6,29,70,.07)}.public-about{margin-top:24px;border-radius:22px;padding:20px;background:var(--card-surface);box-shadow:0 12px 28px rgba(6,29,70,.07)}.public-about h2{margin:0 0 8px;font-size:1rem}.public-about p{margin:0;color:color-mix(in srgb,var(--card-text) 76%,transparent);font-size:.85rem;line-height:1.75}.public-branding{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:26px;color:color-mix(in srgb,var(--card-text) 48%,transparent);font-size:.66rem}.public-branding img{width:76px;height:auto}.preview-banner{position:sticky;z-index:10;top:0;display:flex;align-items:center;justify-content:center;gap:18px;padding:10px 16px;background:var(--navy);color:#fff;font-size:.75rem}.preview-banner span{color:rgba(255,255,255,.66)}.preview-banner a{color:var(--cyan);font-weight:800}.public-card-stage--preview{min-height:calc(100vh - 42px)}
@media(max-width:1180px){.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.builder-layout{grid-template-columns:minmax(0,1fr) 350px}.theme-grid{grid-template-columns:1fr}.color-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:920px){.builder-layout{grid-template-columns:1fr}.builder-preview-panel{position:relative;top:auto;order:-1}.phone-frame{min-height:560px}.live-card{min-height:544px}.card-grid{grid-template-columns:1fr}.privacy-grid{grid-template-columns:1fr}}
@media(max-width:680px){.builder-section{padding:20px 16px}.form-grid--two,.color-grid{grid-template-columns:1fr}.field--full{grid-column:auto}.builder-savebar{align-items:stretch;flex-direction:column;bottom:8px}.builder-savebar .button{width:100%}.public-card-stage{align-items:start;padding:0}.public-digital-card{min-height:100vh;border:0;border-radius:0;box-shadow:none}.public-digital-card__surface{padding:26px 20px}.public-digital-card__cover{height:210px}.preview-banner{align-items:flex-start;flex-direction:column;gap:2px}.tile-actions .button{flex:1}.theme-grid{grid-template-columns:1fr}}

.live-card__cover[hidden]+.live-card__content .live-card__avatar{margin-top:8px}.public-digital-card__surface--no-cover .public-profile__avatar{margin-top:4px}

/* Módulo 4: enlaces, redes sociales, botones de acción y seguimiento */
.link-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 20px;
}

.link-manager-section {
  margin-bottom: 18px;
}

.link-manager-list {
  display: grid;
  gap: 10px;
}

.link-manager-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 16px;
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 14px;
  background: #fff;
}

.link-manager-row.is-inactive {
  background: #f6f8fb;
  opacity: 0.72;
}

.link-manager-row__identity {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 12px;
}

.link-manager-row__identity > div {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.link-manager-row__identity strong {
  overflow: hidden;
  font-size: 0.86rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.link-manager-row__identity small {
  overflow: hidden;
  color: var(--muted);
  font-size: 0.7rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.link-manager-row__badges,
.link-manager-row__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.link-manager-row__actions form {
  margin: 0;
}

.link-icon-shell,
.public-link-icon {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
}

.link-icon-shell {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  background: linear-gradient(145deg, rgba(11, 99, 246, 0.12), rgba(33, 212, 253, 0.15));
  color: var(--blue);
}

.link-icon-svg {
  width: 21px;
  height: 21px;
}

.link-icon-mark {
  font-size: 0.82rem;
  font-weight: 900;
  line-height: 1;
}

.button--small {
  min-height: 34px;
  padding: 7px 10px;
  font-size: 0.7rem;
}

.empty-state--compact {
  padding: 22px 8px 8px;
  text-align: center;
}

.empty-state--compact p {
  margin: 0 0 6px;
  color: var(--muted);
  font-size: 0.8rem;
}

.text-link {
  font-size: 0.78rem;
  font-weight: 800;
}

.link-editor-form {
  max-width: 900px;
}

.link-editor-form fieldset {
  margin: 0;
  border: 0;
  padding: 0;
}

.link-editor-form fieldset:disabled {
  opacity: 0.6;
}

.check-row--standalone {
  align-items: flex-start;
  min-height: 48px;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 12px;
  background: #fff;
}

.check-row--standalone input {
  margin-top: 3px;
}

.check-row--standalone span {
  display: grid;
  gap: 3px;
}

.check-row--standalone strong {
  color: var(--text);
  font-size: 0.78rem;
}

.check-row--standalone small {
  color: var(--muted);
  font-size: 0.67rem;
  line-height: 1.45;
}

.link-security-note {
  display: grid;
  gap: 4px;
  margin-top: 18px;
  border: 1px solid rgba(23, 166, 115, 0.22);
  border-radius: 16px;
  padding: 14px 16px;
  background: rgba(23, 166, 115, 0.06);
}

.link-security-note strong {
  color: var(--success);
  font-size: 0.78rem;
}

.link-security-note span {
  color: var(--muted);
  font-size: 0.7rem;
  line-height: 1.55;
}

.public-actions {
  display: grid;
  gap: 11px;
  margin-top: 24px;
}

.public-action-button,
.public-custom-links a {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 20px;
  align-items: center;
  gap: 10px;
  min-height: 58px;
  border: 1px solid color-mix(in srgb, var(--card-primary) 13%, transparent);
  border-radius: 18px;
  padding: 11px 14px;
  background: var(--card-surface);
  color: var(--card-text);
  box-shadow: 0 10px 24px rgba(6, 29, 70, 0.07);
  font-size: 0.86rem;
  font-weight: 800;
  text-decoration: none;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.public-action-button:hover,
.public-custom-links a:hover {
  border-color: color-mix(in srgb, var(--card-primary) 42%, transparent);
  box-shadow: 0 15px 30px rgba(6, 29, 70, 0.12);
  text-decoration: none;
  transform: translateY(-1px);
}

.public-action-button--primary {
  border-color: transparent;
  background: linear-gradient(135deg, var(--card-primary), color-mix(in srgb, var(--card-primary) 70%, var(--card-accent)));
  color: #fff;
  box-shadow: 0 14px 30px color-mix(in srgb, var(--card-primary) 28%, transparent);
}

.public-action-button .public-link-icon,
.public-custom-links .public-link-icon {
  width: 34px;
  height: 34px;
  border-radius: 12px;
  background: color-mix(in srgb, var(--card-primary) 10%, transparent);
  color: var(--card-primary);
}

.public-action-button--primary .public-link-icon {
  background: rgba(255, 255, 255, 0.16);
  color: #fff;
}

.public-link-arrow {
  justify-self: end;
  font-size: 1.25rem;
  line-height: 1;
}

.public-socials {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 22px;
}

.public-socials a {
  display: grid;
  min-width: 0;
  place-items: center;
  gap: 7px;
  border: 1px solid color-mix(in srgb, var(--card-primary) 12%, transparent);
  border-radius: 17px;
  padding: 12px 6px;
  background: color-mix(in srgb, var(--card-surface) 92%, transparent);
  color: var(--card-primary);
  text-decoration: none;
}

.public-socials a:hover {
  border-color: color-mix(in srgb, var(--card-primary) 38%, transparent);
  text-decoration: none;
}

.public-socials .public-link-icon {
  width: 28px;
  height: 28px;
}

.public-socials span:last-child {
  max-width: 100%;
  overflow: hidden;
  color: var(--card-text);
  font-size: 0.62rem;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.public-custom-links {
  display: grid;
  gap: 10px;
  margin-top: 22px;
}

.public-custom-links a {
  min-height: 52px;
  border-radius: 16px;
  font-size: 0.8rem;
}

@media (max-width: 1050px) {
  .link-manager-row {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .link-manager-row__actions {
    grid-column: 1 / -1;
    justify-content: flex-start;
    border-top: 1px solid var(--border);
    padding-top: 11px;
  }
}

@media (max-width: 680px) {
  .link-summary-grid {
    grid-template-columns: 1fr;
  }

  .link-manager-row {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .link-manager-row__badges,
  .link-manager-row__actions {
    justify-content: flex-start;
  }

  .link-manager-row__actions {
    grid-column: auto;
  }

  .link-manager-row__actions .button {
    flex: 1;
  }

  .public-socials {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 390px) {
  .public-socials {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Módulo 5: galería, documentos, ubicaciones, horarios y vCard */
.page-heading--split { align-items: flex-start; }
.page-heading__actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
.content-nav { position: sticky; top: 78px; z-index: 8; display: flex; gap: 8px; overflow-x: auto; margin: 0 0 22px; padding: 8px; border: 1px solid var(--border); border-radius: 18px; background: color-mix(in srgb, var(--surface) 94%, transparent); box-shadow: var(--shadow-sm); scrollbar-width: thin; }
.content-nav a { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 8px; border-radius: 12px; padding: 10px 14px; color: var(--text); font-size: .82rem; font-weight: 800; text-decoration: none; }
.content-nav a:hover { background: var(--surface-soft); text-decoration: none; }
.content-nav span { min-width: 23px; border-radius: 999px; padding: 3px 7px; background: var(--primary-soft); color: var(--primary); font-size: .68rem; text-align: center; }
.content-module { scroll-margin-top: 150px; margin-bottom: 28px; }
.content-module__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 15px; }
.content-module__header h2 { margin: 3px 0 5px; }
.content-module__header p { max-width: 760px; margin: 0; color: var(--muted); }
.limit-badge { display: inline-flex; flex: 0 0 auto; align-items: center; border: 1px solid var(--border); border-radius: 999px; padding: 8px 12px; background: var(--surface); color: var(--muted); font-size: .75rem; font-weight: 800; }
.content-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-bottom: 16px; }
.form-stack { display: grid; align-content: start; gap: 14px; }
.form-stack h3 { margin: 0; }
.inline-upload-form { display: grid; grid-template-columns: minmax(150px, .8fr) minmax(180px, 1.4fr) minmax(220px, 1fr) auto; align-items: end; gap: 14px; margin-bottom: 16px; }
.manager-list { display: grid; gap: 10px; }
.manager-item { position: relative; display: grid; grid-template-columns: 74px minmax(0, 1fr) auto; align-items: center; gap: 14px; border: 1px solid var(--border); border-radius: 18px; padding: 12px; background: var(--surface); box-shadow: var(--shadow-sm); }
.manager-item__preview { display: grid; width: 74px; height: 64px; place-items: center; overflow: hidden; border-radius: 13px; background: linear-gradient(135deg, var(--primary-soft), var(--surface-soft)); color: var(--primary); font-size: .68rem; font-weight: 900; letter-spacing: .06em; }
.manager-item__preview img { width: 100%; height: 100%; object-fit: cover; }
.manager-item__preview--file { width: 58px; height: 58px; border: 1px solid var(--border); }
.video-provider { display: grid; width: 100%; height: 100%; place-items: center; }
.manager-item__body { min-width: 0; }
.manager-item__body small { display: block; overflow: hidden; margin-top: 5px; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.manager-item__title { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.manager-item__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; justify-content: flex-end; }
.manager-edit { position: relative; }
.manager-edit > summary { list-style: none; cursor: pointer; }
.manager-edit > summary::-webkit-details-marker { display: none; }
.manager-edit[open] .popover-form { display: grid; }
.popover-form { position: absolute; z-index: 12; right: 0; top: calc(100% + 8px); display: grid; width: min(340px, 80vw); gap: 12px; border: 1px solid var(--border); border-radius: 16px; padding: 16px; background: var(--surface); box-shadow: var(--shadow-lg); }
.status-chip { display: inline-flex; border-radius: 999px; padding: 4px 8px; font-size: .66rem; font-weight: 850; }
.status-chip--active { background: rgba(23,166,115,.11); color: #0d7953; }
.status-chip--inactive { background: rgba(99,112,135,.12); color: var(--muted); }
.create-location { margin-bottom: 16px; }
.create-location > summary { width: max-content; list-style: none; cursor: pointer; }
.create-location > summary::-webkit-details-marker { display: none; }
.create-location[open] > summary { margin-bottom: 18px; }
.location-form { display: grid; gap: 16px; }
.form-grid--2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.field--wide { grid-column: 1 / -1; }
.location-manager-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.location-manager-card { display: grid; align-content: start; gap: 13px; }
.location-manager-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.location-manager-card h3 { margin: 3px 0; }
.location-manager-card p { margin: 0; color: var(--muted); }
.location-manager-card details { border-top: 1px solid var(--border); padding-top: 12px; }
.location-manager-card details > summary { cursor: pointer; color: var(--primary); font-size: .8rem; font-weight: 850; }
.location-manager-card details[open] > summary { margin-bottom: 14px; }
.location-manager-card__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.open-state { display: inline-flex; flex: 0 0 auto; align-items: center; border-radius: 999px; padding: 6px 9px; font-size: .67rem; font-weight: 850; }
.open-state--open { background: rgba(23,166,115,.12); color: #0d7953; }
.open-state--closed { background: rgba(214,66,66,.11); color: #a72f2f; }
.open-state--unknown { background: rgba(99,112,135,.12); color: var(--muted); }
.schedule-editor { display: grid; gap: 9px; }
.schedule-row { display: grid; grid-template-columns: 100px 92px minmax(90px, 1fr) auto minmax(90px, 1fr); align-items: center; gap: 8px; }
.schedule-row strong { font-size: .76rem; }
.schedule-row label { color: var(--muted); font-size: .72rem; }
.schedule-row input[type="time"] { min-width: 0; }
.danger-zone { display: flex; justify-content: flex-end; border-top: 1px solid var(--border); padding-top: 12px; }
.vcard-form { display: grid; gap: 16px; }
.switch-field { display: flex; align-items: center; gap: 10px; font-weight: 750; }
.switch-field input { width: 18px; height: 18px; accent-color: var(--primary); }

.public-content-section { margin-top: 26px; }
.public-section-heading { margin-bottom: 13px; }
.public-section-heading > span { color: var(--card-primary); font-size: .65rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.public-section-heading h2 { margin: 3px 0 0; color: var(--card-text); font-size: 1.02rem; }
.public-gallery-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.public-gallery-item { min-width: 0; margin: 0; overflow: hidden; border: 1px solid color-mix(in srgb, var(--card-primary) 12%, transparent); border-radius: 16px; background: var(--card-surface); }
.public-gallery-item > a { display: block; aspect-ratio: 1 / .82; overflow: hidden; }
.public-gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.public-gallery-item a:hover img { transform: scale(1.025); }
.public-gallery-item figcaption { padding: 9px 11px; color: var(--card-text); font-size: .72rem; font-weight: 750; }
.public-video-frame { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: #000; }
.public-video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.public-location-list { display: grid; gap: 11px; }
.public-location-card { border: 1px solid color-mix(in srgb, var(--card-primary) 12%, transparent); border-radius: 17px; padding: 14px; background: color-mix(in srgb, var(--card-surface) 96%, transparent); }
.public-location-card__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.public-location-card h3 { margin: 0 0 4px; color: var(--card-text); font-size: .9rem; }
.public-location-card p { margin: 0; color: color-mix(in srgb, var(--card-text) 65%, transparent); font-size: .73rem; line-height: 1.45; }
.public-location-card details { margin: 10px 0; }
.public-location-card summary { cursor: pointer; color: var(--card-primary); font-size: .72rem; font-weight: 800; }
.public-schedule { display: grid; gap: 5px; margin-top: 9px; }
.public-schedule > div { display: flex; justify-content: space-between; gap: 12px; color: var(--card-text); font-size: .68rem; }
.public-schedule span { color: color-mix(in srgb, var(--card-text) 62%, transparent); }
.public-document-list { display: grid; gap: 8px; }
.public-document-link { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: 10px; border: 1px solid color-mix(in srgb, var(--card-primary) 12%, transparent); border-radius: 15px; padding: 11px; background: color-mix(in srgb, var(--card-surface) 96%, transparent); color: var(--card-text); text-decoration: none; }
.public-document-link:hover { border-color: color-mix(in srgb, var(--card-primary) 38%, transparent); text-decoration: none; }
.public-document-link > span:nth-child(2) { min-width: 0; }
.public-document-link strong, .public-document-link small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.public-document-link strong { font-size: .76rem; }
.public-document-link small, .public-document-link > span:last-child { color: color-mix(in srgb, var(--card-text) 58%, transparent); font-size: .62rem; }
.public-document-icon { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 12px; background: color-mix(in srgb, var(--card-primary) 11%, transparent); color: var(--card-primary); font-weight: 900; }
.public-save-contact { margin-top: 22px; }

@media (max-width: 1120px) {
  .inline-upload-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .inline-upload-form .button { justify-self: start; }
}
@media (max-width: 880px) {
  .content-form-grid, .location-manager-grid { grid-template-columns: 1fr; }
  .manager-item { grid-template-columns: 64px minmax(0, 1fr); }
  .manager-item__preview { width: 64px; height: 58px; }
  .manager-item__actions { grid-column: 1 / -1; justify-content: flex-start; border-top: 1px solid var(--border); padding-top: 10px; }
}
@media (max-width: 680px) {
  .page-heading__actions { justify-content: flex-start; }
  .content-nav { top: 64px; }
  .content-module__header, .location-manager-card > header { flex-direction: column; }
  .form-grid--2, .inline-upload-form { grid-template-columns: 1fr; }
  .field--wide { grid-column: auto; }
  .schedule-row { grid-template-columns: 1fr 1fr; }
  .schedule-row strong { grid-column: 1 / -1; }
  .schedule-row > span { display: none; }
  .manager-item__actions .button { flex: 1; }
  .popover-form { position: fixed; inset: auto 12px 12px; width: auto; max-height: 70vh; overflow: auto; }
  .public-gallery-grid { grid-template-columns: 1fr; }
}

/* Módulo 6: QR, compartir y compatibilidad NFC */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.button--danger {
  border-color: rgba(214, 66, 66, 0.24);
  background: rgba(214, 66, 66, 0.08);
  color: var(--error);
}

.button--danger:hover {
  border-color: var(--error);
  background: var(--error);
  color: #fff;
  text-decoration: none;
}

.distribution-layout,
.distribution-lower-grid {
  display: grid;
  grid-template-columns: minmax(320px, 0.82fr) minmax(420px, 1.18fr);
  gap: 20px;
  margin-bottom: 20px;
}

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

.qr-studio,
.distribution-links,
.distribution-lower-grid > .panel-card {
  padding: 24px;
}

.qr-preview-shell {
  display: grid;
  width: min(100%, 420px);
  margin: 18px auto 12px;
  place-items: center;
  border: 1px solid var(--border);
  border-radius: 28px;
  padding: clamp(14px, 3vw, 24px);
  background:
    radial-gradient(circle at 50% 15%, rgba(33, 212, 253, 0.14), transparent 38%),
    linear-gradient(145deg, #f8fbff, #eef4fc);
  box-shadow: inset 0 1px 0 #fff, 0 18px 45px rgba(6, 29, 70, 0.09);
}

.qr-preview-shell canvas,
.qr-print-sheet canvas {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 18px;
  background: #fff;
  image-rendering: pixelated;
}

.qr-action-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 18px;
}

.qr-action-grid .button {
  justify-content: center;
  text-align: center;
}

.field-help {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 0.75rem;
  line-height: 1.55;
}

.stable-link-list {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}

.stable-link-row {
  display: grid;
  gap: 10px;
  border: 1px solid var(--border);
  border-radius: 17px;
  padding: 15px;
  background: var(--surface-soft);
}

.stable-link-row > div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}

.stable-link-row strong {
  font-size: 0.86rem;
}

.stable-link-row small {
  color: var(--muted);
  font-size: 0.7rem;
  text-align: right;
}

.copy-field {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
}

.copy-field input {
  width: 100%;
  min-width: 0;
  min-height: 43px;
  border: 1px solid var(--border);
  border-radius: 11px;
  padding: 8px 11px;
  background: #fff;
  color: var(--text);
  font-size: 0.75rem;
}

.copy-field button {
  min-width: 76px;
  border: 1px solid rgba(11, 99, 246, 0.18);
  border-radius: 11px;
  padding: 8px 12px;
  background: var(--primary-soft);
  color: var(--blue);
  cursor: pointer;
  font-size: 0.72rem;
  font-weight: 800;
}

.distribution-status-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 18px;
}

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

.stack-form .field {
  display: grid;
  gap: 7px;
}

.stack-form input[type="color"] {
  min-height: 52px;
  padding: 5px;
  cursor: pointer;
}

.check-card {
  display: flex !important;
  align-items: flex-start;
  gap: 12px;
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 15px;
  background: var(--surface-soft);
  cursor: pointer;
}

.check-card input {
  flex: 0 0 auto;
  width: 20px !important;
  min-height: 20px !important;
  margin: 2px 0 0;
}

.check-card span {
  display: grid;
  gap: 3px;
}

.check-card strong {
  font-size: 0.8rem;
}

.mini-stat-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 18px;
}

.mini-stat {
  display: grid;
  gap: 4px;
  border: 1px solid var(--border);
  border-radius: 15px;
  padding: 14px;
  background: var(--surface-soft);
}

.mini-stat span {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
}

.mini-stat strong {
  color: var(--navy);
  font-size: 1.6rem;
  line-height: 1;
}

.activity-list {
  display: grid;
  margin-top: 16px;
  border: 1px solid var(--border);
  border-radius: 15px;
  overflow: hidden;
}

.activity-list > div {
  display: grid;
  grid-template-columns: 72px minmax(90px, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 11px 13px;
  border-bottom: 1px solid var(--border);
  font-size: 0.74rem;
}

.activity-list > div:last-child {
  border-bottom: 0;
}

.activity-list time {
  color: var(--muted);
  font-size: 0.69rem;
  text-align: right;
}

.source-pill {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: 4px 8px;
  background: var(--primary-soft);
  color: var(--blue);
  font-size: 0.66rem;
  font-weight: 900;
}

.source-pill--nfc {
  background: rgba(33, 212, 253, 0.14);
  color: #087b98;
}

.source-pill--short {
  background: rgba(23, 166, 115, 0.12);
  color: #117b56;
}

.qr-print-body {
  display: grid;
  min-height: 100vh;
  place-items: center;
  padding: 28px;
  background: #edf3fb;
}

.qr-print-sheet {
  width: min(100%, 760px);
  border: 1px solid var(--border);
  border-radius: 28px;
  padding: clamp(24px, 5vw, 52px);
  background: #fff;
  box-shadow: var(--shadow-lg);
  text-align: center;
}

.qr-print-sheet > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--border);
}

.qr-print-sheet > header img {
  width: 150px;
}

.qr-print-sheet > header span {
  color: var(--muted);
  font-size: 0.75rem;
}

.qr-print-sheet > section {
  display: grid;
  justify-items: center;
  gap: 8px;
  padding: 28px 0 10px;
}

.qr-print-sheet canvas {
  width: min(100%, 520px);
  border: 1px solid var(--border);
}

.qr-print-sheet h1 {
  margin: 18px 0 0;
  font-size: clamp(1.7rem, 4vw, 2.5rem);
  letter-spacing: -0.04em;
}

.qr-print-sheet p {
  margin: 0;
  color: var(--muted);
}

.qr-print-sheet section > strong {
  margin-top: 8px;
  color: var(--navy);
}

.qr-print-sheet section > small {
  max-width: 100%;
  overflow-wrap: anywhere;
  color: var(--muted);
  font-size: 0.68rem;
}

.qr-print-actions {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 22px;
}

@media (max-width: 980px) {
  .distribution-layout,
  .distribution-lower-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  .qr-studio,
  .distribution-links,
  .distribution-lower-grid > .panel-card {
    padding: 18px;
  }

  .qr-action-grid,
  .mini-stat-grid,
  .form-grid--two {
    grid-template-columns: 1fr;
  }

  .stable-link-row > div {
    display: grid;
  }

  .stable-link-row small {
    text-align: left;
  }

  .copy-field {
    grid-template-columns: 1fr;
  }

  .copy-field button {
    min-height: 42px;
  }

  .activity-list > div {
    grid-template-columns: 62px 1fr;
  }

  .activity-list time {
    grid-column: 1 / -1;
    text-align: left;
  }

  .qr-print-body {
    padding: 10px;
  }

  .qr-print-sheet {
    border-radius: 18px;
    padding: 20px;
  }

  .qr-print-sheet > header {
    display: grid;
    justify-items: center;
  }

  .qr-print-actions {
    display: grid;
  }
}

@media print {
  @page {
    size: A4 portrait;
    margin: 12mm;
  }

  .qr-print-body {
    display: block;
    min-height: auto;
    padding: 0;
    background: #fff;
  }

  .qr-print-sheet {
    width: 100%;
    border: 0;
    border-radius: 0;
    padding: 0;
    box-shadow: none;
  }

  .qr-print-sheet canvas {
    width: 120mm;
    max-width: 100%;
  }

  .qr-print-actions {
    display: none;
  }
}

/* Módulo 7: escenas inteligentes, campañas y formularios */
.engagement-tabs{display:flex;gap:.65rem;flex-wrap:wrap;margin:0 0 1.25rem}.engagement-tabs a{padding:.7rem 1rem;border:1px solid var(--border);border-radius:999px;background:#fff;font-weight:700;color:var(--text);text-decoration:none}.engagement-tabs a:hover,.engagement-tabs a:focus-visible{border-color:var(--primary);color:var(--primary)}
.module-section{scroll-margin-top:1rem;margin-bottom:2rem}.section-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin:0 0 1rem}.section-title-row h2{margin:.25rem 0}.section-title-row p{margin:0;color:var(--muted);max-width:780px}.creation-panel{margin-bottom:1rem}.creation-panel>summary,.management-item>summary{cursor:pointer;list-style:none;font-weight:800}.creation-panel>summary::-webkit-details-marker,.management-item>summary::-webkit-details-marker{display:none}.creation-panel>summary{display:flex;justify-content:space-between;align-items:center}.creation-panel>summary::after{content:'+';font-size:1.4rem;color:var(--primary)}.creation-panel[open]>summary::after{content:'–'}.engagement-form{margin-top:1rem}.weekday-picker{border:0;padding:0;margin:0}.weekday-picker legend{font-weight:800;margin-bottom:.65rem}.weekday-picker{display:flex;flex-wrap:wrap;gap:.5rem}.weekday-picker label input{position:absolute;opacity:0}.weekday-picker label span{display:block;padding:.62rem .8rem;border:1px solid var(--border);border-radius:12px;background:#fff;font-weight:700;cursor:pointer}.weekday-picker label input:checked+span{background:#eaf3ff;border-color:#0b63f6;color:#0b63f6}.weekday-picker label input:focus-visible+span{outline:3px solid rgba(11,99,246,.22);outline-offset:2px}.management-list{display:grid;gap:1rem}.management-item>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem}.management-item>summary span:first-child{display:grid;gap:.25rem}.management-item>summary small{color:var(--muted);font-weight:500}.inline-actions,.inline-form{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap}.campaign-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.campaign-card{display:grid;gap:1rem}.campaign-card__head{display:flex;gap:1rem;justify-content:space-between}.campaign-card__head h3{margin:.55rem 0 .25rem}.campaign-card__head p{margin:0;color:var(--muted)}.campaign-card__head img{width:132px;height:102px;object-fit:cover;border-radius:16px;border:1px solid var(--border)}.campaign-qr-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:1rem;align-items:center}.campaign-qr-row canvas{width:150px;height:150px;border-radius:16px;border:1px solid var(--border);background:#fff}.campaign-qr-row>div{display:grid;gap:.65rem}.form-field-builder{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.compact-builder{display:grid;grid-template-columns:1fr 1fr 150px 1fr;gap:.65rem;align-items:end}.compact-builder textarea{grid-column:1/3;min-height:80px}.compact-builder .mini-check{align-self:center}.field-chip-list{display:grid;gap:.55rem;margin-top:1rem}.field-chip{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.75rem;border:1px solid var(--border);border-radius:14px;background:#f8fbff}.field-chip span{display:grid;gap:.18rem}.field-chip small{color:var(--muted)}.contact-inbox{display:grid;gap:1rem}.contact-item{display:grid;gap:1rem}.contact-item__head{display:flex;justify-content:space-between;gap:1rem}.contact-item__head h2{margin:.45rem 0 .2rem}.contact-item__head p{margin:0;color:var(--muted)}.contact-item__head time{color:var(--muted);white-space:nowrap}.contact-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}.contact-summary span{display:grid;gap:.25rem;padding:.75rem;border-radius:14px;background:#f6f9fd;overflow-wrap:anywhere}.contact-item blockquote{margin:0;padding:1rem;border-left:4px solid var(--primary);background:#f8fbff;border-radius:0 14px 14px 0}.answer-list{display:grid;gap:.65rem}.answer-list div{display:grid;grid-template-columns:minmax(120px,220px) 1fr;gap:1rem;padding:.65rem 0;border-bottom:1px solid var(--border)}.answer-list dt{font-weight:800}.answer-list dd{margin:0;overflow-wrap:anywhere}
.public-flash{padding:.85rem 1rem;border-radius:14px;margin-bottom:1rem;font-weight:700}.public-flash--success{background:#eaf9f3;color:#0e7651}.public-flash--error{background:#fff0f0;color:#a72e2e}.public-scene{display:grid;gap:.85rem;padding:1rem;border-radius:20px;margin-bottom:1rem;border:1px solid color-mix(in srgb,var(--card-primary) 28%,transparent);background:color-mix(in srgb,var(--card-primary) 8%,var(--card-surface))}.public-scene__copy{display:grid;gap:.35rem}.public-scene__copy p{margin:0}.public-scene__status{display:inline-flex;width:max-content;max-width:100%;padding:.4rem .65rem;border-radius:999px;background:var(--card-primary);color:#fff;font-weight:800;font-size:.8rem}.public-scene--busy .public-scene__status{background:#f3a62f;color:#352400}.public-scene--closed .public-scene__status{background:#d64242}.public-scene__promotion{display:grid;gap:.2rem;padding:.8rem;border-radius:14px;background:var(--card-surface);color:var(--card-text);text-decoration:none;border:1px solid color-mix(in srgb,var(--card-primary) 18%,transparent)}.public-scene__promotion span{font-size:.9rem;opacity:.78}.public-campaign-list{display:grid;gap:1rem}.public-campaign-card{overflow:hidden;border-radius:20px;background:var(--card-surface);border:1px solid color-mix(in srgb,var(--card-text) 12%,transparent)}.public-campaign-card>img{width:100%;max-height:260px;object-fit:cover}.public-campaign-card>div{display:grid;gap:.7rem;padding:1rem}.public-campaign-card h3,.public-campaign-card p{margin:0}.public-campaign-card__date{font-size:.78rem;font-weight:800;color:var(--card-primary)}.public-form-list{display:grid;gap:1rem}.public-contact-form{display:grid;gap:.85rem;padding:1rem;border-radius:20px;background:var(--card-surface);border:1px solid color-mix(in srgb,var(--card-text) 12%,transparent)}.public-form-heading h3,.public-form-heading p{margin:0}.public-form-heading{display:grid;gap:.35rem}.public-field{display:grid;gap:.4rem;font-weight:700}.public-field input,.public-field textarea,.public-field select{width:100%;border:1px solid color-mix(in srgb,var(--card-text) 18%,transparent);background:var(--card-bg);color:var(--card-text);border-radius:12px;padding:.78rem;font:inherit}.public-field input:focus,.public-field textarea:focus,.public-field select:focus{outline:3px solid color-mix(in srgb,var(--card-primary) 25%,transparent);border-color:var(--card-primary)}.public-consent{display:flex;gap:.65rem;align-items:flex-start;font-size:.88rem;line-height:1.4}.public-consent input{margin-top:.22rem;flex:0 0 auto}.public-consent a{color:var(--card-primary)}.public-honeypot{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}.public-contact-form button.public-action-button{border:0;width:100%;font:inherit;cursor:pointer}
@media (max-width:900px){.campaign-grid{grid-template-columns:1fr}.compact-builder{grid-template-columns:1fr 1fr}.compact-builder textarea{grid-column:1/-1}.contact-summary{grid-template-columns:1fr}}
@media (max-width:680px){.section-title-row,.contact-item__head{align-items:flex-start;flex-direction:column}.campaign-qr-row{grid-template-columns:1fr}.campaign-qr-row canvas{width:180px;height:180px;margin:auto}.compact-builder{grid-template-columns:1fr}.compact-builder textarea{grid-column:auto}.answer-list div{grid-template-columns:1fr}.campaign-card__head{flex-direction:column}.campaign-card__head img{width:100%;height:180px}}

/* Módulo 8: analíticas, auditoría, diagnóstico y cierre de producción */
.hero-card--compact{align-items:center;min-height:auto}.dashboard-grid--wide{grid-template-columns:minmax(0,2fr) minmax(260px,1fr)}.panel-card--span-2{min-width:0}.metric-grid--analytics{grid-template-columns:repeat(6,minmax(0,1fr))}.filter-grid{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr)) auto;gap:.8rem;align-items:end}.filter-grid label,.stack-form label{display:grid;gap:.4rem;font-weight:700}.filter-grid input,.filter-grid select,.stack-form input{width:100%;border:1px solid var(--border);border-radius:12px;padding:.76rem .82rem;background:#fff;color:var(--text);font:inherit}.filter-grid input:focus,.filter-grid select:focus,.stack-form input:focus{outline:3px solid rgba(11,99,246,.18);border-color:var(--primary)}.analytics-chart{display:grid;gap:.8rem;max-height:560px;overflow:auto;padding-right:.25rem}.analytics-chart__row{display:grid;grid-template-columns:58px repeat(3,minmax(120px,1fr));gap:.75rem;align-items:center;padding:.72rem 0;border-bottom:1px solid var(--border)}.analytics-chart__row time{font-weight:800;color:var(--muted)}.analytics-chart__row>div{display:grid;grid-template-columns:58px 1fr 34px;gap:.45rem;align-items:center;font-size:.8rem}.analytics-chart__row progress{width:100%;height:10px;border:0;border-radius:999px;overflow:hidden;background:#edf3fb}.analytics-chart__row progress::-webkit-progress-bar{background:#edf3fb;border-radius:999px}.analytics-chart__row progress::-webkit-progress-value{background:linear-gradient(90deg,var(--primary),#21d4fd);border-radius:999px}.analytics-chart__row progress::-moz-progress-bar{background:linear-gradient(90deg,var(--primary),#21d4fd);border-radius:999px}.stat-list{display:grid;gap:.15rem;margin:0}.stat-list>div{display:flex;justify-content:space-between;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--border)}.stat-list dt{color:var(--muted)}.stat-list dd{margin:0;font-weight:900;font-size:1.05rem}.privacy-control{display:flex;justify-content:space-between;gap:1.5rem;align-items:center}.privacy-control h2{margin:.25rem 0}.privacy-control p{margin:.3rem 0 0;color:var(--muted);max-width:760px}.button--danger-soft{background:#fff1f1;color:#a72e2e;border-color:#f2caca}.button--small{padding:.5rem .7rem;min-height:36px;font-size:.82rem}.button-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.button-row form{margin:0}.muted{color:var(--muted)}.metadata-list{display:grid;gap:.35rem;margin:.65rem 0 0;padding:.7rem;border-radius:12px;background:#f7faff}.metadata-list>div{display:grid;grid-template-columns:minmax(100px,180px) 1fr;gap:.7rem}.metadata-list dt{font-weight:800}.metadata-list dd{margin:0;overflow-wrap:anywhere}.diagnostic-list{display:grid;gap:.65rem}.diagnostic-item{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:.8rem;align-items:center;padding:.8rem;border:1px solid var(--border);border-radius:14px;background:#fff}.diagnostic-item>span:first-child{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;font-weight:900}.diagnostic-item>div{display:grid;gap:.18rem}.diagnostic-item small{color:var(--muted)}.diagnostic-item--pass>span:first-child{background:#e9f8f2;color:#107451}.diagnostic-item--warning>span:first-child{background:#fff5df;color:#8b5d00}.diagnostic-item--fail>span:first-child{background:#fff0f0;color:#a72e2e}.backup-layout{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:1.2rem}.stack-form{display:grid;gap:.8rem;align-content:start;padding:1rem;border:1px solid var(--border);border-radius:16px;background:#f8fbff}.switch-field{display:flex!important;grid-template-columns:auto 1fr;align-items:center;gap:.7rem}.switch-field input{width:auto}.form-help{margin:0;color:var(--muted);font-size:.86rem;line-height:1.5}.hash-code{display:block;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-state{padding:1.5rem;text-align:center;border:1px dashed var(--border);border-radius:16px;color:var(--muted)}.empty-state strong{display:block;color:var(--text);margin-bottom:.25rem}.empty-state p{margin:0}.table-wrap td small{display:block;color:var(--muted);margin-top:.2rem}.table-wrap td code{font-size:.78rem;overflow-wrap:anywhere}.badge{white-space:nowrap}
@media (max-width:1280px){.metric-grid--analytics{grid-template-columns:repeat(3,minmax(0,1fr))}.filter-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}.filter-grid .button{align-self:end}.dashboard-grid--wide{grid-template-columns:1fr}.backup-layout{grid-template-columns:1fr}}
@media (max-width:780px){.metric-grid--analytics{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-grid{grid-template-columns:1fr}.analytics-chart__row{grid-template-columns:1fr;gap:.45rem}.analytics-chart__row time{margin-bottom:.15rem}.privacy-control{align-items:flex-start;flex-direction:column}.diagnostic-item{grid-template-columns:34px 1fr}.diagnostic-item>.badge{grid-column:2}.metadata-list>div{grid-template-columns:1fr}}
@media (max-width:480px){.metric-grid--analytics{grid-template-columns:1fr}.analytics-chart__row>div{grid-template-columns:54px 1fr 28px}.button-row{align-items:stretch;flex-direction:column}.button-row .button{width:100%}}
