:root {
  --navy: #0b1f3a;
  --navy-2: #102a4c;
  --blue: #2563eb;
  --blue-2: #3b82f6;
  --teal: #0f9f91;
  --teal-soft: #e7f8f5;
  --bg: #f5f7fb;
  --surface: #ffffff;
  --surface-soft: #f8fafc;
  --text: #152238;
  --muted: #66758a;
  --border: #e2e8f0;
  --border-strong: #d3dce8;
  --success: #15803d;
  --warning: #b7791f;
  --radius: 20px;
  --shadow-sm: 0 8px 24px rgba(15, 31, 58, 0.07);
  --shadow: 0 22px 60px rgba(15, 31, 58, 0.12);
}

* {
  box-sizing: border-box;
}

html {
  color-scheme: light;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  min-height: 100vh;
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}

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

a {
  color: inherit;
}

.shell {
  width: min(1160px, calc(100% - 40px));
  margin: 0 auto;
}

.site-header {
  position: relative;
  z-index: 10;
  background: rgba(255, 255, 255, 0.88);
  border-bottom: 1px solid rgba(226, 232, 240, 0.9);
  backdrop-filter: blur(14px);
}

.topbar {
  width: min(1160px, calc(100% - 40px));
  min-height: 78px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.logo {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
}

.brand-mark {
  display: grid;
  place-items: center;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background: linear-gradient(145deg, var(--blue), var(--teal));
  color: #fff;
  font-size: 22px;
  font-weight: 800;
  box-shadow: 0 10px 22px rgba(37, 99, 235, 0.24);
}

.brand-mark.small {
  width: 38px;
  height: 38px;
  flex-basis: 38px;
  border-radius: 12px;
  font-size: 18px;
}

.logo-copy {
  display: grid;
  gap: 1px;
}

.logo-copy strong {
  color: var(--navy);
  font-size: 17px;
  letter-spacing: -0.02em;
}

.logo-copy small {
  color: var(--muted);
  font-size: 11px;
}

.stage-badge {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 6px 12px;
  border: 1px solid #cfe0ff;
  border-radius: 999px;
  color: #2454a6;
  background: #eef5ff;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.stage-badge.inline {
  margin-bottom: 18px;
}

.hero {
  position: relative;
  min-height: 610px;
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(430px, 0.96fr);
  align-items: center;
  gap: 70px;
  padding-top: 82px;
  padding-bottom: 90px;
}

.hero::before {
  content: "";
  position: absolute;
  width: 420px;
  height: 420px;
  right: -180px;
  top: 10px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(59, 130, 246, 0.12), rgba(59, 130, 246, 0));
  pointer-events: none;
}

.eyebrow {
  margin: 0 0 12px;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.16em;
}

.eyebrow.accent {
  color: var(--blue);
}

.eyebrow.soft {
  color: #9cc5ff;
}

h1,
h2,
p {
  margin-top: 0;
}

h1,
h2 {
  color: var(--navy);
  letter-spacing: -0.035em;
}

.hero h1 {
  max-width: 690px;
  margin-bottom: 22px;
  font-size: clamp(42px, 6vw, 67px);
  line-height: 1.02;
}

.hero-text {
  max-width: 650px;
  margin-bottom: 30px;
  color: var(--muted);
  font-size: 18px;
  line-height: 1.7;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 20px;
  border: 1px solid transparent;
  border-radius: 13px;
  text-decoration: none;
  font-weight: 800;
  transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.button.primary {
  color: #fff;
  background: linear-gradient(135deg, var(--blue), #1d4ed8);
  box-shadow: 0 12px 26px rgba(37, 99, 235, 0.22);
}

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

.button:not(.disabled):hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(15, 31, 58, 0.12);
}

.button.disabled {
  width: 100%;
  color: #93a0b1;
  background: #edf1f6;
  border-color: #e0e6ee;
  cursor: not-allowed;
  user-select: none;
}

.hero-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 22px;
  margin-top: 28px;
  color: #516174;
  font-size: 13px;
  font-weight: 700;
}

.hero-trust span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.hero-trust i {
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  color: var(--teal);
  background: var(--teal-soft);
  font-style: normal;
  font-size: 11px;
}

.hero-visual {
  position: relative;
  min-height: 460px;
  display: grid;
  place-items: center;
}

.hero-visual::before {
  content: "";
  position: absolute;
  inset: 22px 8px 14px 52px;
  border-radius: 36px;
  background: linear-gradient(145deg, #e8f0ff, #e8fbf7);
  transform: rotate(-3deg);
}

.calendar-window {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 500px;
  padding: 24px;
  border: 1px solid rgba(219, 228, 239, 0.9);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: var(--shadow);
}

.window-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--border);
}

.window-top > div {
  display: grid;
  gap: 5px;
}

.window-top strong {
  color: var(--navy);
  font-size: 18px;
}

.mini-label {
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
}

.online-dot {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 9px;
  border-radius: 999px;
  color: var(--success);
  background: #ecfdf3;
  font-size: 11px;
  font-weight: 800;
}

.online-dot::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #22c55e;
}

.summary-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin: 18px 0;
}

.summary-row > div {
  padding: 13px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--surface-soft);
}

.summary-row span,
.summary-row strong {
  display: block;
}

.summary-row span {
  margin-bottom: 5px;
  color: var(--muted);
  font-size: 10px;
}

.summary-row strong {
  color: var(--navy);
  font-size: 20px;
}

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

.appointment {
  min-height: 64px;
  display: grid;
  grid-template-columns: 48px 38px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 10px 11px;
  border: 1px solid var(--border);
  border-radius: 15px;
}

.appointment time {
  color: var(--navy);
  font-size: 12px;
  font-weight: 800;
}

.avatar {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 11px;
  color: #1d4ed8;
  background: #e7efff;
  font-size: 11px;
  font-weight: 900;
}

.avatar.alt {
  color: #0f766e;
  background: #e4f8f5;
}

.appointment > div {
  min-width: 0;
}

.appointment strong,
.appointment small {
  display: block;
}

.appointment strong {
  margin-bottom: 3px;
  color: var(--navy);
  font-size: 12px;
}

.appointment small {
  overflow: hidden;
  color: var(--muted);
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.status {
  padding: 5px 7px;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 900;
}

.status.ok {
  color: var(--success);
  background: #ecfdf3;
}

.status.pending {
  color: var(--warning);
  background: #fff8e6;
}

.appointment.faded {
  grid-template-columns: 48px 1fr;
  border-style: dashed;
  background: #fbfcfe;
}

.empty-slot {
  color: #7d8b9e;
  font-size: 11px;
  font-weight: 700;
}

.floating-card {
  position: absolute;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid rgba(217, 227, 238, 0.9);
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 14px 34px rgba(15, 31, 58, 0.14);
}

.security-card {
  right: -20px;
  bottom: 20px;
}

.floating-icon {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 10px;
  color: var(--teal);
  background: var(--teal-soft);
  font-weight: 900;
}

.floating-card strong,
.floating-card small {
  display: block;
}

.floating-card strong {
  margin-bottom: 2px;
  color: var(--navy);
  font-size: 11px;
}

.floating-card small {
  color: var(--muted);
  font-size: 9px;
}

.foundation-section {
  padding: 72px 0 78px;
  border-top: 1px solid #edf1f5;
  border-bottom: 1px solid #edf1f5;
  background: #fff;
}

.section-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.65fr);
  align-items: end;
  gap: 50px;
  margin-bottom: 30px;
}

.section-heading.compact {
  display: block;
}

.section-heading h2 {
  max-width: 700px;
  margin-bottom: 0;
  font-size: clamp(30px, 4vw, 44px);
  line-height: 1.08;
}

.section-heading > p {
  margin-bottom: 0;
  color: var(--muted);
  line-height: 1.7;
}

.status-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 15px;
}

.status-item {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 15px;
  padding: 20px;
  border: 1px solid var(--border);
  border-radius: 17px;
  background: var(--surface);
  box-shadow: 0 8px 24px rgba(15, 31, 58, 0.035);
}

.status-item.featured {
  border-color: #cfe0ff;
  background: linear-gradient(145deg, #f8fbff, #f7fffd);
}

.feature-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  color: var(--blue);
  background: #eef5ff;
  font-size: 11px;
  font-weight: 900;
}

.status-item strong,
.status-item span {
  display: block;
}

.status-item strong {
  margin: 2px 0 6px;
  color: var(--navy);
  font-size: 15px;
}

.status-item span {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

code {
  padding: 1px 4px;
  border-radius: 5px;
  color: #1e4a8f;
  background: #edf4ff;
  font-family: Consolas, Monaco, monospace;
  font-size: 0.92em;
}

.audience-section {
  padding-top: 78px;
  padding-bottom: 88px;
}

.audience-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.audience-grid article {
  min-height: 170px;
  padding: 22px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: #fff;
  box-shadow: var(--shadow-sm);
}

.audience-grid article > span {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  margin-bottom: 30px;
  border-radius: 12px;
  color: var(--blue);
  background: #eef5ff;
  font-size: 18px;
  font-weight: 900;
}

.audience-grid strong,
.audience-grid small {
  display: block;
}

.audience-grid strong {
  margin-bottom: 7px;
  color: var(--navy);
  font-size: 14px;
}

.audience-grid small {
  color: var(--muted);
  line-height: 1.5;
}

.site-footer {
  border-top: 1px solid var(--border);
  background: #fff;
}

.footer-inner {
  min-height: 104px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.footer-inner p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}

/* Páginas de autenticação — layout base preservado e ativado na Etapa 2 */
.auth-page {
  background: #eef3f9;
}

.auth-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: minmax(360px, 0.9fr) minmax(540px, 1.1fr);
}

.auth-aside {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 100vh;
  padding: 48px clamp(32px, 5vw, 78px);
  color: #fff;
  background: linear-gradient(145deg, #0b1f3a 0%, #11345d 62%, #0e5e67 120%);
}

.auth-aside::before,
.auth-aside::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}

.auth-aside::before {
  width: 360px;
  height: 360px;
  right: -190px;
  top: 80px;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.auth-aside::after {
  width: 220px;
  height: 220px;
  left: -120px;
  bottom: 120px;
  background: rgba(37, 99, 235, 0.16);
}

.register-aside {
  background: linear-gradient(145deg, #0b1f3a 0%, #123a63 56%, #0f766e 125%);
}

.light-logo {
  position: relative;
  z-index: 2;
}

.light-logo .logo-copy strong,
.light-logo .logo-copy small {
  color: #fff;
}

.light-logo .logo-copy small {
  opacity: 0.65;
}

.auth-aside-copy {
  position: relative;
  z-index: 2;
  max-width: 500px;
  margin: auto 0;
}

.auth-aside-copy h1 {
  margin-bottom: 20px;
  color: #fff;
  font-size: clamp(38px, 5vw, 60px);
  line-height: 1.04;
}

.auth-aside-copy p:not(.eyebrow) {
  margin-bottom: 0;
  color: rgba(255, 255, 255, 0.7);
  font-size: 16px;
  line-height: 1.7;
}

.aside-proof {
  position: relative;
  z-index: 2;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  color: rgba(255, 255, 255, 0.78);
  font-size: 12px;
  font-weight: 700;
}

.auth-panel {
  display: grid;
  place-items: center;
  min-height: 100vh;
  padding: 42px;
  background: #f7f9fc;
}

.auth-card {
  width: min(500px, 100%);
  padding: 38px;
  border: 1px solid var(--border);
  border-radius: 24px;
  background: #fff;
  box-shadow: var(--shadow);
}

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

.back-link {
  display: inline-block;
  margin-bottom: 24px;
  color: #5a6a7d;
  text-decoration: none;
  font-size: 12px;
  font-weight: 800;
}

.auth-card h2 {
  margin-bottom: 10px;
  font-size: clamp(30px, 4vw, 40px);
}

.auth-subtitle {
  margin-bottom: 26px;
  color: var(--muted);
  line-height: 1.65;
}

.form-preview {
  display: grid;
  gap: 10px;
}

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

.form-preview label {
  color: #334155;
  font-size: 11px;
  font-weight: 800;
}

.input-preview {
  min-height: 46px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 6px;
  padding: 11px 13px;
  border: 1px solid var(--border-strong);
  border-radius: 11px;
  color: #9aa5b4;
  background: #fbfcfe;
  font-size: 13px;
}

.input-preview.password {
  letter-spacing: 0.16em;
}

.select-preview span {
  color: #64748b;
  font-size: 16px;
}

.full-field {
  grid-column: 1 / -1;
}

.notice-card {
  display: grid;
  gap: 5px;
  margin-top: 22px;
  padding: 14px;
  border: 1px solid #dce9ff;
  border-radius: 12px;
  background: #f4f8ff;
}

.notice-card strong {
  color: #204b8e;
  font-size: 12px;
}

.notice-card span {
  color: #6a7890;
  font-size: 11px;
  line-height: 1.55;
}

@media (max-width: 980px) {
  .hero {
    grid-template-columns: 1fr;
    gap: 48px;
    padding-top: 64px;
  }

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

  .hero-visual {
    width: min(620px, 100%);
    margin: 0 auto;
  }

  .section-heading {
    grid-template-columns: 1fr;
    gap: 16px;
  }

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

  .auth-shell {
    grid-template-columns: 1fr;
  }

  .auth-aside {
    min-height: auto;
    padding: 34px 30px 38px;
  }

  .auth-aside-copy {
    margin: 70px 0 60px;
  }

  .auth-aside-copy h1 {
    max-width: 720px;
  }

  .auth-panel {
    min-height: auto;
    padding: 38px 20px 60px;
  }
}

@media (max-width: 640px) {
  .shell,
  .topbar {
    width: min(100% - 24px, 1160px);
  }

  .topbar {
    min-height: 68px;
  }

  .stage-badge:not(.inline) {
    display: none;
  }

  .hero {
    min-height: auto;
    padding-top: 52px;
    padding-bottom: 58px;
  }

  .hero h1 {
    font-size: clamp(38px, 12vw, 52px);
  }

  .hero-text {
    font-size: 16px;
  }

  .hero-actions,
  .hero-actions .button {
    width: 100%;
  }

  .hero-trust {
    gap: 12px 16px;
  }

  .hero-visual {
    min-height: 390px;
  }

  .hero-visual::before {
    inset: 20px 0 10px 18px;
  }

  .calendar-window {
    padding: 17px;
    border-radius: 19px;
  }

  .summary-row {
    gap: 7px;
  }

  .summary-row > div {
    padding: 10px;
  }

  .appointment {
    grid-template-columns: 42px 34px minmax(0, 1fr);
  }

  .appointment .status {
    display: none;
  }

  .security-card {
    right: 6px;
    bottom: 0;
  }

  .foundation-section,
  .audience-section {
    padding-top: 58px;
    padding-bottom: 60px;
  }

  .status-grid,
  .audience-grid {
    grid-template-columns: 1fr;
  }

  .audience-grid article {
    min-height: auto;
  }

  .audience-grid article > span {
    margin-bottom: 20px;
  }

  .footer-inner {
    padding: 22px 0;
    flex-direction: column;
    align-items: flex-start;
  }

  .auth-aside {
    padding: 28px 20px 30px;
  }

  .auth-aside-copy {
    margin: 52px 0 44px;
  }

  .auth-aside-copy h1 {
    font-size: 38px;
  }

  .auth-panel {
    padding: 26px 12px 44px;
  }

  .auth-card {
    padding: 24px 18px;
    border-radius: 18px;
  }

  .form-preview.two-columns {
    grid-template-columns: 1fr;
  }

  .full-field {
    grid-column: auto;
  }
}

/* ETAPA 2 — formulários funcionais e área interna provisória */
.real-form {
  display: grid;
  gap: 16px;
}

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

.field {
  display: grid;
  gap: 7px;
}

.field label {
  color: #334155;
  font-size: 11px;
  font-weight: 800;
}

.form-control {
  width: 100%;
  min-height: 48px;
  padding: 12px 13px;
  border: 1px solid var(--border-strong);
  border-radius: 11px;
  outline: none;
  color: var(--text);
  background: #fbfcfe;
  font-size: 13px;
  transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.form-control::placeholder {
  color: #9aa5b4;
}

.form-control:focus {
  border-color: #7da7f5;
  background: #fff;
  box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.09);
}

.form-textarea {
  min-height: 92px;
  resize: vertical;
}

.form-section-title {
  display: grid;
  gap: 4px;
  margin-top: 4px;
  padding-top: 18px;
  border-top: 1px solid var(--border);
}

.form-section-title strong {
  color: var(--navy);
  font-size: 13px;
}

.form-section-title span {
  color: var(--muted);
  font-size: 11px;
}

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

.button:disabled {
  opacity: 0.68;
  cursor: wait;
  transform: none;
  box-shadow: none;
}

.auth-links {
  display: flex;
  justify-content: flex-end;
  margin-top: -4px;
}

.auth-links a,
.auth-bottom-link a {
  color: var(--blue);
  text-decoration: none;
  font-size: 12px;
  font-weight: 800;
}

.auth-links a:hover,
.auth-bottom-link a:hover {
  text-decoration: underline;
}

.auth-bottom-link {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px;
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid var(--border);
  color: var(--muted);
  font-size: 12px;
}

.form-message {
  margin: 0;
  padding: 12px 14px;
  border: 1px solid transparent;
  border-radius: 11px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.55;
}

.form-message.info {
  color: #2454a6;
  border-color: #d6e4ff;
  background: #f3f7ff;
}

.form-message.success {
  color: #166534;
  border-color: #bbf7d0;
  background: #f0fdf4;
}

.form-message.error {
  color: #991b1b;
  border-color: #fecaca;
  background: #fff7f7;
}

/* Painel provisório da Etapa 2 */
.dashboard-page {
  background: #f4f7fb;
}

.dashboard-header {
  position: sticky;
  top: 0;
  z-index: 20;
  border-bottom: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(14px);
}

.dashboard-topbar {
  min-height: 80px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.dashboard-user {
  display: flex;
  align-items: center;
  gap: 14px;
}

.dashboard-user > div {
  display: grid;
  gap: 2px;
  text-align: right;
}

.dashboard-user strong {
  color: var(--navy);
  font-size: 13px;
}

.dashboard-user small {
  color: var(--muted);
  font-size: 10px;
}

.button.compact {
  min-height: 38px;
  padding: 8px 14px;
  border-radius: 10px;
  font-size: 12px;
}

.ghost-button {
  border-color: var(--border-strong);
  color: var(--navy);
  background: #fff;
}

.dashboard-main {
  padding-top: 46px;
  padding-bottom: 70px;
}

.welcome-card {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 28px;
  margin-bottom: 24px;
  padding: 32px;
  border: 1px solid var(--border);
  border-radius: 24px;
  background: linear-gradient(135deg, #fff, #f6f9ff);
  box-shadow: var(--shadow-sm);
}

.welcome-card h1 {
  margin-bottom: 10px;
  font-size: clamp(30px, 4.5vw, 48px);
}

.welcome-card p:not(.eyebrow) {
  max-width: 720px;
  margin-bottom: 0;
  color: var(--muted);
  line-height: 1.65;
}

.dashboard-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin: 24px 0;
}

.summary-card {
  min-height: 146px;
  display: grid;
  align-content: start;
  gap: 8px;
  padding: 21px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: #fff;
  box-shadow: var(--shadow-sm);
}

.summary-card.highlight {
  border-color: #cfe0ff;
  background: linear-gradient(145deg, #f8fbff, #eef5ff);
}

.summary-card > span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.summary-card strong {
  color: var(--navy);
  font-size: 22px;
  line-height: 1.15;
}

.summary-card small {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.5;
}

.dashboard-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 52px;
}

.dashboard-info-card {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 16px;
  padding: 22px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: #fff;
  box-shadow: var(--shadow-sm);
}

.dashboard-card-icon {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 14px;
  color: var(--blue);
  background: #eef5ff;
  font-size: 18px;
  font-weight: 900;
}

.dashboard-info-card > div:last-child {
  min-width: 0;
  display: grid;
  gap: 6px;
}

.dashboard-info-card strong {
  overflow-wrap: anywhere;
  color: var(--navy);
  font-size: 16px;
}

.dashboard-info-card p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}

.modules-section {
  padding-top: 8px;
}

.module-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.module-grid article {
  min-height: 150px;
  display: grid;
  align-content: start;
  gap: 8px;
  padding: 22px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: #fff;
}

.module-grid article > span {
  color: var(--navy);
  font-size: 14px;
  font-weight: 800;
}

.module-grid article strong {
  width: fit-content;
  padding: 5px 8px;
  border-radius: 999px;
  color: #607089;
  background: #eef2f7;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.module-grid article small {
  color: var(--muted);
  line-height: 1.55;
}

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

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

@media (max-width: 640px) {
  .real-form.two-columns {
    grid-template-columns: 1fr;
  }

  .dashboard-topbar {
    min-height: 72px;
  }

  .dashboard-user > div {
    display: none;
  }

  .welcome-card {
    flex-direction: column;
    padding: 24px 20px;
  }

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

  .summary-card {
    min-height: auto;
  }

  .dashboard-info-card {
    grid-template-columns: 42px 1fr;
    padding: 18px;
  }

  .dashboard-card-icon {
    width: 42px;
    height: 42px;
  }
}

/* ETAPA 3 — configuração operacional da empresa */
.dashboard-topbar { width: min(1380px, calc(100% - 32px)); }
.dashboard-nav { display:flex; align-items:center; gap:4px; flex:1; justify-content:center; }
.dashboard-nav a { padding:9px 10px; border-radius:10px; color:#5c6b7d; text-decoration:none; font-size:12px; font-weight:800; white-space:nowrap; }
.dashboard-nav a:hover, .dashboard-nav a.active { color:var(--blue); background:#eef5ff; }
.page-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin-bottom:24px; padding:28px 30px; border:1px solid var(--border); border-radius:22px; background:#fff; box-shadow:var(--shadow-sm); }
.page-heading h1 { margin-bottom:8px; font-size:clamp(30px,4vw,44px); }
.page-heading p:last-child { margin-bottom:0; color:var(--muted); line-height:1.6; }
.workspace-grid { display:grid; grid-template-columns:minmax(330px,.82fr) minmax(0,1.18fr); gap:22px; align-items:start; }
.workspace-card { padding:24px; border:1px solid var(--border); border-radius:20px; background:#fff; box-shadow:var(--shadow-sm); }
.form-workspace { position:sticky; top:94px; }
.workspace-title { margin-bottom:20px; }
.workspace-title h2 { margin-bottom:6px; font-size:21px; }
.workspace-title p { margin-bottom:0; color:var(--muted); font-size:13px; line-height:1.6; }
.form-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.form-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:4px; }
.optional-label { color:#8a97a8; font-size:10px; font-weight:700; }
.field-help { color:#8793a3; font-size:10px; line-height:1.45; }
.entity-list { display:grid; gap:12px; }
.entity-card { display:grid; grid-template-columns:48px minmax(0,1fr); gap:14px; padding:16px; border:1px solid var(--border); border-radius:16px; background:#fbfcfe; }
.entity-avatar { display:grid; place-items:center; width:48px; height:48px; border-radius:15px; color:#1d4ed8; background:#eaf1ff; font-weight:900; font-size:18px; }
.entity-main { min-width:0; }
.entity-title-row { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.entity-title-row > div { display:grid; gap:4px; min-width:0; }
.entity-title-row strong { color:var(--navy); font-size:15px; }
.entity-title-row span:not(.status-pill) { color:var(--muted); font-size:11px; }
.status-pill { display:inline-flex; align-items:center; padding:5px 8px; border-radius:999px; font-size:9px; font-weight:900; text-transform:uppercase; letter-spacing:.04em; }
.status-pill.active { color:#15803d; background:#ecfdf3; }
.status-pill.inactive { color:#64748b; background:#eef2f6; }
.entity-meta { display:grid; gap:3px; margin-top:10px; color:#68778a; font-size:11px; line-height:1.45; }
.entity-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:13px; }
.button.small { min-height:34px; padding:7px 11px; border-radius:9px; font-size:10px; }
.danger-soft { color:#b42318; border:1px solid #fed7d2; background:#fff4f2; }
.success-soft { color:#15803d; border:1px solid #ccebd7; background:#effbf3; }
.empty-state { display:grid; place-items:center; gap:6px; min-height:190px; padding:28px; border:1px dashed #d6deea; border-radius:16px; color:var(--muted); text-align:center; }
.empty-state strong { color:#475569; font-size:13px; }
.empty-state span { font-size:11px; }
.service-card { grid-template-columns:92px minmax(0,1fr); }
.service-price { display:grid; place-items:center; min-height:58px; border-radius:14px; color:#1d4ed8; background:#edf4ff; font-size:13px; font-weight:900; text-align:center; padding:8px; }
.toggle-row { display:flex; align-items:flex-start; gap:10px; padding:12px; border:1px solid var(--border); border-radius:12px; background:#f8fafc; cursor:pointer; }
.toggle-row input { margin-top:3px; }
.toggle-row span { display:grid; gap:3px; }
.toggle-row strong { color:#334155; font-size:12px; }
.toggle-row small { color:var(--muted); font-size:10px; }
.checkbox-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.check-card { display:flex; gap:9px; align-items:flex-start; padding:10px; border:1px solid var(--border); border-radius:11px; background:#fff; cursor:pointer; }
.check-card span { display:grid; gap:2px; }
.check-card strong { color:#334155; font-size:11px; }
.check-card small { color:var(--muted); font-size:9px; }
.empty-inline { grid-column:1/-1; margin:0; padding:12px; border:1px dashed var(--border-strong); border-radius:10px; color:var(--muted); font-size:10px; line-height:1.5; }
.settings-stack { display:grid; gap:20px; }
.inline-form { display:grid; grid-template-columns:minmax(180px,1fr) minmax(140px,.7fr) auto; gap:10px; align-items:end; margin-bottom:18px; }
.inline-form.four { grid-template-columns:minmax(190px,1fr) 135px 135px auto; }
.schedule-list { display:grid; gap:7px; }
.schedule-day { display:grid; grid-template-columns:150px minmax(0,1fr); gap:14px; align-items:center; min-height:46px; padding:8px 12px; border-bottom:1px solid #edf1f5; }
.schedule-day:last-child { border-bottom:0; }
.schedule-day > strong { color:#334155; font-size:11px; }
.schedule-day > div { display:flex; flex-wrap:wrap; gap:7px; }
.schedule-period { display:inline-flex; align-items:center; gap:7px; padding:6px 8px; border-radius:8px; color:#2454a6; background:#eef5ff; font-size:10px; font-weight:800; }
.schedule-period button { width:18px; height:18px; display:grid; place-items:center; padding:0; border:0; border-radius:50%; color:#6b7c91; background:#fff; cursor:pointer; }
.schedule-closed { color:#9aa5b4; font-size:10px; font-style:italic; }
.selector-field { max-width:420px; margin-bottom:12px; }
.block-list { display:grid; gap:9px; margin-top:18px; }
.block-card { display:grid; grid-template-columns:minmax(180px,1fr) minmax(240px,1.3fr) auto; align-items:center; gap:14px; padding:12px 14px; border:1px solid var(--border); border-radius:13px; background:#fbfcfe; }
.block-card > div { display:grid; gap:3px; }
.block-card > div:nth-child(2) { display:flex; gap:7px; flex-wrap:wrap; align-items:center; color:#68778a; font-size:10px; }
.block-card strong { color:#334155; font-size:11px; }
.block-card span { color:var(--muted); font-size:10px; }
.compact-empty { min-height:110px; margin-top:16px; }
.settings-form-card { max-width:900px; margin:0 auto; }
.live-modules a { display:grid; text-decoration:none; transition:transform 160ms ease, box-shadow 160ms ease; }
.live-modules a:hover { transform:translateY(-2px); box-shadow:var(--shadow-sm); }

@media (max-width: 1180px) {
  .dashboard-topbar { flex-wrap:wrap; padding:12px 0; }
  .dashboard-nav { order:3; width:100%; overflow-x:auto; justify-content:flex-start; padding-bottom:2px; }
}
@media (max-width: 860px) {
  .workspace-grid { grid-template-columns:1fr; }
  .form-workspace { position:static; }
  .inline-form, .inline-form.four { grid-template-columns:1fr 1fr; }
  .block-card { grid-template-columns:1fr; }
}
@media (max-width: 640px) {
  .dashboard-topbar { width:min(100% - 20px,1380px); }
  .dashboard-user > div { display:none; }
  .dashboard-nav a { padding:8px 9px; font-size:11px; }
  .page-heading { padding:22px 18px; }
  .form-row, .checkbox-grid, .inline-form, .inline-form.four { grid-template-columns:1fr; }
  .entity-card, .service-card { grid-template-columns:1fr; }
  .entity-avatar { width:42px; height:42px; }
  .service-price { min-height:42px; width:max-content; min-width:90px; }
  .schedule-day { grid-template-columns:1fr; gap:7px; }
}
.module-grid > a {
  min-height: 150px;
  align-content: start;
  gap: 8px;
  padding: 22px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: #fff;
  color: inherit;
}
.module-grid > a > span { color:var(--navy); font-size:14px; font-weight:800; }
.module-grid > a > strong { width:fit-content; padding:5px 8px; border-radius:999px; color:#2454a6; background:#eef5ff; font-size:10px; text-transform:uppercase; letter-spacing:.06em; }
.module-grid > a > small { color:var(--muted); line-height:1.55; }

/* Correção isolada — botões "Cancelar edição" da Etapa 3.
   A classe .button define display:inline-flex; por isso garantimos que
   o atributo hidden controle somente estes dois botões como previsto. */
#profissional-cancelar[hidden],
#servico-cancelar[hidden] {
  display: none !important;
}

/* Correção isolada — oculta o aviso de lista vazia quando já existem profissionais cadastrados. */
#profissionais-vazio[hidden] {
  display: none !important;
}

/* ETAPA 4 — motor de disponibilidade */
.setting-note {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 12px;
  align-items: center;
  margin-top: -4px;
  padding: 11px 13px;
  border-radius: 12px;
  background: #f8fafc;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.5;
}
.setting-note strong { color: #334155; }
.availability-card { border-color: #d9e6fb; }
.availability-title-row { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.engine-badge {
  display:inline-flex;
  align-items:center;
  white-space:nowrap;
  padding:6px 9px;
  border-radius:999px;
  color:#15803d;
  background:#ecfdf3;
  font-size:9px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.availability-form {
  display:grid;
  grid-template-columns:minmax(190px,1fr) minmax(190px,1fr) 170px auto;
  gap:12px;
  align-items:end;
}
.availability-action { display:flex; align-items:flex-end; }
.availability-summary {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:8px 18px;
  margin-top:20px;
  padding:13px 15px;
  border:1px solid #d9e6fb;
  border-radius:13px;
  background:#f5f9ff;
}
.availability-summary strong { color:#234f98; font-size:12px; }
.availability-summary span { color:#64748b; font-size:10px; }
.availability-results {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:9px;
  margin-top:14px;
}
.availability-slot {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-height:64px;
  padding:12px;
  border:1px solid var(--border);
  border-radius:13px;
  background:#fff;
}
.availability-slot > div { display:grid; gap:3px; }
.availability-slot strong { color:#1e293b; font-size:15px; }
.availability-slot span { color:var(--muted); font-size:9px; line-height:1.35; }
.availability-slot.available { border-color:#ccebd7; background:#f6fcf8; }
.availability-slot.unavailable { border-color:#e3e8ef; background:#f8fafc; opacity:.82; }
.availability-state {
  display:inline-flex;
  padding:5px 7px;
  border-radius:999px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.availability-slot.available .availability-state { color:#15803d; background:#e8f8ee; }
.availability-slot.unavailable .availability-state { color:#64748b; background:#edf1f5; }
#disponibilidade-vazio { margin-top:16px; }
#disponibilidade-vazio[hidden],
#disponibilidade-resumo[hidden] { display:none !important; }

@media (max-width: 1050px) {
  .availability-form { grid-template-columns:1fr 1fr; }
  .availability-results { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width: 720px) {
  .availability-title-row { flex-direction:column; }
  .availability-form { grid-template-columns:1fr; }
  .availability-results { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .availability-action .button { width:100%; }
}
@media (max-width: 430px) {
  .availability-results { grid-template-columns:1fr; }
}


/* ETAPA 4 — complemento isolado: bloqueio recorrente semanal */
.recurring-block-card { border-color:#e3eaf5; }
.weekday-checks { display:flex; flex-wrap:wrap; gap:8px; margin-top:2px; }
.weekday-chip { position:relative; cursor:pointer; }
.weekday-chip input { position:absolute; opacity:0; pointer-events:none; }
.weekday-chip span {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:46px;
  min-height:36px;
  padding:7px 10px;
  border:1px solid var(--border);
  border-radius:10px;
  color:#64748b;
  background:#fff;
  font-size:10px;
  font-weight:900;
  transition:border-color 140ms ease, background 140ms ease, color 140ms ease;
}
.weekday-chip input:checked + span { border-color:#9ec1f5; color:#2454a6; background:#eef5ff; }
.weekday-chip input:focus-visible + span { outline:2px solid #93b8ee; outline-offset:2px; }
.recurring-block-item > div:nth-child(2) { line-height:1.5; }
#bloqueios-recorrentes-vazio[hidden] { display:none !important; }

/* ETAPA 4.1 — consolidação visual do painel atual
   Somente apresentação das telas Profissionais, Serviços, Horários e Configurações. */
.management-page .clean-heading {
  margin-bottom: 22px;
  padding: 8px 2px 2px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.management-page .clean-heading h1 { font-size: clamp(28px, 3.4vw, 40px); }
.management-page .clean-heading p:last-child { max-width: 720px; font-size: 13px; }
.management-page .workspace-card {
  border-color: #e4eaf2;
  border-radius: 18px;
  box-shadow: 0 8px 28px rgba(22, 45, 79, .055);
}
.management-page .workspace-title { margin-bottom: 16px; }
.management-page .workspace-title h2 { font-size: 18px; }
.management-page .workspace-title p { font-size: 11px; line-height: 1.55; }
.management-grid { grid-template-columns: minmax(320px, 380px) minmax(0, 1fr); gap: 20px; }
.compact-form-card { padding: 22px; }
.compact-form-card .real-form { gap: 14px; }
.form-row-name-status { grid-template-columns: minmax(0, 1fr) 118px; }
.status-field { min-width: 0; }
.compact-textarea { min-height: 72px; resize: vertical; }
.compact-section-title { margin-top: 2px; }
.management-list-card { padding: 0; overflow: hidden; }
.management-list-card .list-title { margin: 0; padding: 20px 22px 16px; border-bottom: 1px solid #edf1f5; }
.management-list-card .entity-list { gap: 0; }
.management-list-card .empty-state { margin: 18px 20px 20px; min-height: 150px; }
.management-page .empty-state[hidden] { display: none !important; }

.entity-table-head {
  display: grid;
  align-items: center;
  gap: 14px;
  padding: 10px 18px;
  border-bottom: 1px solid #e8edf4;
  color: #8a96a6;
  background: #f8fafc;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.professional-table-head,
.professional-row { grid-template-columns: minmax(190px, 1.6fr) minmax(110px, .85fr) 78px minmax(210px, 1.2fr); }
.service-table-head,
.service-row { grid-template-columns: minmax(150px, 1.4fr) 72px 92px minmax(150px, 1.2fr) 68px minmax(120px, .9fr); }
.entity-row {
  display: grid;
  align-items: center;
  gap: 14px;
  min-height: 72px;
  padding: 14px 18px;
  border-bottom: 1px solid #edf1f5;
  background: #fff;
  transition: background 140ms ease;
}
.entity-row:last-child { border-bottom: 0; }
.entity-row:hover { background: #fbfdff; }
.table-cell { min-width: 0; }
.professional-identity { display: flex; align-items: center; gap: 11px; }
.professional-identity > div,
.service-name-cell > div { display: grid; gap: 3px; min-width: 0; }
.professional-identity strong,
.service-name-cell strong { color: var(--navy); font-size: 12px; line-height: 1.3; }
.professional-identity span:not(.entity-avatar),
.service-name-cell span:not(.mobile-label) { color: var(--muted); font-size: 9px; line-height: 1.4; overflow: hidden; text-overflow: ellipsis; }
.entity-photo,
.professional-identity .entity-avatar {
  width: 38px;
  height: 38px;
  min-width: 38px;
  border-radius: 11px;
}
.entity-photo { object-fit: cover; border: 1px solid #e2e8f0; background: #f1f5f9; }
.professional-contact strong,
.service-duration-cell strong,
.service-price-cell strong { color: #334155; font-size: 10px; font-weight: 800; }
.service-professionals-cell > span:not(.mobile-label) { display: block; color: #64748b; font-size: 9px; line-height: 1.45; }
.professional-actions,
.service-actions { margin: 0; }
.action-group { display: flex; flex-wrap: wrap; gap: 6px; }
.action-group .button.small { min-height: 30px; padding: 6px 8px; font-size: 9px; }
.mobile-label { display: none; color: #94a3b8; font-size: 8px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.status-pill { font-size: 8px; padding: 5px 7px; }

.settings-grid { display: grid; gap: 18px; }
.settings-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.setting-card { min-height: 100%; }
.compact-inline { grid-template-columns: minmax(160px, 1fr) minmax(110px, .65fr) auto; margin-bottom: 10px; }
.professional-settings-stack { gap: 18px; }
.professional-settings-stack .schedule-day { padding-left: 4px; padding-right: 4px; }
.blocks-grid > .workspace-card { min-width: 0; }
.blocks-grid .block-card { grid-template-columns: 1fr; gap: 8px; }
.blocks-grid .block-card > div:nth-child(2) { justify-content: flex-start; }
.blocks-grid .block-card .button { width: fit-content; }

.settings-page-grid { display: grid; gap: 18px; max-width: 1080px; margin: 0 auto; }
.professional-settings-card { max-width: none; margin: 0; }
.advanced-tools-card { padding: 0 !important; overflow: hidden; }
.advanced-tools-card > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 22px;
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.advanced-tools-card > summary::-webkit-details-marker { display: none; }
.advanced-tools-card > summary > span:first-child { display: grid; gap: 3px; }
.advanced-tools-card > summary strong { color: var(--navy); font-size: 13px; }
.advanced-tools-card > summary small { color: var(--muted); font-size: 10px; }
.summary-chevron { color: #728197; font-size: 18px; transition: transform 150ms ease; }
.advanced-tools-card[open] .summary-chevron { transform: rotate(180deg); }
.advanced-tools-content { padding: 20px 22px 22px; border-top: 1px solid #edf1f5; background: #fbfcfe; }
.advanced-tools-content .workspace-title { margin-bottom: 14px; }
.advanced-tools-content .workspace-title h2 { font-size: 16px; }
.diagnostic-form { margin-top: 4px; }
.advanced-tools-content .availability-results { grid-template-columns: repeat(5, minmax(0, 1fr)); }

@media (max-width: 1180px) {
  .service-table-head,
  .service-row { grid-template-columns: minmax(140px, 1.25fr) 68px 84px minmax(130px, 1fr) 64px minmax(112px, .85fr); gap: 10px; }
  .entity-row { padding-left: 14px; padding-right: 14px; }
  .advanced-tools-content .availability-results { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 980px) {
  .management-grid { grid-template-columns: 1fr; }
  .management-grid .form-workspace { position: static; }
  .settings-grid.two { grid-template-columns: 1fr; }
  .professional-table-head,
  .service-table-head { display: none; }
  .professional-list,
  .service-list { display: grid !important; gap: 10px !important; padding: 14px; background: #f8fafc; }
  .professional-row,
  .service-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 18px;
    padding: 16px;
    border: 1px solid #e3e9f1;
    border-radius: 14px;
    background: #fff;
  }
  .professional-identity,
  .service-name-cell { grid-column: 1 / -1; }
  .professional-actions,
  .service-actions { grid-column: 1 / -1; }
  .mobile-label { display: block; margin-bottom: 4px; }
  .professional-status .mobile-label,
  .service-status-cell .mobile-label { margin-bottom: 6px; }
  .advanced-tools-content .availability-results { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .management-page .clean-heading { padding-top: 2px; }
  .management-page .clean-heading h1 { font-size: 30px; }
  .form-row-name-status { grid-template-columns: 1fr; }
  .professional-row,
  .service-row { grid-template-columns: 1fr; }
  .professional-identity,
  .service-name-cell,
  .professional-actions,
  .service-actions { grid-column: auto; }
  .action-group { width: 100%; }
  .action-group .button.small { flex: 1 1 auto; justify-content: center; }
  .compact-inline { grid-template-columns: 1fr; }
  .advanced-tools-card > summary,
  .advanced-tools-content { padding-left: 16px; padding-right: 16px; }
  .advanced-tools-content .availability-results { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 430px) {
  .advanced-tools-content .availability-results { grid-template-columns: 1fr; }
}


/* ETAPA 4.2 — padrão visual definitivo do painel administrativo.
   Referência: estrutura SaaS comercial, mantendo identidade Venix e funções existentes. */
.app-layout-page {
  --sidebar-w: 238px;
  background: #f5f7fb;
}
.app-layout-page .app-shell { min-height: 100vh; }
.app-sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 50;
  width: var(--sidebar-w);
  display: flex;
  flex-direction: column;
  padding: 22px 14px 16px;
  color: #dce6f2;
  background: linear-gradient(180deg, #0a1728 0%, #0c1d32 52%, #0b1a2d 100%);
  border-right: 1px solid rgba(255,255,255,.055);
  box-shadow: 12px 0 36px rgba(9, 24, 43, .08);
}
.sidebar-brand {
  display: flex;
  align-items: center;
  gap: 11px;
  min-height: 52px;
  padding: 4px 8px 18px;
  margin-bottom: 10px;
  color: #fff;
  text-decoration: none;
}
.sidebar-brand-mark {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border-radius: 10px;
  color: #fff;
  background: linear-gradient(145deg, #2563eb, #1499a5);
  font-size: 17px;
  font-weight: 900;
  box-shadow: 0 8px 18px rgba(37,99,235,.22);
}
.sidebar-brand-copy { display: grid; line-height: 1; }
.sidebar-brand-copy strong { color: #fff; font-size: 17px; letter-spacing: .11em; }
.sidebar-brand-copy small { margin-top: 5px; color: #9fb2c7; font-size: 8px; letter-spacing: .26em; }
.sidebar-nav { display: grid; gap: 5px; }
.sidebar-nav a {
  display: flex;
  align-items: center;
  gap: 11px;
  min-height: 44px;
  padding: 10px 12px;
  border-radius: 10px;
  color: #bdcada;
  text-decoration: none;
  font-size: 12px;
  font-weight: 700;
  transition: color 140ms ease, background 140ms ease, transform 140ms ease;
}
.sidebar-nav a:hover { color: #fff; background: rgba(255,255,255,.055); }
.sidebar-nav a.active {
  color: #fff;
  background: linear-gradient(135deg, rgba(37,99,235,.95), rgba(28,97,198,.92));
  box-shadow: 0 8px 20px rgba(37,99,235,.21);
}
.nav-icon {
  width: 20px;
  display: inline-grid;
  place-items: center;
  color: inherit;
  font-size: 15px;
  line-height: 1;
}
.sidebar-spacer { flex: 1; min-height: 28px; }
.sidebar-account {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 13px;
  background: rgba(255,255,255,.045);
}
.sidebar-avatar {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border-radius: 50%;
  color: #fff;
  background: #173862;
  font-size: 13px;
  font-weight: 900;
}
.sidebar-account-copy { min-width: 0; display: grid; gap: 2px; }
.sidebar-account-copy strong,
.sidebar-account-copy small,
.sidebar-account-copy em { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-account-copy strong { color: #f8fbff; font-size: 10px; }
.sidebar-account-copy small { color: #afbed0; font-size: 9px; }
.sidebar-account-copy em { color: #7f96ae; font-size: 8px; font-style: normal; }
.app-page { min-height: 100vh; margin-left: var(--sidebar-w); }
.app-topbar {
  position: sticky;
  top: 0;
  z-index: 40;
  min-height: 66px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 0 28px;
  border-bottom: 1px solid #e6ebf2;
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(14px);
}
.topbar-context { display: flex; align-items: center; gap: 13px; min-width: 0; }
.topbar-menu-mark { display: none; color: #718096; font-size: 16px; }
.topbar-context > span:last-child { min-width: 0; display: grid; gap: 1px; }
.topbar-context strong { color: #17253a; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.topbar-context small { color: #8a97a8; font-size: 9px; }
.app-topbar .dashboard-user { gap: 12px; }
.app-topbar .dashboard-user > div { gap: 1px; }
.app-topbar .dashboard-user strong { font-size: 11px; }
.app-topbar .dashboard-user small { font-size: 9px; }
.topbar-logout {
  min-height: 34px !important;
  padding: 7px 12px !important;
  color: #41536b;
  border: 1px solid #dbe3ed;
  background: #fff;
  box-shadow: none;
}
.topbar-logout:hover { background: #f8fafc; box-shadow: none !important; transform: none !important; }
.app-main {
  width: auto;
  margin: 0;
  padding: 30px 32px 64px;
}
.app-main .clean-heading {
  margin: 0 0 22px;
  padding: 0;
}
.app-main .clean-heading h1 { margin-bottom: 5px; color: #132238; font-size: 27px; letter-spacing: -.03em; }
.app-main .clean-heading p { margin: 0; color: #7a889a; font-size: 11px; line-height: 1.55; }

/* Início: painel provisório com linguagem visual de dashboard, sem criar métricas novas. */
.panel-intro {
  display: block;
  margin-bottom: 20px;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.panel-intro .eyebrow { margin-bottom: 7px; font-size: 9px; letter-spacing: .14em; }
.panel-intro h1 { margin-bottom: 6px; font-size: 28px; }
.panel-intro p:not(.eyebrow) { margin: 0; max-width: 720px; color: #77869a; font-size: 11px; line-height: 1.55; }
.app-layout-page .dashboard-summary {
  gap: 12px;
  margin: 20px 0 16px;
}
.app-layout-page .summary-card {
  position: relative;
  min-height: 118px;
  gap: 7px;
  padding: 18px;
  overflow: hidden;
  border: 1px solid #e5eaf1;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 5px 18px rgba(15,31,58,.045);
}
.app-layout-page .summary-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: #2f6fe4;
}
.app-layout-page .summary-card:nth-child(2)::before { background: #1499a5; }
.app-layout-page .summary-card:nth-child(3)::before { background: #5b7dc5; }
.app-layout-page .summary-card:nth-child(4)::before { background: #2e8c78; }
.app-layout-page .summary-card.highlight { border-color: #e5eaf1; background: #fff; }
.app-layout-page .summary-card > span { font-size: 9px; }
.app-layout-page .summary-card strong { font-size: 18px; }
.app-layout-page .summary-card small { font-size: 9px; }
.app-layout-page .dashboard-grid { gap: 12px; margin-bottom: 30px; }
.app-layout-page .dashboard-info-card {
  grid-template-columns: 38px 1fr;
  gap: 12px;
  padding: 17px;
  border-color: #e5eaf1;
  border-radius: 14px;
  box-shadow: 0 5px 18px rgba(15,31,58,.045);
}
.app-layout-page .dashboard-card-icon { width: 38px; height: 38px; border-radius: 11px; font-size: 14px; }
.app-layout-page .dashboard-info-card strong { font-size: 13px; }
.app-layout-page .dashboard-info-card p { font-size: 10px; }
.app-layout-page .modules-section { padding-top: 0; }
.app-layout-page .section-heading.compact { margin-bottom: 14px; }
.app-layout-page .section-heading.compact h2 { font-size: 18px; }
.app-layout-page .module-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.app-layout-page .module-grid > a {
  min-height: 118px;
  padding: 17px;
  border: 1px solid #e5eaf1;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 5px 18px rgba(15,31,58,.04);
}
.app-layout-page .module-grid > a > span { font-size: 12px; }
.app-layout-page .module-grid > a > strong { font-size: 8px; }
.app-layout-page .module-grid > a > small { font-size: 9px; }

/* Gestão: mais próxima de tabela SaaS e menos aparência de protótipo. */
.app-layout-page .workspace-grid.management-grid { grid-template-columns: minmax(300px, 350px) minmax(0,1fr); gap: 18px; }
.app-layout-page .workspace-card {
  border: 1px solid #e4eaf1;
  border-radius: 14px;
  box-shadow: 0 5px 18px rgba(15,31,58,.045);
}
.app-layout-page .compact-form-card { padding: 19px; }
.app-layout-page .workspace-title { margin-bottom: 14px; }
.app-layout-page .workspace-title h2 { margin-bottom: 4px; color: #17253a; font-size: 15px; letter-spacing: -.02em; }
.app-layout-page .workspace-title p { font-size: 10px; }
.app-layout-page .field label { color: #516174; font-size: 10px; }
.app-layout-page .form-control {
  min-height: 42px;
  border-color: #dce4ee;
  border-radius: 10px;
  background: #fff;
  font-size: 11px;
}
.app-layout-page .form-textarea { min-height: 76px; }
.app-layout-page .button.primary { min-height: 40px; padding: 9px 14px; border-radius: 9px; box-shadow: 0 7px 16px rgba(37,99,235,.15); font-size: 10px; }
.app-layout-page .button.ghost,
.app-layout-page .ghost-button { min-height: 36px; border-radius: 9px; font-size: 10px; }
.app-layout-page .management-list-card .list-title { padding: 17px 18px 13px; }
.app-layout-page .entity-table-head {
  padding: 9px 16px;
  color: #8c98a8;
  background: #fafbfd;
  font-size: 8px;
}
.app-layout-page .entity-row { min-height: 66px; padding: 12px 16px; gap: 12px; }
.app-layout-page .professional-table-head,
.app-layout-page .professional-row { grid-template-columns: minmax(180px,1.55fr) minmax(105px,.75fr) 70px minmax(190px,1.15fr); }
.app-layout-page .service-table-head,
.app-layout-page .service-row { grid-template-columns: minmax(150px,1.35fr) 65px 85px minmax(145px,1.15fr) 62px minmax(110px,.8fr); }
.app-layout-page .professional-identity strong,
.app-layout-page .service-name-cell strong { font-size: 11px; }
.app-layout-page .professional-identity span:not(.entity-avatar),
.app-layout-page .service-name-cell span:not(.mobile-label),
.app-layout-page .service-professionals-cell > span:not(.mobile-label) { font-size: 8px; }
.app-layout-page .professional-contact strong,
.app-layout-page .service-duration-cell strong,
.app-layout-page .service-price-cell strong { font-size: 9px; }
.app-layout-page .entity-photo,
.app-layout-page .professional-identity .entity-avatar { width: 34px; height: 34px; min-width: 34px; border-radius: 10px; }
.app-layout-page .status-pill { padding: 4px 6px; font-size: 7px; }
.app-layout-page .action-group .button.small { min-height: 27px; padding: 5px 7px; border-radius: 7px; font-size: 8px; }

/* Horários: seções mais claras, com aparência de configuração administrativa. */
.app-layout-page .professional-settings-stack { gap: 14px; }
.app-layout-page .settings-grid { gap: 14px; }
.app-layout-page .settings-grid.two { gap: 14px; }
.app-layout-page .setting-card { padding: 18px; }
.app-layout-page .inline-form { gap: 8px; margin-bottom: 12px; }
.app-layout-page .inline-form.four { grid-template-columns:minmax(170px,1fr) 120px 120px auto; }
.app-layout-page .schedule-day { min-height: 42px; padding: 7px 4px; font-size: 10px; }
.app-layout-page .setting-note { padding: 9px 11px; font-size: 9px; }
.app-layout-page .blocks-grid .workspace-card { padding: 18px; }
.app-layout-page .weekday-chip span { min-width: 42px; min-height: 32px; border-radius: 8px; font-size: 9px; }

/* Configurações: dados primeiro; ferramentas técnicas ficam claramente secundárias. */
.app-layout-page .settings-page-grid { max-width: 1120px; gap: 14px; margin: 0; }
.app-layout-page .professional-settings-card { padding: 20px; }
.app-layout-page .advanced-tools-card { border-style: dashed; background: #fbfcfe; box-shadow: none; }
.app-layout-page .advanced-tools-card > summary { padding: 15px 18px; }
.app-layout-page .advanced-tools-card > summary strong { font-size: 11px; }
.app-layout-page .advanced-tools-card > summary small { font-size: 9px; }
.app-layout-page .advanced-tools-content { padding: 18px; }

@media (min-width: 1500px) {
  .app-main { padding-left: 40px; padding-right: 40px; }
  .app-layout-page .workspace-grid.management-grid { grid-template-columns: 360px minmax(0,1fr); }
}
@media (max-width: 1180px) {
  .app-layout-page { --sidebar-w: 214px; }
  .app-main { padding-left: 24px; padding-right: 24px; }
  .app-layout-page .module-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .app-layout-page .workspace-grid.management-grid { grid-template-columns: 1fr; }
  .app-layout-page .workspace-grid .form-workspace { position: static; }
}
@media (max-width: 900px) {
  .app-layout-page { --sidebar-w: 0px; }
  .app-sidebar {
    position: sticky;
    top: 0;
    width: 100%;
    height: auto;
    padding: 10px 12px 8px;
    display: block;
    border-right: 0;
    border-bottom: 1px solid rgba(255,255,255,.08);
  }
  .sidebar-brand { min-height: 40px; margin: 0; padding: 0 5px 8px; }
  .sidebar-brand-mark { width: 30px; height: 30px; flex-basis: 30px; border-radius: 9px; font-size: 15px; }
  .sidebar-brand-copy strong { font-size: 14px; }
  .sidebar-brand-copy small { font-size: 7px; }
  .sidebar-nav { display: flex; gap: 5px; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
  .sidebar-nav::-webkit-scrollbar { display: none; }
  .sidebar-nav a { min-height: 36px; flex: 0 0 auto; padding: 8px 10px; border-radius: 8px; font-size: 10px; }
  .nav-icon { width: 16px; font-size: 12px; }
  .sidebar-spacer,
  .sidebar-account { display: none; }
  .app-page { margin-left: 0; }
  .app-topbar { top: 94px; min-height: 56px; padding: 0 18px; }
  .topbar-context small { display: none; }
  .app-main { padding: 24px 18px 52px; }
  .app-layout-page .dashboard-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 640px) {
  .app-topbar { top: 94px; padding: 0 12px; }
  .topbar-menu-mark { display: none; }
  .app-topbar .dashboard-user > div { display: none; }
  .app-main { padding: 22px 12px 48px; }
  .app-main .clean-heading h1 { font-size: 24px; }
  .app-layout-page .dashboard-summary,
  .app-layout-page .dashboard-grid,
  .app-layout-page .module-grid { grid-template-columns: 1fr; }
  .app-layout-page .summary-card { min-height: 104px; }
  .app-layout-page .professional-list,
  .app-layout-page .service-list { padding: 10px; }
  .app-layout-page .professional-row,
  .app-layout-page .service-row { padding: 14px; border-radius: 11px; }
  .app-layout-page .settings-grid.two { grid-template-columns: 1fr; }
  .app-layout-page .inline-form.four { grid-template-columns: 1fr; }
}

/* =========================================================
   VENIX AGENDA — ETAPA 4.3: PLANOS E ASSINATURA
   Visual inspirado na referência aprovada, sem ativar cobrança.
   ========================================================= */
.sidebar-plan-summary {
  display: grid;
  gap: 7px;
  margin: 0 2px 12px;
  padding: 14px;
  color: #eaf2ff;
  text-decoration: none;
  border: 1px solid rgba(94,147,255,.22);
  border-radius: 13px;
  background: linear-gradient(150deg, rgba(33,78,151,.32), rgba(12,34,65,.88));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.03);
}
.sidebar-plan-summary:hover { border-color: rgba(94,147,255,.42); background: linear-gradient(150deg, rgba(38,88,171,.4), rgba(12,34,65,.92)); }
.sidebar-plan-kicker { color: #8eb8ff; font-size: 8px; font-style: normal; text-transform: uppercase; letter-spacing: .08em; }
.sidebar-plan-summary > strong { color: #fff; font-size: 13px; line-height: 1.15; }
.sidebar-plan-summary > small { color: #9fcfb6; font-size: 8px; line-height: 1.35; }
.sidebar-plan-summary > em { color: #aebdd0; font-size: 8px; font-style: normal; }
.sidebar-plan-summary > b { display:flex; align-items:center; justify-content:space-between; margin-top:3px; padding-top:8px; color:#fff; border-top:1px solid rgba(255,255,255,.08); font-size:9px; font-weight:700; }
.sidebar-plan-progress { display:block; height:4px; overflow:hidden; border-radius:999px; background:rgba(255,255,255,.12); }
.sidebar-plan-progress[hidden] { display:none !important; }
.sidebar-plan-progress i { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,#27c799,#3f7cff); transition:width .25s ease; }
.summary-inline-link { margin-top:auto; color:#2b67d9; font-size:8px; font-weight:800; text-decoration:none; }
.summary-inline-link:hover { text-decoration:underline; }
.plan-summary-card { padding-bottom:14px !important; }

.plans-main { max-width: 1420px; }
.plans-heading { display:flex !important; align-items:flex-start; justify-content:space-between; gap:20px; }
.secure-indicator { display:grid; grid-template-columns:28px auto; column-gap:8px; align-items:center; padding:8px 10px; color:#16834f; }
.secure-indicator > span { grid-row:1 / span 2; display:grid; place-items:center; width:28px; height:28px; border-radius:9px; background:#eaf9f1; font-weight:900; }
.secure-indicator strong { font-size:9px; }
.secure-indicator small { color:#7c8a9c; font-size:7px; }
.current-plan-banner { display:flex; align-items:center; justify-content:space-between; gap:18px; margin:0 0 24px; padding:18px 20px; border:1px solid #dfe7f2; border-radius:14px; background:linear-gradient(120deg,#f7faff,#fff); box-shadow:0 6px 20px rgba(15,31,58,.045); }
.current-plan-banner > div { display:grid; gap:4px; }
.current-plan-banner strong { color:#12213a; font-size:18px; }
.current-plan-banner p { margin:0; color:#718096; font-size:10px; }
.plans-section { margin-top: 4px; }
.plans-section .section-heading p:not(.eyebrow) { margin:6px 0 0; color:#8190a3; font-size:10px; }
.plans-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; align-items:stretch; }
.plan-card { position:relative; display:flex; flex-direction:column; min-height:390px; padding:24px; overflow:hidden; border:1px solid #e0e7f0; border-radius:16px; background:#fff; box-shadow:0 8px 24px rgba(15,31,58,.055); }
.plan-card.featured { border-color:#7aa5ff; box-shadow:0 12px 30px rgba(37,99,235,.12); transform:translateY(-3px); }
.plan-card.current { border-color:#37b978; box-shadow:0 12px 30px rgba(23,145,88,.10); }
.plan-current-badge { position:absolute; top:14px; right:14px; padding:5px 8px; border-radius:999px; color:#167147; background:#eaf9f1; font-size:7px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.plan-icon { display:grid; place-items:center; width:38px; height:38px; margin-bottom:17px; color:#2d68e5; border-radius:11px; background:#eef4ff; font-size:18px; }
.plan-card:nth-child(2) .plan-icon { color:#8b6be8; background:#f2efff; }
.plan-card:nth-child(3) .plan-icon { color:#7a55d8; background:#f2efff; }
.plan-card h3 { margin:0 0 12px; color:#15243a; font-size:19px; }
.plan-price { display:flex; align-items:baseline; gap:5px; margin:0 0 20px; }
.plan-price strong { color:#111f36; font-size:26px; letter-spacing:-.035em; }
.plan-price span { color:#7b8899; font-size:9px; }
.plan-points { display:grid; gap:11px; margin:0 0 24px; padding:0; list-style:none; color:#4f6074; font-size:10px; }
.plan-points li { position:relative; padding-left:21px; line-height:1.45; }
.plan-points li::before { content:'✓'; position:absolute; left:0; top:0; color:#24a66a; font-weight:900; }
.plan-select { width:100%; margin-top:auto; }
.plan-select:disabled { opacity:.7; cursor:default; }
.plans-note { display:grid; grid-template-columns:34px 1fr; gap:12px; margin-top:22px; padding:16px 18px; border:1px solid #dfe7f2; border-radius:13px; background:#f8faff; }
.plans-note > span { display:grid; place-items:center; width:34px; height:34px; border-radius:10px; color:#2d68e5; background:#eaf1ff; font-weight:900; }
.plans-note strong { color:#1b2a40; font-size:11px; }
.plans-note p { margin:4px 0 0; color:#758399; font-size:9px; line-height:1.5; }

@media (max-width: 1180px) {
  .plans-grid { grid-template-columns: 1fr; }
  .plan-card { min-height: 0; }
  .plan-card.featured { transform:none; }
}
@media (max-width: 900px) {
  .sidebar-plan-summary { display:none; }
  .plans-heading { display:block !important; }
  .secure-indicator { margin-top:10px; padding-left:0; }
}
@media (max-width: 640px) {
  .current-plan-banner { align-items:stretch; flex-direction:column; }
  .current-plan-banner .button { width:100%; }
  .plan-card { padding:20px; }
}


/* Etapa 8.3.2 — checkout Mercado Pago */
.plans-commercial-heading { display:flex !important; align-items:flex-end; justify-content:space-between; gap:18px; }
.billing-toggle { display:inline-flex; flex:0 0 auto; padding:4px; border:1px solid #dce5f1; border-radius:12px; background:#f7f9fc; }
.billing-toggle button { min-height:36px; padding:7px 13px; border:0; border-radius:9px; color:#66768b; background:transparent; font:inherit; font-size:9px; font-weight:850; cursor:pointer; }
.billing-toggle button span { display:block; margin-top:1px; color:#28a26a; font-size:7px; font-weight:850; }
.billing-toggle button.active { color:#fff; background:#255fd0; box-shadow:0 5px 12px rgba(37,95,208,.18); }
.billing-toggle button.active span { color:#dff6e9; }
.plan-popular-badge { position:absolute; top:14px; right:14px; padding:5px 8px; border-radius:999px; color:#3159b6; background:#edf3ff; font-size:7px; font-weight:900; text-transform:uppercase; letter-spacing:.04em; }
.plan-equivalent { display:block; margin:-13px 0 17px; color:#718096; font-size:8px; }
.plan-select[disabled] { pointer-events:none; }
@media (max-width:760px) { .plans-commercial-heading { align-items:stretch; flex-direction:column; } .billing-toggle { width:100%; } .billing-toggle button { flex:1; } }

/* ==========================================================
   ETAPA 4.4 — Home premium
   Apenas apresentação e leitura de dados já existentes.
   ========================================================== */
.home-premium-page .premium-topbar { min-height: 72px; }
.home-premium-page .topbar-user-avatar {
  width: 34px; height: 34px; display: inline-grid; place-items: center; flex: 0 0 34px;
  border-radius: 50%; color: #fff; background: linear-gradient(145deg,#2158c8,#0b2b68);
  font-size: 12px; font-weight: 900; box-shadow: 0 8px 18px rgba(19,58,124,.15);
}
.home-premium-page .premium-home-main { padding-top: 28px; }
.premium-home-intro { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:22px; }
.premium-home-intro h1 { margin:0 0 6px; color:#0b1e3b; font-size:30px; letter-spacing:-.035em; }
.premium-home-intro p { margin:0; color:#718096; font-size:12px; }

.home-premium-page .premium-summary-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:18px; }
.home-premium-page .premium-metric-card {
  min-height: 132px; padding:20px; display:flex; align-items:flex-start; gap:14px;
  border:1px solid #e4eaf2; border-radius:18px; box-shadow:0 12px 28px rgba(24,47,82,.06); background:#fff;
}
.home-premium-page .premium-metric-card::before { display:none; }
.home-premium-page .premium-metric-card > div { min-width:0; display:grid; gap:5px; }
.home-premium-page .premium-metric-card > div > span { color:#67768c; font-size:10px; font-weight:800; }
.home-premium-page .premium-metric-card strong { color:#0b1e3b; font-size:18px; line-height:1.15; }
.home-premium-page .premium-metric-card small { color:#7e8b9e; font-size:9px; line-height:1.45; }
.metric-icon { width:42px; height:42px; display:grid; place-items:center; flex:0 0 42px; border-radius:12px; font-size:18px; font-weight:900; }
.metric-plan .metric-icon { color:#2665e8; background:#eaf1ff; }
.metric-days .metric-icon { color:#14955d; background:#e9f8f0; }
.metric-date .metric-icon { color:#5e49d8; background:#efedff; }
.metric-business .metric-icon { color:#dd7a00; background:#fff2df; }

.premium-feature-grid { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(340px,.88fr); gap:16px; margin-bottom:24px; }
.booking-public-card {
  min-height:260px; display:grid; grid-template-columns:minmax(0,1fr) 210px; overflow:hidden;
  border-radius:22px; color:#fff; background:
    radial-gradient(circle at 88% 12%,rgba(46,127,255,.32),transparent 30%),
    linear-gradient(135deg,#071d40 0%,#0a2b61 62%,#0c3779 100%);
  box-shadow:0 20px 45px rgba(4,30,71,.18);
}
.booking-public-copy { padding:24px 0 22px 24px; min-width:0; }
.booking-public-heading { display:flex; gap:12px; align-items:flex-start; margin-bottom:18px; }
.booking-public-icon { width:42px; height:42px; display:grid; place-items:center; flex:0 0 42px; border-radius:12px; background:linear-gradient(145deg,#2e78ef,#1553bd); font-size:18px; font-weight:900; }
.booking-public-heading h2 { margin:0 0 6px; color:#fff; font-size:17px; letter-spacing:-.02em; }
.booking-public-heading p { margin:0; max-width:410px; color:#d6e3f5; font-size:10px; line-height:1.55; }
.booking-link-box { display:flex; align-items:center; gap:9px; max-width:520px; padding:7px 8px 7px 12px; border-radius:13px; background:#fff; box-shadow:0 8px 20px rgba(0,0,0,.12); }
.booking-link-globe { color:#2c67df; font-size:15px; }
.booking-link-box strong { min-width:0; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#1451c4; font-size:11px; }
.booking-copy-button { padding:9px 12px; border:0; border-radius:9px; color:#1554c8; background:#eef4ff; font-size:9px; font-weight:900; cursor:pointer; }
.booking-copy-button:hover { background:#e3edff; }
.booking-copy-button:disabled { opacity:.55; cursor:not-allowed; }
.booking-open-button { margin-top:14px; padding:10px 13px; border:1px solid rgba(255,255,255,.35); border-radius:10px; color:#fff; background:rgba(255,255,255,.07); font-size:9px; font-weight:900; }
.booking-open-button:disabled { opacity:.7; cursor:not-allowed; }
.booking-stage-note { display:block; margin-top:9px; color:#b9cae2; font-size:8px; }
.booking-device-preview { position:relative; min-height:260px; }
.preview-laptop { position:absolute; right:22px; bottom:34px; width:150px; height:98px; border:6px solid #11213a; border-bottom-width:9px; border-radius:8px; background:#eff4fb; transform:perspective(500px) rotateY(-7deg); box-shadow:0 18px 25px rgba(0,0,0,.25); }
.preview-laptop::after { content:""; position:absolute; left:-13px; right:-13px; bottom:-15px; height:7px; border-radius:0 0 12px 12px; background:#8da0b7; }
.preview-laptop i { display:block; height:13px; background:#1e63d9; }
.preview-laptop span { display:grid; gap:7px; padding:10px; }
.preview-laptop b { color:#24364d; font-size:7px; }
.preview-laptop em { height:7px; border-radius:4px; background:#d7e0ec; }
.preview-laptop u { width:54%; height:10px; border-radius:4px; background:#2a68df; text-decoration:none; }
.preview-phone { position:absolute; right:3px; bottom:24px; width:62px; height:120px; padding:5px; border-radius:13px; background:#152337; box-shadow:0 15px 22px rgba(0,0,0,.26); }
.preview-phone i { display:block; height:10px; border-radius:6px 6px 0 0; background:#1e63d9; }
.preview-phone span { height:101px; display:grid; align-content:start; gap:7px; padding:8px 6px; border-radius:0 0 8px 8px; background:#f7f9fc; }
.preview-phone b { color:#22334b; font-size:6px; }
.preview-phone em { height:7px; border-radius:3px; background:#dbe3ee; }
.preview-phone u { height:11px; border-radius:4px; background:#2a68df; text-decoration:none; }

.setup-ready-card { min-height:260px; padding:26px; border:1px solid #dce8e2; border-radius:22px; background:linear-gradient(135deg,#fff 0%,#f4fbf7 100%); box-shadow:0 12px 28px rgba(24,47,82,.05); }
.setup-ready-heading { display:flex; align-items:flex-start; gap:14px; padding-bottom:18px; border-bottom:1px solid #e2ece6; }
.setup-ready-icon { width:44px; height:44px; display:grid; place-items:center; flex:0 0 44px; border-radius:50%; color:#fff; background:#13a665; font-size:20px; font-weight:900; box-shadow:0 8px 18px rgba(19,166,101,.18); }
.setup-ready-heading h2 { margin:0 0 6px; color:#11223d; font-size:17px; }
.setup-ready-heading p { margin:0; color:#6e7c8f; font-size:10px; line-height:1.55; }
.setup-checklist { list-style:none; margin:17px 0 0; padding:0; display:grid; gap:11px; }
.setup-checklist li { display:flex; align-items:center; gap:9px; color:#44546a; font-size:10px; }
.setup-checklist li > span { width:18px; height:18px; display:grid; place-items:center; border-radius:50%; color:#7f8da1; background:#eef2f6; font-size:9px; font-weight:900; }
.setup-checklist li.done > span { color:#fff; background:#18a968; }
.setup-checklist li.pending > span { color:#d07a00; background:#fff2d8; }
.setup-checklist li small { margin-left:auto; color:#98a4b4; font-size:8px; font-weight:700; }

.quick-actions-section { margin-bottom:22px; }
.quick-actions-section .section-heading { margin-bottom:12px; }
.quick-actions-section .section-heading h2 { margin:0 0 4px; color:#13243e; font-size:17px; }
.quick-actions-section .section-heading p { margin:0; color:#8290a3; font-size:9px; }
.quick-actions-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.quick-action-card { min-height:90px; padding:16px; display:flex; align-items:center; gap:12px; border:1px solid #e2e8f0; border-radius:16px; color:inherit; background:#fff; text-decoration:none; box-shadow:0 10px 24px rgba(24,47,82,.05); transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease; }
.quick-action-card:hover { transform:translateY(-2px); border-color:#cbdaf4; box-shadow:0 14px 30px rgba(24,47,82,.08); }
.quick-action-icon { width:42px; height:42px; display:grid; place-items:center; flex:0 0 42px; border-radius:12px; color:#2665e8; background:#eef4ff; font-size:18px; }
.quick-action-card > span:nth-child(2) { min-width:0; display:grid; gap:4px; }
.quick-action-card strong { color:#172942; font-size:11px; }
.quick-action-card small { color:#7d8b9d; font-size:8px; line-height:1.35; }
.quick-action-card b { margin-left:auto; color:#6e7f96; font-size:20px; }

.premium-plan-banner { display:grid; grid-template-columns:auto minmax(0,1fr) auto auto; align-items:center; gap:14px; padding:18px 20px; border:1px solid #cfddf6; border-radius:18px; background:linear-gradient(90deg,#f6f9ff,#fbfdff); }
.premium-plan-banner-icon { width:46px; height:46px; display:grid; place-items:center; border-radius:50%; color:#fff; background:linear-gradient(145deg,#2262df,#1247aa); font-size:19px; box-shadow:0 8px 18px rgba(34,98,223,.16); }
.premium-plan-banner h2 { margin:0 0 5px; color:#10233f; font-size:15px; }
.premium-plan-banner p { margin:0; color:#718096; font-size:9px; }
.premium-plan-banner .button { min-width:120px; justify-content:center; padding:10px 14px; font-size:9px; }

@media (max-width: 1180px) {
  .home-premium-page .premium-summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .premium-feature-grid { grid-template-columns:1fr; }
  .quick-actions-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .premium-plan-banner { grid-template-columns:auto minmax(0,1fr) auto; }
  .premium-plan-banner .button.secondary { grid-column:3; }
}
@media (max-width: 760px) {
  .home-premium-page .premium-home-main { padding-top:20px; }
  .premium-home-intro h1 { font-size:24px; }
  .home-premium-page .premium-summary-grid { grid-template-columns:1fr; }
  .home-premium-page .premium-metric-card { min-height:auto; }
  .booking-public-card { grid-template-columns:1fr; }
  .booking-public-copy { padding:22px; }
  .booking-device-preview { display:none; }
  .quick-actions-grid { grid-template-columns:1fr; }
  .premium-plan-banner { grid-template-columns:auto 1fr; }
  .premium-plan-banner .button { grid-column:1/-1; width:100%; }
  .home-premium-page .dashboard-user > div { display:none; }
}

/* =========================================================
   ETAPA 5 — PÁGINA PÚBLICA DE AGENDAMENTO
   Escopo isolado para não alterar as telas administrativas.
   ========================================================= */
.public-booking-page {
  margin: 0;
  min-height: 100vh;
  background: #f4f7fb;
  color: #0b1e39;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.public-booking-page * { box-sizing: border-box; }
.public-booking-page button, .public-booking-page input { font: inherit; }
.public-booking-page button { cursor: pointer; }
.public-booking-page button:disabled { cursor: not-allowed; }

.public-booking-app { min-height: 100vh; }
.public-booking-hero {
  position: relative;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 82% 30%, rgba(32, 100, 216, .28), transparent 28%),
    radial-gradient(circle at 65% 90%, rgba(20, 184, 166, .12), transparent 24%),
    linear-gradient(122deg, #061426 0%, #071a34 54%, #092447 100%);
}
.public-booking-hero::before,
.public-booking-hero::after {
  content: "";
  position: absolute;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.06);
  pointer-events: none;
}
.public-booking-hero::before { width: 460px; height: 460px; right: 8%; top: -280px; }
.public-booking-hero::after { width: 300px; height: 300px; right: 24%; bottom: -220px; }
.public-booking-hero-inner { width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 24px 0 112px; position: relative; z-index: 1; }
.public-booking-brand-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.public-venix-brand { display: inline-flex; align-items: center; gap: 11px; color: #fff; text-decoration: none; }
.public-venix-brand > span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; font-size: 18px; font-weight: 900; background: linear-gradient(145deg,#2d73ee,#0fa7d9); box-shadow: 0 8px 24px rgba(23,101,220,.28); }
.public-venix-brand strong { font-size: 19px; line-height: 1; letter-spacing: .12em; }
.public-venix-brand small { display: block; margin-top: 5px; font-size: 9px; letter-spacing: .28em; color: #b8c7da; }
.public-secure-note { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; color: #cdd8e7; }
.public-company-hero { margin-top: 54px; display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 48px; }
.public-company-copy { display: flex; align-items: center; gap: 18px; }
.public-company-logo-wrap { flex: 0 0 auto; width: 72px; height: 72px; border-radius: 20px; overflow: hidden; background: #fff; padding: 4px; box-shadow: 0 12px 30px rgba(0,0,0,.2); }
.public-company-logo-wrap img { width: 100%; height: 100%; object-fit: contain; border-radius: 16px; background:#fff; }
.public-eyebrow { margin: 0 0 10px; color: #7fb1ff; font-size: 11px; font-weight: 900; letter-spacing: .16em; }
.public-company-copy h1 { margin: 0; max-width: 700px; color: #fff; font-size: clamp(30px, 4vw, 48px); line-height: 1.08; letter-spacing: -.035em; }
.public-company-copy > div > p:last-child { margin: 14px 0 0; max-width: 680px; color: #c5d2e1; font-size: 15px; line-height: 1.7; }
.public-hero-benefits { display: flex; gap: 22px; }
.public-hero-benefits > span { min-width: 142px; display: grid; grid-template-columns: 30px 1fr; column-gap: 9px; align-items: center; }
.public-hero-benefits i { grid-row: 1 / 3; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.09); font-style: normal; color: #9bc2ff; }
.public-hero-benefits b { font-size: 11px; color: #fff; }
.public-hero-benefits small { margin-top: 2px; font-size: 9px; color: #9fb0c5; }

.public-booking-main { position: relative; z-index: 2; width: min(1180px, calc(100% - 40px)); margin: -72px auto 0; padding-bottom: 40px; }
.public-booking-card { overflow: hidden; background: #fff; border: 1px solid #e1e8f2; border-radius: 22px; box-shadow: 0 24px 70px rgba(11,30,57,.12); }
.booking-stepper { list-style: none; margin: 0; padding: 0 30px; min-height: 74px; display: grid; grid-template-columns: repeat(5, 1fr); align-items: center; border-bottom: 1px solid #e7edf5; background: #fff; }
.booking-stepper li { position: relative; display: flex; align-items: center; gap: 9px; color: #7d8ba0; font-size: 12px; }
.booking-stepper li:not(:last-child)::after { content: ""; position: absolute; height: 1px; background: #dce4ef; left: 82px; right: 14px; top: 50%; }
.booking-stepper span { position: relative; z-index: 1; display: grid; place-items: center; width: 27px; height: 27px; border-radius: 50%; border: 1px solid #cfd8e5; background: #fff; font-weight: 800; }
.booking-stepper b { position: relative; z-index: 1; background: #fff; padding-right: 8px; white-space: nowrap; }
.booking-stepper li.active, .booking-stepper li.done { color: #173c83; }
.booking-stepper li.active span { color: #fff; border-color: #5532c8; background: #5532c8; box-shadow: 0 6px 16px rgba(85,50,200,.24); }
.booking-stepper li.done span { color: #fff; border-color: #1d67df; background: #1d67df; }
.booking-stepper li.done::after { background: #a8c7fa; }

.public-booking-message { margin: 18px 26px 0; padding: 12px 14px; border-radius: 11px; font-size: 13px; line-height: 1.5; background: #eef5ff; border: 1px solid #d7e7ff; color: #174a91; }
.public-booking-message.error { color: #a11b2b; background: #fff1f3; border-color: #ffd2d8; }
.public-booking-message.warning { color: #8b5a03; background: #fff8e6; border-color: #f7df9a; }

.booking-workspace { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 28px; padding: 30px; }
.booking-flow-column { min-width: 0; }
.booking-step-panel { animation: bookingFade .22s ease; }
@keyframes bookingFade { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }
.booking-step-heading { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 22px; }
.booking-step-heading > span { flex: 0 0 auto; display: grid; place-items: center; width: 27px; height: 27px; border-radius: 50%; color: #fff; background: #5532c8; font-size: 12px; font-weight: 900; }
.booking-step-heading h2 { margin: 1px 0 4px; font-size: 19px; letter-spacing: -.02em; }
.booking-step-heading p { margin: 0; color: #748299; font-size: 12px; }
.booking-choice-grid { display: grid; gap: 14px; }
.service-choice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.professional-choice-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.booking-choice-card { position: relative; min-height: 116px; padding: 18px; border: 1px solid #dfe6ef; border-radius: 15px; background: #fff; color: #0b1e39; text-align: left; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.booking-choice-card:hover { transform: translateY(-1px); border-color: #b6c9e7; box-shadow: 0 10px 24px rgba(11,30,57,.07); }
.booking-choice-card.selected { border-color: #694be2; box-shadow: 0 0 0 2px rgba(105,75,226,.08); background: #fbfaff; }
.booking-choice-icon { display: grid; place-items: center; width: 43px; height: 43px; margin-bottom: 13px; border-radius: 13px; background: #eef3ff; color: #5b45cf; font-size: 20px; }
.booking-choice-copy { display: flex; flex-direction: column; min-width: 0; }
.booking-choice-copy strong { font-size: 14px; }
.booking-choice-copy small { margin-top: 5px; color: #77859a; font-size: 11px; line-height: 1.4; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.booking-choice-copy em { margin-top: 9px; color: #4932b6; font-style: normal; font-size: 14px; font-weight: 850; }
.booking-choice-check { display: none; place-items: center; position: absolute; top: 12px; right: 12px; width: 22px; height: 22px; border-radius: 50%; background: #5532c8; color: #fff; font-size: 11px; font-weight: 900; }
.booking-choice-card.selected .booking-choice-check { display: grid; }
.professional-choice { min-height: 150px; text-align: center; }
.professional-choice .booking-choice-copy { align-items: center; }
.booking-professional-avatar { display: grid; place-items: center; width: 64px; height: 64px; margin: 0 auto 12px; overflow: hidden; border-radius: 50%; background: linear-gradient(145deg,#dfeaff,#eef4ff); color: #234f9a; font-weight: 900; font-size: 18px; }
.booking-professional-avatar img { width: 100%; height: 100%; object-fit: cover; }

.booking-date-time-grid { display: grid; grid-template-columns: 300px minmax(0,1fr); gap: 18px; }
.booking-calendar-card, .booking-slots-card { border: 1px solid #e0e7f0; border-radius: 16px; padding: 16px; background: #fff; }
.booking-calendar-header { display: grid; grid-template-columns: 32px 1fr 32px; align-items: center; gap: 8px; margin-bottom: 14px; }
.booking-calendar-header strong { text-align: center; font-size: 13px; }
.booking-calendar-header button { width: 32px; height: 32px; border: 0; border-radius: 9px; background: #f2f5f9; color: #24405f; font-size: 20px; }
.booking-calendar-header button:disabled { opacity: .3; }
.booking-calendar-weekdays, .booking-calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.booking-calendar-weekdays { margin-bottom: 5px; }
.booking-calendar-weekdays span { text-align: center; color: #8c98aa; font-size: 9px; font-weight: 800; }
.booking-calendar-grid button { aspect-ratio: 1; min-width: 0; border: 0; border-radius: 50%; background: transparent; color: #263a55; font-size: 11px; }
.booking-calendar-grid button:hover:not(:disabled) { background: #eff4fb; }
.booking-calendar-grid button.today { box-shadow: inset 0 0 0 1px #9ebcf0; }
.booking-calendar-grid button.selected { color: #fff; background: #5532c8 !important; box-shadow: 0 5px 12px rgba(85,50,200,.25); }
.booking-calendar-grid button:disabled { opacity: .2; }
.calendar-blank { aspect-ratio: 1; }
.booking-slots-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 15px; }
.booking-slots-heading strong { font-size: 13px; }
.booking-slots-heading small { color: #7d899b; font-size: 10px; text-align: right; }
.booking-slots-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.booking-slot-button { padding: 11px 6px; border: 1px solid #dbe4ef; border-radius: 10px; background: #fff; color: #26446d; font-size: 12px; font-weight: 800; }
.booking-slot-button:hover, .booking-slot-button.selected { color: #4c34b9; border-color: #684ee0; background: #f8f6ff; }
.booking-timezone-note { display: block; margin-top: 15px; color: #8b98aa; font-size: 9px; }
.booking-empty-state { padding: 32px 18px; border: 1px dashed #d8e1ec; border-radius: 14px; text-align: center; background: #fafcff; }
.booking-empty-state strong { display: block; font-size: 13px; }
.booking-empty-state span { display: block; max-width: 460px; margin: 7px auto 0; color: #7b899c; font-size: 11px; line-height: 1.55; }
.booking-empty-state.compact { padding: 23px 14px; }

.booking-customer-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.booking-customer-form label { display: flex; flex-direction: column; gap: 7px; color: #41546e; font-size: 11px; font-weight: 700; }
.booking-customer-form label:nth-child(3) { grid-column: 1 / -1; }
.booking-customer-form label b { color: #d04755; }
.booking-customer-form label em { color: #8a97a9; font-weight: 500; font-style: normal; }
.booking-customer-form input { width: 100%; height: 45px; padding: 0 13px; border: 1px solid #dbe3ed; border-radius: 11px; background: #fff; color: #0b1e39; outline: none; }
.booking-customer-form input:focus { border-color: #658ee0; box-shadow: 0 0 0 3px rgba(50,104,220,.08); }
.booking-form-security { grid-column: 1 / -1; display: flex; align-items: center; gap: 8px; padding: 11px 12px; border-radius: 10px; background: #f7f9fc; color: #748299; font-size: 10px; }
.booking-nav-actions { margin-top: 22px; display: flex; justify-content: flex-start; }
.booking-nav-actions.split { grid-column: 1 / -1; justify-content: space-between; gap: 12px; }
.booking-primary-button, .booking-secondary-button { min-height: 43px; padding: 0 18px; border-radius: 11px; font-weight: 800; font-size: 12px; }
.booking-primary-button { border: 1px solid #5532c8; background: linear-gradient(135deg,#6250d8,#4a2db5); color: #fff; box-shadow: 0 8px 18px rgba(85,50,200,.18); }
.booking-primary-button:hover:not(:disabled) { filter: brightness(1.04); }
.booking-secondary-button { border: 1px solid #d7e0eb; background: #fff; color: #3b526f; }
.booking-primary-button:disabled { opacity: .65; }

.booking-summary-column { min-width: 0; }
.booking-summary-card { position: sticky; top: 20px; padding: 20px; border: 1px solid #e0e6ef; border-radius: 16px; background: #fbfcfe; box-shadow: 0 10px 28px rgba(11,30,57,.05); }
.booking-summary-kicker { color: #5b45cf; font-size: 9px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.booking-summary-card h3 { margin: 7px 0 16px; font-size: 19px; }
.booking-summary-card dl { margin: 0; }
.booking-summary-card dl > div { padding: 11px 0; border-top: 1px solid #e6ebf2; }
.booking-summary-card dt { color: #8793a4; font-size: 9px; }
.booking-summary-card dd { margin: 4px 0 0; color: #263a55; font-size: 12px; font-weight: 750; line-height: 1.45; }
.booking-summary-price { display: flex; justify-content: space-between; align-items: center; padding-top: 15px; border-top: 1px solid #dbe3ed; }
.booking-summary-price span { color: #6e7d91; font-size: 11px; }
.booking-summary-price strong { color: #4c34b9; font-size: 18px; }
.booking-summary-tip { margin-top: 16px; display: flex; align-items: center; gap: 8px; padding: 11px; border-radius: 10px; background: #f0edff; color: #655b84; }
.booking-summary-tip small { font-size: 9px; line-height: 1.45; }

.booking-final-review { border: 1px solid #e0e6ef; border-radius: 15px; overflow: hidden; }
.booking-final-review > div { display: flex; justify-content: space-between; gap: 20px; padding: 13px 16px; border-bottom: 1px solid #e9edf3; }
.booking-final-review > div:last-child { border-bottom: 0; }
.booking-final-review span { color: #7a8799; font-size: 11px; }
.booking-final-review strong { text-align: right; font-size: 12px; }
.booking-final-review .review-total { background: #f7f5ff; }
.booking-final-review .review-total strong { color: #4c34b9; font-size: 17px; }

.booking-success-panel { max-width: 650px; margin: 18px auto; padding: 30px; text-align: center; border: 1px solid #dce9e2; border-radius: 18px; background: linear-gradient(180deg,#fbfffd,#f6fbf8); }
.booking-success-icon { display: grid; place-items: center; width: 56px; height: 56px; margin: 0 auto 16px; border-radius: 50%; background: #20ad74; color: #fff; font-size: 26px; font-weight: 900; box-shadow: 0 10px 22px rgba(32,173,116,.2); }
.booking-success-panel .public-eyebrow { color: #16935f; }
.booking-success-panel h2 { margin: 0; font-size: 24px; }
.booking-success-panel > p:not(.public-eyebrow) { margin: 8px 0 20px; color: #728096; font-size: 12px; }
.booking-success-summary { margin-bottom: 20px; overflow: hidden; border: 1px solid #dfebe5; border-radius: 13px; background: #fff; text-align: left; }
.booking-success-summary > div { display: flex; justify-content: space-between; gap: 20px; padding: 11px 13px; border-bottom: 1px solid #edf2ef; }
.booking-success-summary > div:last-child { border-bottom: 0; }
.booking-success-summary span { color: #819088; font-size: 10px; }
.booking-success-summary strong { text-align: right; font-size: 11px; }

.booking-success-company {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin: 4px 0 20px;
  padding: 13px 16px;
  border: 1px solid #e3e8ef;
  border-radius: 14px;
  background: #fff;
}
.booking-success-company-logo {
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  overflow: hidden;
  border: 1px solid #e5eaf0;
  border-radius: 13px;
  background: #fff;
}
.booking-success-company-logo img { width: 100%; height: 100%; display: block; object-fit: contain; }
.booking-success-company-copy { display: grid; gap: 3px; text-align: left; }
.booking-success-company-copy span { color: #8a96a6; font-size: 9px; font-weight: 750; text-transform: uppercase; letter-spacing: .06em; }
.booking-success-company-copy strong { color: #243a58; font-size: 14px; line-height: 1.35; }
.booking-success-section-title { margin: 0 0 8px; color: #44546a; font-size: 10px; font-weight: 900; text-align: left; text-transform: uppercase; letter-spacing: .07em; }
.booking-success-contact { margin: 2px 0 18px; }
.booking-success-contact-list { overflow: hidden; border: 1px solid #dfe7ef; border-radius: 13px; background: #fff; text-align: left; }
.booking-success-contact-list > div { display: flex; align-items: flex-start; gap: 11px; padding: 12px 13px; border-bottom: 1px solid #edf1f5; }
.booking-success-contact-list > div:last-child { border-bottom: 0; }
.booking-success-contact-icon { display: grid; place-items: center; width: 30px; height: 30px; flex: 0 0 30px; border: 1px solid #dce6f1; border-radius: 9px; background: #f7faff; color: #315d96; }
.booking-success-contact-icon svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.booking-success-contact-icon-whatsapp { background: #f4fbf7; border-color: #d9eee2; color: #168b57; }
.booking-success-contact-list .booking-success-contact-copy { display: grid; gap: 3px; min-width: 0; flex: 1; }
.booking-success-contact-list small { color: #8a96a6; font-size: 9px; font-weight: 750; }
.booking-success-contact-list strong { color: #2d405c; font-size: 11px; line-height: 1.45; overflow-wrap: anywhere; }
.booking-success-contact-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 7px; }
.booking-contact-action { display: inline-flex; align-items: center; gap: 6px; width: fit-content; min-height: 30px; padding: 6px 9px; border: 1px solid #d8e3ef; border-radius: 9px; background: #f9fbfd; color: #315d96; font-size: 10px; font-weight: 800; line-height: 1; text-decoration: none; transition: transform .15s ease, border-color .15s ease, background .15s ease; }
.booking-contact-action:hover { transform: translateY(-1px); border-color: #adc6df; background: #f3f8fd; }
.booking-contact-action:focus-visible { outline: 2px solid #7aa6d3; outline-offset: 2px; }
.booking-contact-action-whatsapp { border-color: #d3eadc; background: #f5fbf7; color: #168b57; }
.booking-contact-action-whatsapp:hover { border-color: #add7bd; background: #edf8f1; }
.booking-contact-action-icon { display: inline-grid; place-items: center; width: 14px; height: 14px; }
.booking-contact-action-icon svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.booking-success-code { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 20px; padding: 12px 14px; border: 1px dashed #c9d7e7; border-radius: 12px; background: #f8fbff; text-align: left; }
.booking-success-code span { color: #7b899a; font-size: 9px; font-weight: 750; }
.booking-success-code strong { color: #293f5e; font-size: 13px; letter-spacing: .04em; }

.public-booking-footer { width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 12px 0 32px; display: flex; justify-content: space-between; align-items: center; gap: 20px; color: #7c899c; }
.public-booking-footer > div { display: flex; align-items: center; gap: 14px; }
.public-booking-footer strong { color: #243a58; font-size: 12px; letter-spacing: .1em; }
.public-booking-footer strong small { display: block; margin-top: 2px; font-size: 7px; letter-spacing: .2em; }
.public-booking-footer span, .public-booking-footer > small { font-size: 9px; }

@media (max-width: 980px) {
  .public-company-hero { grid-template-columns: 1fr; gap: 28px; }
  .public-hero-benefits { justify-content: flex-start; flex-wrap: wrap; }
  .booking-workspace { grid-template-columns: 1fr 280px; gap: 18px; padding: 22px; }
  .booking-date-time-grid { grid-template-columns: 260px 1fr; }
  .booking-stepper b { display: none; }
  .booking-stepper li:not(:last-child)::after { left: 34px; right: 8px; }
}

@media (max-width: 760px) {
  .public-booking-hero-inner, .public-booking-main, .public-booking-footer { width: min(100% - 24px, 1180px); }
  .public-booking-hero-inner { padding-top: 16px; padding-bottom: 90px; }
  .public-secure-note { display: none; }
  .public-company-hero { margin-top: 34px; }
  .public-company-copy { align-items: flex-start; }
  .public-company-logo-wrap { width: 56px; height: 56px; border-radius: 16px; }
  .public-company-copy h1 { font-size: 30px; }
  .public-company-copy > div > p:last-child { font-size: 13px; }
  .public-hero-benefits { gap: 12px; }
  .public-hero-benefits > span { min-width: calc(50% - 6px); }
  .public-booking-main { margin-top: -52px; }
  .public-booking-card { border-radius: 17px; }
  .booking-stepper { min-height: 58px; padding: 0 14px; }
  .booking-stepper li { justify-content: center; }
  .booking-stepper span { width: 25px; height: 25px; font-size: 10px; }
  .booking-stepper li:not(:last-child)::after { left: calc(50% + 17px); right: calc(-50% + 17px); }
  .booking-workspace { display: block; padding: 20px 16px; }
  .booking-summary-column { margin-top: 24px; }
  .booking-summary-card { position: static; }
  .service-choice-grid { grid-template-columns: 1fr; }
  .professional-choice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .booking-choice-card { min-height: 102px; }
  .booking-date-time-grid { grid-template-columns: 1fr; }
  .booking-calendar-card { max-width: 360px; width: 100%; margin: 0 auto; }
  .booking-customer-form { grid-template-columns: 1fr; }
  .booking-customer-form label:nth-child(3), .booking-form-security, .booking-nav-actions.split { grid-column: 1; }
  .booking-nav-actions.split { align-items: stretch; }
  .booking-nav-actions.split button { flex: 1; }
  .public-booking-footer > div span { display: none; }
}

@media (max-width: 430px) {
  .public-hero-benefits { display: grid; grid-template-columns: 1fr; }
  .public-hero-benefits > span { min-width: 0; }
  .professional-choice-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .professional-choice { min-height: 135px; padding: 13px 8px; }
  .booking-professional-avatar { width: 54px; height: 54px; }
  .booking-slots-grid { grid-template-columns: repeat(3, 1fr); }
  .booking-final-review > div, .booking-success-summary > div { align-items: flex-start; }
  .booking-nav-actions.split { flex-direction: column-reverse; }
  .booking-nav-actions.split button { width: 100%; }
  .booking-success-panel { padding: 24px 16px; }
  .booking-success-company { justify-content: flex-start; }
  .booking-success-code { align-items: flex-start; flex-direction: column; gap: 5px; }
}

/* =========================================================
   ETAPA 5.1 — agenda individual + logo otimizada
   ========================================================= */
.sidebar-avatar img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  border-radius: inherit;
  background: #fff;
}

.topbar-company-logo {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  object-fit: contain;
  border-radius: 10px;
  padding: 2px;
  border: 1px solid #e2e8f0;
  background: #fff;
}

.company-agenda-default-card .settings-grid {
  margin-top: 2px;
}

.setting-card-inline {
  display: grid;
  gap: 12px;
  padding: 15px;
  border: 1px solid #e6ebf2;
  border-radius: 14px;
  background: #f9fbfd;
}

.setting-card-inline > div {
  display: grid;
  gap: 4px;
}

.setting-card-inline > div > strong {
  color: #17253a;
  font-size: 12px;
}

.setting-card-inline > div > span {
  color: #7b8798;
  font-size: 10px;
  line-height: 1.5;
}

.company-default-summary {
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: 10px;
  background: #eef5ff;
  color: #315f9e;
  font-size: 10px;
  font-weight: 700;
}

.professional-agenda-config-card {
  overflow: hidden;
}

.professional-config-empty {
  display: grid;
  gap: 4px;
  padding: 16px;
  border: 1px dashed #d8e0ea;
  border-radius: 13px;
  background: #fbfcfe;
}

.professional-config-empty strong {
  color: #334155;
  font-size: 11px;
}

.professional-config-empty span {
  color: #8a97a8;
  font-size: 10px;
}

.inherit-setting-toggle {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  padding: 13px 14px;
  margin-bottom: 15px;
  border: 1px solid #dbe7f7;
  border-radius: 13px;
  background: #f5f9ff;
  cursor: pointer;
}

.inherit-setting-toggle input {
  width: 17px;
  height: 17px;
  margin-top: 1px;
  accent-color: #315f9e;
}

.inherit-setting-toggle span {
  display: grid;
  gap: 3px;
}

.inherit-setting-toggle strong {
  color: #1f3553;
  font-size: 11px;
}

.inherit-setting-toggle small {
  color: #708199;
  font-size: 9px;
  line-height: 1.45;
}

.professional-config-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.professional-custom-minutes {
  margin-top: 7px;
}

.professional-effective-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 14px;
  padding: 11px 13px;
  border: 1px solid #e6ebf2;
  border-radius: 12px;
  background: #fbfcfe;
}

.professional-effective-summary strong {
  color: #334155;
  font-size: 10px;
}

.professional-effective-summary span {
  color: #718096;
  font-size: 9px;
  text-align: right;
}

.logo-settings-field {
  margin-top: 2px;
}

.logo-upload-panel {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 15px;
  border: 1px solid #e1e7ef;
  border-radius: 14px;
  background: #fbfcfe;
}

.logo-upload-preview {
  width: 76px;
  height: 76px;
  flex: 0 0 76px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid #dce4ee;
  border-radius: 18px;
  background: #edf3fa;
  color: #315f9e;
  font-size: 25px;
  font-weight: 900;
}

.logo-upload-preview img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  background: #fff;
}

.logo-upload-copy {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.logo-upload-copy > strong {
  color: #17253a;
  font-size: 12px;
}

.logo-upload-copy > span,
.logo-upload-copy > small {
  color: #7b8798;
  font-size: 9px;
  line-height: 1.5;
}

.logo-upload-copy > small {
  color: #52677f;
  font-weight: 700;
}

.logo-upload-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 4px;
}

@media (max-width: 700px) {
  .professional-config-grid {
    grid-template-columns: 1fr;
  }

  .professional-effective-summary {
    align-items: flex-start;
    flex-direction: column;
  }

  .professional-effective-summary span {
    text-align: left;
  }

  .logo-upload-panel {
    align-items: flex-start;
  }

  .logo-upload-preview {
    width: 64px;
    height: 64px;
    flex-basis: 64px;
    border-radius: 15px;
  }
}

/* Etapa 5.1 — organização recolhível da tela Horários */
.schedule-collapsible-card {
  padding: 0 !important;
  overflow: hidden;
}

.schedule-collapsible-card > summary {
  list-style: none;
}

.schedule-collapsible-card > summary::-webkit-details-marker {
  display: none;
}

.schedule-collapsible-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 74px;
  padding: 18px 20px;
  cursor: pointer;
  user-select: none;
  transition: background .18s ease;
}

.schedule-collapsible-header:hover {
  background: #fbfcfe;
}

.schedule-collapsible-header:focus-visible {
  outline: 3px solid rgba(49, 95, 158, .18);
  outline-offset: -3px;
}

.schedule-collapsible-heading {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.app-layout-page .schedule-collapsible-heading h2 {
  margin: 0;
  color: #17253a;
  font-size: 15px;
  letter-spacing: -.02em;
}

.schedule-collapsible-heading p {
  margin: 0;
  color: #7b8798;
  font-size: 10px;
  line-height: 1.5;
}

.schedule-collapsible-status {
  width: fit-content;
  max-width: 100%;
  margin-top: 3px;
  padding: 5px 8px;
  border: 1px solid #dfe8f4;
  border-radius: 999px;
  background: #f5f8fc;
  color: #49617f;
  font-size: 9px;
  font-weight: 800;
  line-height: 1.25;
}

.schedule-collapsible-chevron {
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  display: grid;
  place-items: center;
  border: 1px solid #dfe6ef;
  border-radius: 10px;
  background: #fff;
  color: #52677f;
  font-size: 17px;
  line-height: 1;
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}

.schedule-collapsible-card[open] > .schedule-collapsible-header .schedule-collapsible-chevron {
  transform: rotate(180deg);
  border-color: #cddcf0;
  background: #f5f9ff;
}

.schedule-collapsible-card[open] > .schedule-collapsible-header {
  border-bottom: 1px solid #edf1f5;
}

.schedule-collapsible-content {
  padding: 18px 20px 20px;
  animation: venixScheduleReveal .16s ease-out;
}

.collapsible-blocks-grid {
  align-items: start;
}

@keyframes venixScheduleReveal {
  from { opacity: 0; transform: translateY(-3px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 700px) {
  .schedule-collapsible-header {
    align-items: flex-start;
    min-height: 0;
    padding: 15px 16px;
  }

  .schedule-collapsible-heading p {
    font-size: 9px;
  }

  .schedule-collapsible-status {
    white-space: normal;
  }

  .schedule-collapsible-content {
    padding: 15px 16px 17px;
  }

  .schedule-collapsible-chevron {
    width: 28px;
    height: 28px;
    flex-basis: 28px;
  }
}

/* Etapa 5.1 — upload leve da foto do profissional */
.professional-photo-field { margin-top: 2px; }
.professional-photo-upload-panel {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px;
  border: 1px solid #e4eaf2;
  border-radius: 14px;
  background: #fbfcfe;
}
.professional-photo-preview {
  width: 68px;
  height: 68px;
  flex: 0 0 68px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid #dbe4ef;
  border-radius: 18px;
  background: #eef4ff;
  color: #1d4ed8;
  font-size: 20px;
  font-weight: 900;
}
.professional-photo-preview img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  background: #fff;
}
.professional-photo-upload-copy {
  min-width: 0;
  display: grid;
  gap: 5px;
}
.professional-photo-upload-copy > strong {
  color: #17253a;
  font-size: 12px;
}
.professional-photo-upload-copy > span,
.professional-photo-upload-copy > small {
  color: #7b8798;
  font-size: 9px;
  line-height: 1.5;
}
.professional-photo-upload-copy > small {
  color: #52677f;
  font-weight: 700;
}
.professional-photo-upload-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 4px;
}
@media (max-width: 680px) {
  .professional-photo-upload-panel { align-items: flex-start; }
  .professional-photo-preview {
    width: 60px;
    height: 60px;
    flex-basis: 60px;
    border-radius: 16px;
  }
}

/* =========================================================
   AJUSTE VISUAL — SERVIÇOS / COLUNA AÇÕES
   Mantém o Status original do formulário e apenas redistribui
   a tabela para que Editar + Ativar/Desativar caibam no card.
   ========================================================= */
@media (min-width: 981px) {
  .app-layout-page .service-table-head,
  .app-layout-page .service-row {
    grid-template-columns:
      minmax(85px, 1.35fr)
      minmax(46px, .52fr)
      minmax(58px, .66fr)
      minmax(80px, 1.05fr)
      minmax(48px, .52fr)
      minmax(116px, .92fr);
    gap: 8px;
  }

  .app-layout-page .service-actions {
    min-width: 0;
  }

  .app-layout-page .service-actions .action-group {
    flex-wrap: nowrap;
    gap: 6px;
  }

  .app-layout-page .service-actions .button.small {
    flex: 0 0 auto;
    white-space: nowrap;
  }
}

/* =========================================================
   ETAPA 6 — AGENDA INTERNA
   ========================================================= */
.agenda-main { padding-bottom: 56px; }
.agenda-heading { align-items: flex-end; }
.agenda-heading .agenda-kicker { display:block; margin-bottom:7px; color:var(--blue); font-size:9px; font-weight:900; letter-spacing:.12em; }
.agenda-new-button { gap:8px; min-height:42px; padding:10px 15px; border-radius:11px; font-size:11px; }
.agenda-new-button span { font-size:17px; line-height:1; }

.agenda-toolbar { display:grid; grid-template-columns:auto minmax(360px,1fr) 210px; align-items:end; gap:16px; margin-bottom:14px; padding:14px 16px !important; }
.agenda-view-tabs { display:flex; align-items:center; gap:4px; padding:4px; border:1px solid #dde6f1; border-radius:11px; background:#f7f9fc; }
.agenda-view-tab { min-width:66px; padding:8px 11px; border:0; border-radius:8px; color:#6b7b90; background:transparent; font-size:10px; font-weight:850; cursor:pointer; }
.agenda-view-tab.active { color:#fff; background:var(--blue); box-shadow:0 7px 16px rgba(37,99,235,.2); }
.agenda-date-navigation { display:flex; align-items:end; justify-content:center; gap:6px; }
.agenda-icon-button,.agenda-today-button { height:38px; border:1px solid #dce4ef; border-radius:9px; color:#32445f; background:#fff; font-weight:850; cursor:pointer; }
.agenda-icon-button { width:38px; font-size:19px; }
.agenda-today-button { padding:0 12px; font-size:10px; }
.agenda-date-picker,.agenda-professional-filter,.agenda-list-filters label { display:grid; gap:5px; color:#77859a; font-size:8px; font-weight:850; text-transform:uppercase; letter-spacing:.04em; }
.agenda-date-picker { width:145px; margin-left:4px; }
.agenda-professional-filter { min-width:0; }
.agenda-toolbar .form-control,.agenda-list-filters .form-control { min-height:38px; padding:8px 10px; border-radius:9px; font-size:10px; }

.agenda-summary-strip { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:14px; }
.agenda-summary-strip article { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:58px; padding:13px 15px; border:1px solid var(--border); border-radius:14px; background:#fff; box-shadow:0 6px 20px rgba(15,31,58,.045); }
.agenda-summary-strip span { color:#7a889b; font-size:9px; font-weight:800; }
.agenda-summary-strip strong { color:#1c3150; font-size:20px; letter-spacing:-.04em; }
.agenda-summary-strip article:nth-child(2) strong { color:#a36a18; }
.agenda-summary-strip article:nth-child(3) strong { color:#2563eb; }
.agenda-summary-strip article:nth-child(4) strong { color:#188653; }

.agenda-content { min-height:480px; padding:0 !important; overflow:hidden; }
.agenda-content-head { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 20px; border-bottom:1px solid #e8edf4; }
.agenda-content-head h2 { margin:2px 0 0; font-size:17px; text-transform:capitalize; }
.agenda-content-eyebrow { color:#2563eb; font-size:8px; font-weight:950; letter-spacing:.1em; }
.agenda-content-note { color:#8a97a9; font-size:9px; }
.agenda-loading { display:grid; place-items:center; gap:10px; padding:80px 20px; color:#7f8da0; font-size:10px; }
.agenda-loading span { width:26px; height:26px; border:3px solid #e7edf5; border-top-color:#2563eb; border-radius:50%; animation:agenda-spin .7s linear infinite; }
@keyframes agenda-spin { to { transform:rotate(360deg); } }
.agenda-empty { margin:40px; }

/* Dia — grade profissional */
.agenda-day-desktop { overflow:auto; padding:0 0 14px; }
.agenda-day-grid { display:grid; grid-template-columns:68px repeat(var(--agenda-prof-count), minmax(170px,1fr)); grid-template-rows:64px repeat(var(--agenda-row-count), 42px); position:relative; min-width:max-content; }
.agenda-day-corner { position:sticky; left:0; top:0; z-index:6; grid-column:1; grid-row:1; border-right:1px solid #e6edf5; border-bottom:1px solid #e6edf5; background:#f9fbfd; }
.agenda-day-professional { position:sticky; top:0; z-index:5; display:flex; align-items:center; gap:8px; padding:10px 12px; border-right:1px solid #e6edf5; border-bottom:1px solid #e6edf5; background:#fff; }
.agenda-day-professional strong { display:block; color:#233752; font-size:10px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.agenda-day-professional small { display:block; margin-top:2px; color:#8a97a7; font-size:8px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.agenda-prof-avatar { display:grid; place-items:center; width:30px; height:30px; flex:0 0 30px; overflow:hidden; border-radius:9px; color:#2563eb; background:#eef5ff; font-size:10px; font-weight:900; }
.agenda-prof-avatar img { width:100%; height:100%; object-fit:cover; }
.agenda-time-label { position:sticky; left:0; z-index:4; display:flex; align-items:flex-start; justify-content:center; padding-top:8px; border-right:1px solid #e6edf5; border-bottom:1px solid #eef2f7; color:#8b98aa; background:#fbfcfe; font-size:8px; font-weight:800; }
.agenda-time-cell { border-right:1px solid #edf1f6; border-bottom:1px solid #edf1f6; background:#fff; }
.agenda-time-cell:nth-child(even) { background:#fdfefe; }
.agenda-grid-appointment { z-index:3; min-width:0; margin:3px 4px; padding:6px 8px; overflow:hidden; border:1px solid #cfe0fb; border-left:3px solid #2563eb; border-radius:8px; color:#18345c; background:#eef5ff; text-align:left; box-shadow:0 4px 10px rgba(34,80,140,.08); cursor:pointer; }
.agenda-grid-appointment > span { display:block; margin-bottom:2px; color:#52709a; font-size:7px; font-weight:900; }
.agenda-grid-appointment strong { display:block; font-size:9px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.agenda-grid-appointment small { display:block; margin-top:2px; color:#647892; font-size:7px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.agenda-grid-appointment.status-pending { border-color:#f2d49d; border-left-color:#d7952d; background:#fff8e9; color:#704a0f; }
.agenda-grid-appointment.status-completed { border-color:#cce8d8; border-left-color:#1a9a61; background:#f0fbf5; color:#155d3f; }
.agenda-grid-appointment.status-no-show { border-color:#f1d0d0; border-left-color:#cf5d5d; background:#fff4f4; color:#7c3030; }
.agenda-day-mobile { display:none; padding:12px; }

/* Cards reutilizados em semana e mobile */
.agenda-appointment-card { display:grid; grid-template-columns:auto 1fr auto; gap:2px 8px; width:100%; padding:9px 10px; border:1px solid #dae5f2; border-left:3px solid #2563eb; border-radius:9px; color:#203855; background:#fff; text-align:left; cursor:pointer; }
.agenda-appointment-card + .agenda-appointment-card { margin-top:6px; }
.agenda-appointment-card .agenda-appointment-time { grid-row:1 / span 2; align-self:start; min-width:38px; color:#2f5e9e; font-size:9px; font-weight:950; }
.agenda-appointment-card strong { min-width:0; font-size:9px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.agenda-appointment-card small { min-width:0; color:#7c8999; font-size:7px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.agenda-appointment-card .agenda-status-chip { grid-column:3; grid-row:1 / span 2; align-self:center; }
.agenda-appointment-card.status-pending { border-left-color:#d7952d; background:#fffdf8; }
.agenda-appointment-card.status-completed { border-left-color:#1a9a61; background:#fbfffc; }
.agenda-appointment-card.status-no-show { border-left-color:#cf5d5d; background:#fffafa; }

/* Semana */
.agenda-week-grid { display:grid; grid-template-columns:repeat(7,minmax(155px,1fr)); min-width:1100px; }
#agenda-view-container:has(.agenda-week-grid) { overflow-x:auto; }
.agenda-week-day { min-height:390px; border-right:1px solid #e7edf4; background:#fff; }
.agenda-week-day:last-child { border-right:0; }
.agenda-week-day > header { display:grid; grid-template-columns:1fr auto; gap:2px 8px; min-height:72px; padding:12px; border-bottom:1px solid #e7edf4; background:#fbfcfe; }
.agenda-week-day > header span { color:#7c8a9d; font-size:8px; font-weight:900; text-transform:uppercase; }
.agenda-week-day > header strong { grid-row:1 / span 2; grid-column:2; color:#203653; font-size:22px; }
.agenda-week-day > header small { color:#97a3b3; font-size:7px; }
.agenda-week-day.today > header { background:#eef5ff; }
.agenda-week-day.today > header strong,.agenda-week-day.today > header span { color:#2563eb; }
.agenda-week-list { padding:9px; }
.agenda-week-empty { padding:16px 6px; color:#a0abb9; font-size:8px; text-align:center; }

/* Lista */
.agenda-list-filters { display:grid; grid-template-columns:140px 140px 170px minmax(220px,1fr); gap:10px; padding:14px 16px; border-bottom:1px solid #e8edf4; background:#fbfcfe; }
.agenda-list-table-wrap { overflow:auto; }
.agenda-list-table { display:grid; grid-template-columns:130px minmax(170px,1.1fr) minmax(150px,1fr) minmax(150px,1fr) 120px 28px; gap:12px; align-items:center; min-width:840px; padding:11px 16px; }
.agenda-list-header { color:#8592a4; background:#f7f9fc; font-size:7px; font-weight:950; text-transform:uppercase; letter-spacing:.05em; }
.agenda-list-row { width:100%; border:0; border-top:1px solid #edf1f5; color:#253a56; background:#fff; text-align:left; cursor:pointer; }
.agenda-list-row:hover { background:#fbfdff; }
.agenda-list-row span { min-width:0; }
.agenda-list-row strong { display:block; font-size:9px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.agenda-list-row small { display:block; margin-top:2px; color:#8a97a8; font-size:7px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.agenda-row-arrow { color:#9aa7b8; font-size:18px; }

/* Status */
.agenda-status-chip { display:inline-flex; align-items:center; justify-content:center; width:max-content; padding:4px 7px; border-radius:999px; color:#9a6717; background:#fff3d9; font-size:7px; font-weight:950; text-transform:uppercase; letter-spacing:.035em; }
.agenda-status-chip.confirmed { color:#1f5fb8; background:#e9f2ff; }
.agenda-status-chip.completed { color:#17754a; background:#eaf9f1; }
.agenda-status-chip.cancelled { color:#747f8e; background:#edf0f4; }
.agenda-status-chip.no-show { color:#a23d3d; background:#fdecec; }
.agenda-status-chip.mini { padding:3px 5px; font-size:6px; }

/* Dialogs */
.agenda-dialog { width:min(680px,calc(100vw - 28px)); max-height:calc(100vh - 32px); padding:0; overflow:auto; border:0; border-radius:18px; background:#fff; box-shadow:0 30px 90px rgba(7,24,49,.28); }
.agenda-dialog::backdrop { background:rgba(8,22,42,.52); backdrop-filter:blur(3px); }
.agenda-dialog-shell { margin:0; padding:0; border:0; }
.agenda-dialog-header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:20px 22px 16px; border-bottom:1px solid #e9eef4; background:linear-gradient(180deg,#fff,#fbfcfe); }
.agenda-dialog-header h2 { margin:3px 0 0; font-size:18px; }
.agenda-dialog-header p { margin:5px 0 0; color:#7d8a9c; font-size:9px; }
.agenda-dialog-kicker { color:#2563eb; font-size:7px; font-weight:950; letter-spacing:.09em; }
.agenda-dialog-close { display:grid; place-items:center; width:32px; height:32px; flex:0 0 32px; border:1px solid #e0e7ef; border-radius:9px; color:#68778b; background:#fff; font-size:18px; cursor:pointer; }
.agenda-dialog-body { padding:20px 22px 22px; }
.agenda-detail-status-row { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
.agenda-detail-status-row > span:last-child { color:#9aa5b4; font-size:8px; font-weight:800; letter-spacing:.04em; }
.agenda-detail-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.agenda-detail-section { display:grid; gap:4px; min-height:82px; padding:13px 14px; border:1px solid #e3e9f1; border-radius:12px; background:#fbfcfe; }
.agenda-detail-section > span { color:#8794a6; font-size:7px; font-weight:900; text-transform:uppercase; letter-spacing:.05em; }
.agenda-detail-section strong { color:#263b57; font-size:11px; }
.agenda-detail-section small { color:#7f8da0; font-size:8px; }
.agenda-detail-contact-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.agenda-contact-button { display:inline-flex; align-items:center; min-height:34px; padding:8px 11px; border:1px solid #dae4ef; border-radius:9px; color:#34506f; background:#fff; font-size:8px; font-weight:850; text-decoration:none; }
.agenda-contact-button.whatsapp { color:#16774b; border-color:#cfe9db; background:#f2fbf6; }
.agenda-detail-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; padding-top:16px; border-top:1px solid #e9eef4; }
.agenda-detail-actions .button { min-height:38px; padding:8px 12px; border-radius:9px; font-size:9px; }
.agenda-action-success { color:#17754a !important; border-color:#cde8d9 !important; background:#f3fbf6 !important; }
.agenda-action-warning { color:#9a6717 !important; border-color:#efdcae !important; background:#fffaf0 !important; }
.agenda-action-danger { color:#a13e3e !important; border-color:#efd2d2 !important; background:#fff7f7 !important; }
.agenda-final-status-note { color:#8290a1; font-size:9px; }

/* Formulário de novo agendamento / reagendamento */
.agenda-form-dialog { width:min(760px,calc(100vw - 28px)); }
.agenda-form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.agenda-client-box { margin-top:16px; padding:15px; border:1px solid #e2e9f1; border-radius:14px; background:#fbfcfe; }
.agenda-client-box-head { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:12px; }
.agenda-client-box-head strong { display:block; color:#263b57; font-size:11px; }
.agenda-client-box-head span { display:block; margin-top:3px; color:#8491a2; font-size:8px; }
.agenda-client-mode { display:flex; gap:3px; padding:3px; border:1px solid #dde5ee; border-radius:9px; background:#fff; }
.agenda-client-mode button { padding:7px 9px; border:0; border-radius:7px; color:#718095; background:transparent; font-size:8px; font-weight:850; cursor:pointer; }
.agenda-client-mode button.active { color:#fff; background:#2563eb; }
.agenda-client-results { display:grid; gap:5px; max-height:210px; margin-top:8px; overflow:auto; }
.agenda-client-option { display:grid; grid-template-columns:32px 1fr auto; align-items:center; gap:9px; width:100%; padding:8px 9px; border:1px solid #e1e7ef; border-radius:9px; color:#30445f; background:#fff; text-align:left; cursor:pointer; }
.agenda-client-option.selected { border-color:#8eb5f3; background:#f0f6ff; box-shadow:inset 0 0 0 1px #bdd4f8; }
.agenda-client-initial { display:grid; place-items:center; width:32px; height:32px; border-radius:9px; color:#2563eb; background:#eef5ff; font-size:9px; font-weight:950; }
.agenda-client-option strong { display:block; font-size:9px; }
.agenda-client-option small { display:block; margin-top:2px; color:#8895a6; font-size:7px; }
.agenda-client-option i { color:#6982a3; font-size:12px; font-style:normal; }
.agenda-client-no-result { padding:15px; color:#93a0af; font-size:8px; text-align:center; }
.agenda-new-client-fields { padding-top:3px; }
.agenda-form-footer { display:flex; justify-content:flex-end; gap:8px; margin-top:18px; }
.agenda-form-footer .button { min-height:40px; padding:9px 14px; border-radius:10px; font-size:9px; }

/* Configuração: confirmação de reservas online */
.online-confirmation-card { grid-column:1 / -1; }
.online-confirmation-options { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-top:14px; }
.online-confirmation-option { position:relative; display:block; cursor:pointer; }
.online-confirmation-option input { position:absolute; opacity:0; pointer-events:none; }
.online-confirmation-option span { display:grid; gap:4px; min-height:94px; padding:15px 16px; border:1px solid #dfe7f0; border-radius:13px; background:#fbfcfe; transition:.16s ease; }
.online-confirmation-option strong { color:#2a3f5c; font-size:10px; }
.online-confirmation-option small { color:#7f8c9e; font-size:8px; line-height:1.5; }
.online-confirmation-option em { margin-top:4px; color:#2563eb; font-size:8px; font-style:normal; font-weight:900; }
.online-confirmation-option input:checked + span { border-color:#8db4f0; background:#eef5ff; box-shadow:inset 0 0 0 1px #b7d0f6; }
.online-confirmation-save { display:flex; justify-content:flex-end; margin-top:12px; }
.online-confirmation-save .button { min-height:38px; padding:8px 12px; border-radius:9px; font-size:9px; }

@media (max-width:1100px) {
  .agenda-toolbar { grid-template-columns:1fr 1.5fr; }
  .agenda-professional-filter { grid-column:1 / -1; }
  .agenda-professional-filter .form-control { max-width:300px; }
  .agenda-summary-strip { grid-template-columns:repeat(2,1fr); }
}

@media (max-width:760px) {
  .agenda-heading { align-items:stretch; }
  .agenda-new-button { width:100%; }
  .agenda-toolbar { grid-template-columns:1fr; align-items:stretch; padding:12px !important; }
  .agenda-view-tabs { width:100%; }
  .agenda-view-tab { flex:1; }
  .agenda-date-navigation { justify-content:flex-start; flex-wrap:wrap; }
  .agenda-date-picker { flex:1; min-width:135px; }
  .agenda-professional-filter .form-control { max-width:none; }
  .agenda-summary-strip { grid-template-columns:repeat(2,1fr); gap:7px; }
  .agenda-summary-strip article { min-height:52px; padding:11px 12px; }
  .agenda-content-head { align-items:flex-start; flex-direction:column; gap:5px; padding:15px; }
  .agenda-day-desktop { display:none; }
  .agenda-day-mobile { display:block; }
  .agenda-week-grid { min-width:980px; }
  .agenda-list-filters { grid-template-columns:repeat(2,1fr); padding:12px; }
  .agenda-list-search { grid-column:1 / -1; }
  .agenda-dialog { width:calc(100vw - 18px); max-height:calc(100vh - 18px); border-radius:15px; }
  .agenda-dialog-header { padding:16px 16px 13px; }
  .agenda-dialog-body { padding:15px 16px 18px; }
  .agenda-detail-grid,.agenda-form-grid { grid-template-columns:1fr; }
  .agenda-client-box-head { align-items:flex-start; flex-direction:column; }
  .agenda-client-mode { width:100%; }
  .agenda-client-mode button { flex:1; }
  .agenda-form-footer { flex-direction:column-reverse; }
  .agenda-form-footer .button { width:100%; }
  .online-confirmation-options { grid-template-columns:1fr; }
}

/* Etapa 6 - correção visual: ocultar o carregamento após concluir a consulta */
.agenda-loading[hidden] { display: none !important; }

/* ETAPA 6.1 — identificação segura de clientes */
.agenda-client-copy { min-width: 0; }
.agenda-client-copy em,
.agenda-phone-match-option em {
  display: block;
  margin-top: 3px;
  color: var(--muted, #64748b);
  font-size: 0.76rem;
  font-style: normal;
  font-weight: 600;
}
.agenda-client-phone-matches {
  margin-top: 12px;
  padding: 14px;
  border: 1px solid #bfdbfe;
  border-radius: 14px;
  background: #eff6ff;
}
.agenda-client-phone-matches[hidden] { display: none !important; }
.agenda-phone-match-head {
  display: grid;
  gap: 3px;
  margin-bottom: 10px;
}
.agenda-phone-match-head strong { color: #1e3a8a; font-size: 0.92rem; }
.agenda-phone-match-head span { color: #475569; font-size: 0.8rem; line-height: 1.4; }
.agenda-phone-match-list { display: grid; gap: 8px; }
.agenda-phone-match-option {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 11px 12px;
  border: 1px solid #dbeafe;
  border-radius: 12px;
  background: #fff;
  color: #0f172a;
  text-align: left;
  cursor: pointer;
}
.agenda-phone-match-option span { min-width: 0; }
.agenda-phone-match-option strong,
.agenda-phone-match-option small { display: block; }
.agenda-phone-match-option small { margin-top: 2px; color: #64748b; }
.agenda-phone-match-option b { flex: 0 0 auto; color: #1d4ed8; font-size: 0.78rem; }
.agenda-phone-match-option:hover { border-color: #93c5fd; background: #f8fbff; }
@media (max-width: 640px) {
  .agenda-phone-match-option { align-items: flex-start; flex-direction: column; gap: 8px; }
}

/* ETAPA 6.2 — conforto tipográfico
   Ajuste leve de leitura nas telas administrativas.
   A Home premium permanece intocada, conforme aprovado. */
.app-layout-page:not(.home-premium-page) .sidebar-nav a { font-size: 13px; }
.app-layout-page:not(.home-premium-page) .sidebar-account-copy strong { font-size: 11px; }
.app-layout-page:not(.home-premium-page) .sidebar-account-copy small { font-size: 10px; }
.app-layout-page:not(.home-premium-page) .sidebar-account-copy em { font-size: 9px; }
.app-layout-page:not(.home-premium-page) .topbar-context strong { font-size: 13px; }
.app-layout-page:not(.home-premium-page) .topbar-context small { font-size: 10px; }
.app-layout-page:not(.home-premium-page) .app-topbar .dashboard-user strong { font-size: 12px; }
.app-layout-page:not(.home-premium-page) .app-topbar .dashboard-user small { font-size: 10px; }
.app-layout-page:not(.home-premium-page) .app-main .clean-heading h1 { font-size: 28px; }
.app-layout-page:not(.home-premium-page) .app-main .clean-heading p,
.app-layout-page:not(.home-premium-page).management-page .clean-heading p:last-child { font-size: 12px; }
.app-layout-page:not(.home-premium-page) .workspace-title h2 { font-size: 16px; }
.app-layout-page:not(.home-premium-page) .workspace-title p,
.app-layout-page:not(.home-premium-page).management-page .workspace-title p { font-size: 11px; }
.app-layout-page:not(.home-premium-page) .field label { font-size: 11px; }
.app-layout-page:not(.home-premium-page) .form-control { font-size: 12px; }
.app-layout-page:not(.home-premium-page) .optional-label,
.app-layout-page:not(.home-premium-page) .field-help { font-size: 11px; }
.app-layout-page:not(.home-premium-page) .button.primary,
.app-layout-page:not(.home-premium-page) .ghost-button { font-size: 11px; }
.app-layout-page:not(.home-premium-page) .button.small,
.app-layout-page:not(.home-premium-page) .action-group .button.small { font-size: 9px; }
.app-layout-page:not(.home-premium-page) .service-name-cell strong { font-size: 12px; }
.app-layout-page:not(.home-premium-page) .service-name-cell span:not(.mobile-label),
.app-layout-page:not(.home-premium-page) .service-professionals-cell > span:not(.mobile-label) { font-size: 9px; }
.app-layout-page:not(.home-premium-page) .service-price-cell strong { font-size: 10px; }
.app-layout-page:not(.home-premium-page) .status-pill { font-size: 8px; }
.app-layout-page:not(.home-premium-page) .schedule-day { font-size: 11px; }
.app-layout-page:not(.home-premium-page) .setting-note { font-size: 10px; }
.app-layout-page:not(.home-premium-page) .weekday-chip span { font-size: 10px; }
.app-layout-page:not(.home-premium-page) .advanced-tools-card > summary strong { font-size: 12px; }
.app-layout-page:not(.home-premium-page) .advanced-tools-card > summary small { font-size: 10px; }

/* Agenda — leitura um pouco maior no desktop */
.agenda-page .agenda-view-tab { font-size: 11px; }
.agenda-page .agenda-today-button { font-size: 11px; }
.agenda-page .agenda-date-picker,
.agenda-page .agenda-professional-filter,
.agenda-page .agenda-list-filters label { font-size: 9px; }
.agenda-page .agenda-toolbar .form-control,
.agenda-page .agenda-list-filters .form-control { font-size: 11px; }
.agenda-page .agenda-summary-strip span { font-size: 10px; }
.agenda-page .agenda-content-head h2 { font-size: 18px; }
.agenda-page .agenda-content-eyebrow { font-size: 9px; }
.agenda-page .agenda-content-note { font-size: 10px; }
.agenda-page .agenda-loading { font-size: 11px; }
.agenda-page .agenda-day-professional strong { font-size: 11px; }
.agenda-page .agenda-day-professional small { font-size: 9px; }
.agenda-page .agenda-time-label { font-size: 9px; }
.agenda-page .agenda-grid-appointment > span { font-size: 8px; }
.agenda-page .agenda-grid-appointment strong { font-size: 10px; }
.agenda-page .agenda-grid-appointment small { font-size: 8px; }
.agenda-page .agenda-appointment-card .agenda-appointment-time { font-size: 10px; }
.agenda-page .agenda-appointment-card strong { font-size: 10px; }
.agenda-page .agenda-appointment-card small { font-size: 8px; }
.agenda-page .agenda-week-day > header span { font-size: 9px; }
.agenda-page .agenda-week-day > header small { font-size: 8px; }
.agenda-page .agenda-week-empty { font-size: 9px; }
.agenda-page .agenda-list-header { font-size: 8px; }
.agenda-page .agenda-list-row strong { font-size: 10px; }
.agenda-page .agenda-list-row small { font-size: 8px; }
.agenda-page .agenda-status-chip { font-size: 8px; }
.agenda-page .agenda-status-chip.mini { font-size: 7px; }
.agenda-page .agenda-dialog-header p { font-size: 10px; }
.agenda-page .agenda-dialog-kicker { font-size: 8px; }
.agenda-page .agenda-detail-status-row > span:last-child { font-size: 9px; }
.agenda-page .agenda-detail-section > span { font-size: 8px; }
.agenda-page .agenda-detail-section strong { font-size: 12px; }
.agenda-page .agenda-detail-section small { font-size: 9px; }
.agenda-page .agenda-contact-button { font-size: 9px; }
.agenda-page .agenda-detail-actions .button,
.agenda-page .agenda-form-footer .button { font-size: 10px; }
.agenda-page .agenda-final-status-note { font-size: 10px; }
.agenda-page .agenda-client-box-head strong { font-size: 12px; }
.agenda-page .agenda-client-box-head span { font-size: 9px; }
.agenda-page .agenda-client-mode button { font-size: 9px; }
.agenda-page .agenda-client-option strong { font-size: 10px; }
.agenda-page .agenda-client-option small { font-size: 8px; }
.agenda-page .agenda-client-no-result { font-size: 9px; }

/* Planos e configurações: aumento discreto, sem alterar dimensões dos cards */
.app-layout-page:not(.home-premium-page) .plans-section .section-heading p:not(.eyebrow) { font-size: 11px; }
.app-layout-page:not(.home-premium-page) .plan-current-badge { font-size: 8px; }
.app-layout-page:not(.home-premium-page) .plan-price span { font-size: 10px; }
.app-layout-page:not(.home-premium-page) .plan-points { font-size: 11px; }
.app-layout-page:not(.home-premium-page) .plans-note strong { font-size: 12px; }
.app-layout-page:not(.home-premium-page) .plans-note p { font-size: 10px; }
.app-layout-page:not(.home-premium-page) .online-confirmation-option strong { font-size: 11px; }
.app-layout-page:not(.home-premium-page) .online-confirmation-option small,
.app-layout-page:not(.home-premium-page) .online-confirmation-option em { font-size: 9px; }
.app-layout-page:not(.home-premium-page) .online-confirmation-save .button { font-size: 10px; }

@media (max-width: 760px) {
  /* No celular o ganho de leitura é um pouco maior. */
  .app-layout-page:not(.home-premium-page) .sidebar-nav a { font-size: 12px; }
  .app-layout-page:not(.home-premium-page) .nav-icon { font-size: 14px; }
  .app-layout-page:not(.home-premium-page) .topbar-context strong { font-size: 14px; }
  .app-layout-page:not(.home-premium-page) .topbar-context small { font-size: 11px; }
  .app-layout-page:not(.home-premium-page) .app-topbar .dashboard-user strong { font-size: 13px; }
  .app-layout-page:not(.home-premium-page) .app-topbar .dashboard-user small { font-size: 11px; }
  .app-layout-page:not(.home-premium-page) .app-main .clean-heading h1,
  .app-layout-page:not(.home-premium-page).management-page .clean-heading h1 { font-size: 26px; }
  .app-layout-page:not(.home-premium-page) .app-main .clean-heading p,
  .app-layout-page:not(.home-premium-page).management-page .clean-heading p:last-child { font-size: 13px; }
  .app-layout-page:not(.home-premium-page) .workspace-title h2 { font-size: 17px; }
  .app-layout-page:not(.home-premium-page) .workspace-title p,
  .app-layout-page:not(.home-premium-page).management-page .workspace-title p { font-size: 12px; }
  .app-layout-page:not(.home-premium-page) .field label { font-size: 12px; }
  .app-layout-page:not(.home-premium-page) .form-control { font-size: 14px; }
  .app-layout-page:not(.home-premium-page) .optional-label,
  .app-layout-page:not(.home-premium-page) .field-help { font-size: 11px; }
  .app-layout-page:not(.home-premium-page) .button.primary,
  .app-layout-page:not(.home-premium-page) .ghost-button { font-size: 12px; }
  .app-layout-page:not(.home-premium-page) .button.small,
  .app-layout-page:not(.home-premium-page) .action-group .button.small { font-size: 10px; }
  .app-layout-page:not(.home-premium-page) .service-name-cell strong { font-size: 13px; }
  .app-layout-page:not(.home-premium-page) .service-name-cell span:not(.mobile-label),
  .app-layout-page:not(.home-premium-page) .service-professionals-cell > span:not(.mobile-label) { font-size: 10px; }
  .app-layout-page:not(.home-premium-page) .service-price-cell strong { font-size: 11px; }
  .app-layout-page:not(.home-premium-page) .status-pill { font-size: 9px; }
  .app-layout-page:not(.home-premium-page) .mobile-label { font-size: 9px; }
  .app-layout-page:not(.home-premium-page) .schedule-day { font-size: 12px; }
  .app-layout-page:not(.home-premium-page) .setting-note { font-size: 11px; }
  .app-layout-page:not(.home-premium-page) .weekday-chip span { font-size: 11px; }

  .agenda-page .agenda-view-tab { font-size: 12px; }
  .agenda-page .agenda-today-button { font-size: 12px; }
  .agenda-page .agenda-date-picker,
  .agenda-page .agenda-professional-filter,
  .agenda-page .agenda-list-filters label { font-size: 10px; }
  .agenda-page .agenda-toolbar .form-control,
  .agenda-page .agenda-list-filters .form-control { font-size: 13px; }
  .agenda-page .agenda-summary-strip span { font-size: 11px; }
  .agenda-page .agenda-summary-strip strong { font-size: 21px; }
  .agenda-page .agenda-content-head h2 { font-size: 19px; }
  .agenda-page .agenda-content-eyebrow { font-size: 10px; }
  .agenda-page .agenda-content-note { font-size: 11px; }
  .agenda-page .agenda-appointment-card .agenda-appointment-time { font-size: 11px; }
  .agenda-page .agenda-appointment-card strong { font-size: 11px; }
  .agenda-page .agenda-appointment-card small { font-size: 9px; }
  .agenda-page .agenda-status-chip { font-size: 9px; }
  .agenda-page .agenda-dialog-header h2 { font-size: 19px; }
  .agenda-page .agenda-dialog-header p { font-size: 11px; }
  .agenda-page .agenda-detail-section > span { font-size: 9px; }
  .agenda-page .agenda-detail-section strong { font-size: 13px; }
  .agenda-page .agenda-detail-section small { font-size: 10px; }
  .agenda-page .agenda-contact-button { font-size: 10px; }
  .agenda-page .agenda-detail-actions .button,
  .agenda-page .agenda-form-footer .button { font-size: 11px; }
  .agenda-page .agenda-client-box-head strong { font-size: 13px; }
  .agenda-page .agenda-client-box-head span { font-size: 10px; }
  .agenda-page .agenda-client-mode button { font-size: 10px; }
  .agenda-page .agenda-client-option strong { font-size: 11px; }
  .agenda-page .agenda-client-option small { font-size: 9px; }

  .app-layout-page:not(.home-premium-page) .plan-points { font-size: 12px; }
  .app-layout-page:not(.home-premium-page) .plans-note p { font-size: 11px; }
  .app-layout-page:not(.home-premium-page) .online-confirmation-option strong { font-size: 12px; }
  .app-layout-page:not(.home-premium-page) .online-confirmation-option small,
  .app-layout-page:not(.home-premium-page) .online-confirmation-option em { font-size: 10px; }
}

/* Etapa 6.2 — cancelamento pelo cliente + autogestão */
.customer-cancellation-card { grid-column: 1 / -1; }
.customer-cancellation-deadline { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; margin-top:14px; padding:14px; border:1px solid #e2e8f0; border-radius:13px; background:#f8fafc; }
.customer-cancellation-deadline.is-disabled { opacity:.55; }
.customer-cancellation-deadline .field { margin:0; }
.booking-manage-card { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 0 16px; padding:14px 15px; border:1px solid #dce6f1; border-radius:13px; background:#f8fbff; text-align:left; }
.booking-manage-card > div { display:grid; gap:3px; min-width:0; }
.booking-manage-card span { color:#315d96; font-size:9px; font-weight:900; text-transform:uppercase; letter-spacing:.06em; }
.booking-manage-card strong { color:#263d5d; font-size:12px; }
.booking-manage-card small { color:#7a899c; font-size:9px; line-height:1.45; }
.booking-manage-link { flex:0 0 auto; text-decoration:none; white-space:nowrap; }
.manage-booking-hero .public-company-hero { padding-bottom:24px; }
.manage-company-hero { grid-template-columns:1fr; }
.manage-booking-main { padding-top:24px; }
.manage-booking-card-shell { max-width:760px; margin:0 auto; padding:26px; }
.manage-loading { display:grid; place-items:center; gap:10px; min-height:210px; color:#53657b; text-align:center; }
.manage-loading[hidden] { display:none !important; }
.manage-spinner { width:30px; height:30px; border:3px solid #dce6f2; border-top-color:#2563eb; border-radius:50%; animation:manage-spin .8s linear infinite; }
@keyframes manage-spin { to { transform:rotate(360deg); } }
.manage-invalid-state { padding:38px 18px; text-align:center; }
.manage-invalid-state[hidden], .manage-booking-content[hidden], .manage-cancel-confirm[hidden], .manage-company-contact[hidden], .manage-contact-fallback[hidden] { display:none !important; }
.manage-invalid-state h2 { margin:0 0 8px; color:#253b59; font-size:23px; }
.manage-invalid-state p { max-width:480px; margin:0 auto; color:#738298; line-height:1.6; }
.manage-warning-icon { background:#f59e0b; box-shadow:0 10px 22px rgba(245,158,11,.2); }
.manage-title-row { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:18px; }
.manage-title-row h2 { margin:3px 0 0; color:#223a5b; font-size:24px; }
.manage-status-chip { display:inline-flex; align-items:center; min-height:30px; padding:6px 10px; border-radius:999px; font-size:10px; font-weight:900; white-space:nowrap; }
.manage-status-chip.pending { background:#fff7dc; color:#996b00; }
.manage-status-chip.confirmed { background:#eaf3ff; color:#1d5fa9; }
.manage-status-chip.completed { background:#eaf9f1; color:#13734c; }
.manage-status-chip.cancelled { background:#f4f5f7; color:#697386; }
.manage-status-chip.no-show { background:#fff0f0; color:#ad3e3e; }
.manage-summary { overflow:hidden; margin-bottom:18px; border:1px solid #dfe7ef; border-radius:14px; background:#fff; }
.manage-summary > div { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:12px 14px; border-bottom:1px solid #edf1f5; }
.manage-summary > div:last-child { border-bottom:0; }
.manage-summary span { color:#8190a3; font-size:10px; }
.manage-summary strong { color:#2b405f; font-size:11px; text-align:right; }
.manage-cancellation-card { margin-bottom:18px; padding:17px; border:1px solid #dce6f1; border-radius:14px; background:linear-gradient(180deg,#fbfdff,#f7faff); text-align:left; }
.manage-section-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:13px; }
.manage-section-heading > div { display:grid; gap:3px; }
.manage-section-heading span { color:#315d96; font-size:9px; font-weight:900; text-transform:uppercase; letter-spacing:.06em; }
.manage-section-heading strong { color:#2a405f; font-size:13px; }
.manage-section-heading small { max-width:330px; color:#7b899b; font-size:9px; line-height:1.5; text-align:right; }
.manage-cancel-button { width:auto; background:#b53a3a; border-color:#b53a3a; }
.manage-cancel-button:hover { background:#9f3030; border-color:#9f3030; }
.manage-contact-fallback { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:5px; }
.manage-contact-fallback p { margin:0; color:#738296; font-size:10px; }
.manage-cancel-confirm { margin-top:14px; padding:14px; border:1px solid #f1c8c8; border-radius:12px; background:#fff8f8; }
.manage-cancel-confirm strong { color:#8f2e2e; font-size:12px; }
.manage-cancel-confirm p { margin:6px 0 12px; color:#78686b; font-size:10px; line-height:1.55; }
.manage-confirm-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:8px; }
.booking-primary-button.danger { background:#b53a3a; border-color:#b53a3a; }
.booking-primary-button.danger:hover { background:#9f3030; border-color:#9f3030; }
.manage-company-contact { margin-bottom:18px; }
.manage-footer-actions { display:flex; justify-content:flex-end; }
.manage-footer-actions .booking-secondary-button { text-decoration:none; }
.manage-platform-link { color:#315d96; font-weight:800; text-decoration:none; transition:color .15s ease; }
.manage-platform-link:hover { color:#174f99; text-decoration:underline; }
.manage-platform-link:focus-visible { outline:2px solid #7aa6d3; outline-offset:3px; border-radius:3px; }
.agenda-detail-status-stack { display:grid; gap:4px; justify-items:start; }
.agenda-detail-status-stack small { color:#7d8a9c; font-size:9px; font-weight:750; }

@media (max-width: 760px) {
  .customer-cancellation-deadline { grid-template-columns:1fr; }
  .booking-manage-card { align-items:stretch; flex-direction:column; }
  .booking-manage-link { width:100%; justify-content:center; }
  .manage-booking-card-shell { padding:20px 15px; }
  .manage-title-row { align-items:flex-start; }
  .manage-title-row h2 { font-size:22px; }
  .manage-summary > div { gap:12px; }
  .manage-section-heading { flex-direction:column; gap:6px; }
  .manage-section-heading small { max-width:none; text-align:left; }
  .manage-contact-fallback { align-items:flex-start; flex-direction:column; }
  .manage-confirm-actions { flex-direction:column-reverse; }
  .manage-confirm-actions .booking-secondary-button,
  .manage-confirm-actions .booking-primary-button { width:100%; justify-content:center; }
  .manage-footer-actions .booking-secondary-button { width:100%; justify-content:center; }
}

/* =========================================================
   ETAPA 6.2.1 — recuperar agendamento por código + telefone
   ========================================================= */
.booking-existing-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:14px 22px;
  border-bottom:1px solid #e7edf5;
  background:linear-gradient(180deg,#fbfdff,#f8fbff);
}
.booking-existing-row > div { display:grid; gap:3px; min-width:0; }
.booking-existing-row strong { color:#2a405f; font-size:12px; }
.booking-existing-row small { color:#7c8a9e; font-size:10px; line-height:1.45; }
.booking-consult-link { flex:0 0 auto; text-decoration:none; white-space:nowrap; }
.booking-success-code-copy { display:grid; gap:3px; min-width:0; }
.booking-success-code-copy small { max-width:520px; color:#7c8a9e; font-size:9px; line-height:1.45; }
.booking-copy-code-button { flex:0 0 auto; min-height:34px; padding:7px 11px; white-space:nowrap; }

.lookup-booking-card-shell {
  max-width:690px;
  margin:0 auto;
  padding:28px;
}
.lookup-booking-heading { margin-bottom:20px; }
.lookup-booking-heading h2 { margin:3px 0 7px; color:#223a5b; font-size:24px; letter-spacing:-.02em; }
.lookup-booking-heading p { margin:0; max-width:590px; color:#738298; font-size:11px; line-height:1.65; }
.lookup-message { margin:0 0 18px; }
.lookup-booking-form { display:grid; gap:16px; }
.lookup-booking-form label { display:flex; flex-direction:column; gap:7px; color:#41546e; font-size:11px; font-weight:750; }
.lookup-booking-form label > span b { color:#b63a46; }
.lookup-booking-form input {
  width:100%;
  min-height:46px;
  padding:11px 13px;
  border:1px solid #d8e1ec;
  border-radius:11px;
  outline:none;
  background:#fff;
  color:#223a5b;
  font:inherit;
  font-size:13px;
  transition:border-color .18s ease, box-shadow .18s ease;
}
.lookup-booking-form input:focus { border-color:#6c58df; box-shadow:0 0 0 3px rgba(108,88,223,.09); }
.lookup-booking-form label small { color:#8a96a8; font-size:9px; font-weight:500; line-height:1.45; }
.lookup-security-note {
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 13px;
  border:1px solid #dce7f4;
  border-radius:11px;
  background:#f8fbff;
  color:#365d8e;
}
.lookup-security-note > span { display:grid; place-items:center; flex:0 0 auto; width:30px; height:30px; border-radius:9px; background:#edf4ff; font-size:14px; }
.lookup-security-note > div { display:grid; gap:2px; }
.lookup-security-note strong { font-size:10px; }
.lookup-security-note small { color:#74849a; font-size:9px; line-height:1.45; }
.lookup-submit-button { width:100%; justify-content:center; min-height:44px; }
.lookup-footer-actions { display:flex; justify-content:center; margin-top:14px; padding-top:14px; border-top:1px solid #edf1f5; }
.lookup-footer-actions .booking-secondary-button { text-decoration:none; }
.lookup-booking-form[hidden] { display:none !important; }

@media (max-width:760px) {
  .booking-existing-row { align-items:stretch; flex-direction:column; gap:10px; padding:13px 14px; }
  .booking-consult-link { width:100%; justify-content:center; }
  .booking-success-code { gap:10px; }
  .booking-copy-code-button { width:100%; justify-content:center; }
  .lookup-booking-card-shell { padding:22px 16px; }
  .lookup-booking-heading h2 { font-size:22px; }
  .lookup-footer-actions .booking-secondary-button { width:100%; justify-content:center; }
}

/* =========================================================
   ETAPA 7.1 — Dashboard operacional
   Acrescenta dados reais sem alterar os cards premium existentes.
   ========================================================= */
.home-operations-section {
  margin: 4px 0 24px;
  padding: 20px;
  border: 1px solid #e1e8f1;
  border-radius: 20px;
  background: linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);
  box-shadow: 0 12px 28px rgba(24,47,82,.05);
}
.home-operations-heading {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:16px;
}
.home-operations-heading > div { display:grid; gap:3px; }
.home-operations-heading > div > span {
  color:#2c67df;
  font-size:8px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.home-operations-heading h2 { margin:0; color:#10233f; font-size:18px; letter-spacing:-.02em; }
.home-operations-heading p { margin:0; color:#7d8b9d; font-size:9px; line-height:1.5; }
.home-agenda-link {
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:34px;
  padding:8px 11px;
  border:1px solid #d7e2f0;
  border-radius:10px;
  color:#255dba;
  background:#f8fbff;
  font-size:9px;
  font-weight:900;
  text-decoration:none;
  white-space:nowrap;
}
.home-agenda-link:hover { border-color:#bfd2ef; background:#f0f6ff; }
.home-agenda-link span { font-size:15px; line-height:1; }

.home-today-metrics {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:11px;
  margin-bottom:14px;
}
.home-today-card {
  min-height:94px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px;
  border:1px solid #e4eaf2;
  border-radius:15px;
  background:#fff;
}
.home-today-icon {
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  flex:0 0 38px;
  border-radius:11px;
  font-size:15px;
  font-weight:900;
}
.home-today-card > div { min-width:0; display:grid; gap:3px; }
.home-today-card > div > span { color:#68788e; font-size:9px; font-weight:800; }
.home-today-card strong { color:#0d2343; font-size:20px; line-height:1; }
.home-today-card small { color:#8995a5; font-size:8px; line-height:1.35; }
.metric-today-total .home-today-icon { color:#2865de; background:#eaf2ff; }
.metric-today-confirmed .home-today-icon { color:#14885a; background:#eaf8f1; }
.metric-today-pending .home-today-icon { color:#b37513; background:#fff4dc; }
.metric-today-clients .home-today-icon { color:#684bd0; background:#f0edff; }

.home-upcoming-card {
  overflow:hidden;
  border:1px solid #e2e8f0;
  border-radius:15px;
  background:#fff;
}
.home-upcoming-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:14px 16px;
  border-bottom:1px solid #edf1f5;
  background:#fbfcfe;
}
.home-upcoming-head h3 { margin:0 0 3px; color:#1b304f; font-size:12px; }
.home-upcoming-head p { margin:0; color:#8794a5; font-size:8px; }
.home-upcoming-head > a { color:#2a63c5; font-size:8px; font-weight:900; text-decoration:none; white-space:nowrap; }
.home-upcoming-list { display:grid; }
.home-upcoming-item {
  display:grid;
  grid-template-columns:64px minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  min-height:58px;
  padding:10px 16px;
  border-bottom:1px solid #edf1f5;
}
.home-upcoming-item:last-child { border-bottom:0; }
.home-upcoming-time { display:grid; gap:2px; }
.home-upcoming-time strong { color:#1f467e; font-size:12px; }
.home-upcoming-time small { color:#8794a5; font-size:7px; }
.home-upcoming-info { min-width:0; display:grid; gap:3px; }
.home-upcoming-info strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#263b59; font-size:10px; }
.home-upcoming-info small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#8290a2; font-size:8px; }
.home-upcoming-status {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:4px 7px;
  border-radius:999px;
  font-size:7px;
  font-weight:900;
  text-transform:uppercase;
  white-space:nowrap;
}
.home-upcoming-status.confirmed { color:#1f5fb8; background:#e9f2ff; }
.home-upcoming-status.pending { color:#9a6717; background:#fff3d9; }
.home-upcoming-loading,
.home-upcoming-empty {
  min-height:72px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:16px;
  color:#7d8b9d;
  text-align:center;
}
.home-upcoming-loading span {
  width:16px;
  height:16px;
  border:2px solid #dce5f0;
  border-top-color:#2a67da;
  border-radius:50%;
  animation:home-operational-spin .8s linear infinite;
}
.home-upcoming-loading small { font-size:8px; }
.home-upcoming-empty { flex-direction:column; gap:3px; }
.home-upcoming-empty strong { color:#506079; font-size:10px; }
.home-upcoming-empty small { color:#8b97a7; font-size:8px; }
@keyframes home-operational-spin { to { transform:rotate(360deg); } }

@media (max-width:1180px) {
  .home-today-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px) {
  .home-operations-section { padding:15px; border-radius:17px; }
  .home-operations-heading { align-items:stretch; flex-direction:column; gap:10px; }
  .home-agenda-link { width:100%; justify-content:center; }
  .home-today-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
  .home-today-card { min-height:88px; padding:12px; gap:9px; }
  .home-today-icon { width:34px; height:34px; flex-basis:34px; font-size:14px; }
  .home-today-card strong { font-size:18px; }
  .home-today-card small { display:none; }
  .home-upcoming-head { padding:13px; }
  .home-upcoming-item { grid-template-columns:56px minmax(0,1fr); gap:9px; padding:10px 13px; }
  .home-upcoming-status { grid-column:2; justify-self:start; }
}
@media (max-width:430px) {
  .home-today-metrics { grid-template-columns:1fr 1fr; }
  .home-today-card { align-items:flex-start; flex-direction:column; }
}


/* Etapa 7.1.1 — ações rápidas e detalhes dos próximos agendamentos na Home */
.home-upcoming-client-button {
  width:max-content;
  max-width:100%;
  padding:0;
  border:0;
  color:#263b59;
  background:transparent;
  font:inherit;
  font-size:10px;
  font-weight:850;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  text-align:left;
  cursor:pointer;
  text-decoration:underline;
  text-decoration-color:transparent;
  text-underline-offset:3px;
  transition:.15s ease;
}
.home-upcoming-client-button:hover,
.home-upcoming-client-button:focus-visible { color:#225db7; text-decoration-color:#a9c5ef; outline:none; }
.home-upcoming-status-button { border:0; cursor:pointer; gap:4px; transition:.15s ease; }
.home-upcoming-status-button:hover,
.home-upcoming-status-button:focus-visible { transform:translateY(-1px); box-shadow:0 4px 12px rgba(30,58,95,.12); outline:none; }
.home-upcoming-status-button i { font-size:7px; font-style:normal; opacity:.75; }

.home-status-popover {
  position:fixed;
  z-index:1200;
  width:174px;
  padding:6px;
  border:1px solid #dfe7f0;
  border-radius:12px;
  background:#fff;
  box-shadow:0 16px 42px rgba(12,34,65,.18);
}
.home-status-popover[hidden] { display:none !important; }
.home-status-menu-title { display:grid; gap:2px; padding:7px 9px 8px; margin-bottom:3px; border-bottom:1px solid #edf1f5; }
.home-status-menu-title strong { color:#223a5a; font-size:9px; }
.home-status-menu-title small { color:#8794a5; font-size:7px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.home-status-action {
  display:flex;
  align-items:center;
  width:100%;
  min-height:32px;
  padding:7px 9px;
  border:0;
  border-radius:8px;
  color:#42566f;
  background:transparent;
  font-size:8px;
  font-weight:850;
  text-align:left;
  cursor:pointer;
}
.home-status-action:hover,
.home-status-action:focus-visible { background:#f4f7fb; outline:none; }
.home-status-action.success { color:#167249; }
.home-status-action.warning { color:#956314; }
.home-status-action.danger { color:#a23d3d; }
.home-status-action.open { margin-top:3px; border-top:1px solid #edf1f5; border-radius:0 0 8px 8px; color:#245fb9; }
.home-status-action:disabled { opacity:.5; cursor:wait; }

.home-appointment-dialog {
  width:min(470px,calc(100vw - 28px));
  max-height:calc(100vh - 32px);
  padding:0;
  overflow:auto;
  border:0;
  border-radius:17px;
  background:#fff;
  box-shadow:0 30px 90px rgba(7,24,49,.28);
}
.home-appointment-dialog::backdrop { background:rgba(8,22,42,.48); backdrop-filter:blur(3px); }
.home-appointment-dialog-shell { margin:0; padding:0; }
.home-appointment-dialog-header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:18px 19px 14px; border-bottom:1px solid #e9eef4; background:linear-gradient(180deg,#fff,#fbfcfe); }
.home-appointment-dialog-header > div > span { color:#2563eb; font-size:7px; font-weight:950; letter-spacing:.09em; }
.home-appointment-dialog-header h2 { margin:3px 0 0; color:#203650; font-size:16px; }
.home-appointment-dialog-close { display:grid; place-items:center; width:30px; height:30px; flex:0 0 30px; border:1px solid #e0e7ef; border-radius:9px; color:#68778b; background:#fff; font-size:17px; cursor:pointer; }
.home-appointment-dialog-body { padding:17px 19px 19px; }
.home-detail-topline { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:13px; }
.home-detail-topline > div { min-width:0; display:grid; gap:3px; }
.home-detail-topline strong { color:#203650; font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.home-detail-topline small { color:#7f8da0; font-size:8px; }
.home-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.home-detail-grid section { display:grid; gap:4px; min-height:78px; padding:12px 13px; border:1px solid #e3e9f1; border-radius:11px; background:#fbfcfe; }
.home-detail-grid section > span { color:#8794a6; font-size:7px; font-weight:900; text-transform:uppercase; letter-spacing:.05em; }
.home-detail-grid section strong { color:#2c405c; font-size:10px; line-height:1.35; overflow-wrap:anywhere; }
.home-detail-grid section small { color:#7f8da0; font-size:8px; line-height:1.35; }
.home-detail-contact-actions { display:flex; flex-wrap:wrap; gap:7px; margin-top:12px; }
.home-detail-contact-button { display:inline-flex; align-items:center; min-height:33px; padding:7px 10px; border:1px solid #dae4ef; border-radius:9px; color:#34506f; background:#fff; font-size:8px; font-weight:850; text-decoration:none; }
.home-detail-contact-button.whatsapp { color:#16774b; border-color:#cfe9db; background:#f2fbf6; }
.home-detail-no-contact { color:#8794a5; font-size:8px; }
.home-detail-footer { display:flex; justify-content:flex-end; margin-top:15px; padding-top:14px; border-top:1px solid #e9eef4; }
.home-detail-footer .button { min-height:36px; padding:8px 12px; border-radius:9px; font-size:8px; }

@media (max-width:760px) {
  .home-upcoming-client-button { font-size:11px; }
  .home-upcoming-status-button { min-height:29px; padding:5px 8px; font-size:8px; }
  .home-status-popover {
    width:auto;
    padding:8px;
    border-radius:15px;
    box-shadow:0 -12px 38px rgba(12,34,65,.20);
  }
  .home-status-menu-title { padding:8px 10px 9px; }
  .home-status-menu-title strong { font-size:11px; }
  .home-status-menu-title small { font-size:9px; }
  .home-status-action { min-height:42px; padding:10px 11px; font-size:10px; }
  .home-appointment-dialog {
    width:calc(100vw - 18px);
    max-height:82vh;
    margin:auto auto 9px;
    border-radius:17px 17px 13px 13px;
  }
  .home-appointment-dialog-header { padding:16px 16px 13px; }
  .home-appointment-dialog-header h2 { font-size:18px; }
  .home-appointment-dialog-body { padding:15px 16px 17px; }
  .home-detail-topline strong { font-size:14px; }
  .home-detail-topline small { font-size:10px; }
  .home-detail-grid { grid-template-columns:1fr; }
  .home-detail-grid section { min-height:0; padding:11px 12px; }
  .home-detail-grid section > span { font-size:8px; }
  .home-detail-grid section strong { font-size:11px; }
  .home-detail-grid section small { font-size:9px; }
  .home-detail-contact-button { min-height:39px; font-size:10px; }
  .home-detail-footer .button { width:100%; justify-content:center; min-height:42px; font-size:10px; }
}


/* =========================================================
   ETAPA 7.1.3 — HOME OPERACIONAL
   Checklist recolhível + ações rápidas úteis.
   Escopo isolado na Home para preservar as demais telas.
   ========================================================= */
.home-premium-page .setup-ready-heading { position:relative; }
.home-premium-page .setup-ready-copy { min-width:0; flex:1; }
.home-premium-page .setup-ready-toggle {
  margin-left:auto;
  padding:7px 9px;
  border:1px solid #d7e7de;
  border-radius:9px;
  color:#34735a;
  background:#fff;
  font:inherit;
  font-size:8px;
  font-weight:900;
  white-space:nowrap;
  cursor:pointer;
  transition:.15s ease;
}
.home-premium-page .setup-ready-toggle:hover { background:#f2faf5; border-color:#c4dfcf; }
.home-premium-page .setup-ready-toggle span { margin-left:3px; }
.home-premium-page .setup-ready-card.is-ready.is-collapsed {
  min-height:0;
  align-self:start;
  padding:14px 16px;
  border-radius:16px;
  box-shadow:0 8px 20px rgba(24,47,82,.045);
}
.home-premium-page .setup-ready-card.is-ready.is-collapsed .setup-ready-heading {
  align-items:center;
  padding-bottom:0;
  border-bottom:0;
  gap:10px;
}
.home-premium-page .setup-ready-card.is-ready.is-collapsed .setup-ready-icon {
  width:30px;
  height:30px;
  flex-basis:30px;
  font-size:14px;
  box-shadow:none;
}
.home-premium-page .setup-ready-card.is-ready.is-collapsed .setup-ready-heading h2 {
  margin:0;
  font-size:13px;
}
.home-premium-page .setup-ready-card.is-ready.is-collapsed .setup-ready-heading p,
.home-premium-page .setup-ready-card.is-ready.is-collapsed .setup-checklist { display:none; }
.home-premium-page .quick-actions-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media (max-width:760px) {
  .home-premium-page .setup-ready-card.is-ready.is-collapsed { padding:13px 14px; }
  .home-premium-page .setup-ready-toggle { font-size:9px; padding:7px 8px; }
  .home-premium-page .quick-actions-grid { grid-template-columns:1fr; }
}

/* =========================================================
   ETAPA 7.2A — CLIENTES
   Lista, busca e cadastro manual. Perfil/histórico ficam para 7.2B/7.2C.
   ========================================================= */
.sr-only {
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}
.clients-page .clients-heading { align-items:center; }
.clients-page .clients-new-button { flex:0 0 auto; min-height:40px; }
.clients-workspace { padding:0 !important; overflow:hidden; }
.clients-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:18px 19px 16px;
  border-bottom:1px solid #e9eef4;
}
.clients-toolbar-copy { min-width:0; }
.clients-toolbar-copy h2 { margin:0 0 4px; color:#17253a; font-size:15px; letter-spacing:-.02em; }
.clients-toolbar-copy p { margin:0; color:#7a889a; font-size:10px; }
.clients-search-field {
  position:relative;
  width:min(430px,48%);
  min-width:280px;
  flex:0 1 430px;
}
.clients-search-field input {
  width:100%;
  min-height:40px;
  padding:9px 38px 9px 36px;
  border:1px solid #dce4ee;
  border-radius:10px;
  outline:0;
  color:#263a55;
  background:#fff;
  font-size:10px;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.clients-search-field input:focus { border-color:#a9c4ee; box-shadow:0 0 0 3px rgba(37,99,235,.08); }
.clients-search-icon { position:absolute; left:13px; top:50%; transform:translateY(-50%); color:#8391a3; font-size:15px; pointer-events:none; }
#clientes-busca-limpar {
  position:absolute;
  right:8px;
  top:50%;
  transform:translateY(-50%);
  width:27px;
  height:27px;
  padding:0;
  border:0;
  border-radius:8px;
  color:#718096;
  background:transparent;
  font-size:17px;
  cursor:pointer;
}
#clientes-busca-limpar:hover { background:#f1f5f9; }
.clients-table-head,
.client-row { grid-template-columns:minmax(190px,1.45fr) minmax(135px,1fr) minmax(170px,1.15fr) 92px 72px; }
.client-identity { display:flex; align-items:center; gap:11px; min-width:0; }
.client-avatar {
  display:grid;
  place-items:center;
  width:35px;
  height:35px;
  flex:0 0 35px;
  border-radius:10px;
  color:#2d5f9f;
  background:#edf4fe;
  border:1px solid #dae7f8;
  font-size:10px;
  font-weight:950;
  letter-spacing:.02em;
}
.client-identity > div { min-width:0; display:grid; gap:3px; }
.client-identity strong { overflow:hidden; color:#263a55; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.client-identity span:not(.client-avatar) { color:#8391a3; font-size:8px; }
.client-contact,
.client-email,
.client-created { min-width:0; display:grid; gap:3px; }
.client-contact strong,
.client-email strong,
.client-created strong { overflow:hidden; color:#42566f; font-size:9px; font-weight:800; text-overflow:ellipsis; white-space:nowrap; }
.client-contact small { overflow:hidden; color:#8a97a8; font-size:7px; text-overflow:ellipsis; white-space:nowrap; }
.clients-loading { min-height:190px; display:grid; place-items:center; align-content:center; gap:10px; color:#7f8da0; font-size:9px; }
.clients-loading[hidden] { display:none !important; }
.clients-loading > span { width:24px; height:24px; border:3px solid #dde7f4; border-top-color:#2f6fe4; border-radius:50%; animation:venixClientsSpin .75s linear infinite; }
@keyframes venixClientsSpin { to { transform:rotate(360deg); } }
.clients-empty { margin:18px 20px 20px; }
.clients-pagination {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:13px 18px;
  border-top:1px solid #e9eef4;
  background:#fbfcfe;
}
.clients-pagination[hidden] { display:none !important; }
.clients-pagination > span { color:#738196; font-size:9px; font-weight:750; }
.clients-pagination > div { display:flex; gap:7px; }
.clients-pagination .button { min-height:32px !important; padding:6px 10px !important; font-size:8px !important; }
.clients-pagination .button:disabled { opacity:.45; cursor:not-allowed; }
.clients-dialog { width:min(590px,calc(100vw - 28px)); }
.clients-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; }
.clients-form-grid .full-field { grid-column:1 / -1; }
.clients-form-note {
  display:flex;
  align-items:flex-start;
  gap:9px;
  margin-top:14px;
  padding:10px 11px;
  border:1px solid #dfe8f3;
  border-radius:10px;
  color:#61738a;
  background:#f7faff;
}
.clients-form-note > span { display:grid; place-items:center; width:18px; height:18px; flex:0 0 18px; border-radius:50%; color:#fff; background:#6287bb; font-size:9px; font-weight:900; }
.clients-form-note p { margin:0; font-size:8px; line-height:1.5; }
.clients-form-footer { margin-top:16px; }

@media (max-width:980px) {
  .clients-table-head { display:none; }
  .clients-list { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px !important; padding:12px; background:#f8fafc; }
  .client-row {
    grid-template-columns:1fr 1fr;
    gap:12px 18px;
    padding:15px;
    border:1px solid #e3e9f1;
    border-radius:12px;
    background:#fff;
  }
  .client-identity { grid-column:1 / -1; }
  .client-status { align-self:end; }
  .clients-page .mobile-label { display:block; margin-bottom:4px; }
}

@media (max-width:760px) {
  .clients-page .clients-heading { align-items:stretch; flex-direction:column; gap:13px; }
  .clients-page .clients-new-button { width:100%; justify-content:center; }
  .clients-toolbar { align-items:stretch; flex-direction:column; padding:15px; }
  .clients-search-field { width:100%; min-width:0; flex-basis:auto; }
  .clients-search-field input { min-height:44px; font-size:11px; }
  .clients-list { grid-template-columns:1fr; padding:10px; }
  .client-row { grid-template-columns:1fr 1fr; }
  .client-identity { grid-column:1 / -1; }
  .client-identity strong { font-size:12px; }
  .client-contact strong,
  .client-email strong,
  .client-created strong { font-size:10px; }
  .client-contact small { font-size:8px; }
  .clients-pagination { align-items:stretch; flex-direction:column; }
  .clients-pagination > div { width:100%; }
  .clients-pagination .button { flex:1; min-height:38px !important; font-size:9px !important; }
  .clients-form-grid { grid-template-columns:1fr; }
  .clients-form-grid .full-field { grid-column:auto; }
  .clients-form-note p { font-size:9px; }
}

@media (max-width:430px) {
  .client-row { grid-template-columns:1fr; }
  .client-identity { grid-column:auto; }
}

/* =========================================================
   ETAPA 7.2B — PERFIL DO CLIENTE
   Painel lateral, edição e contatos rápidos.
   ========================================================= */
.clients-toolbar-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
  flex:1;
  min-width:0;
}
.clients-status-filter { flex:0 0 auto; }
.clients-status-filter select {
  min-height:40px;
  padding:8px 31px 8px 11px;
  border:1px solid #dce4ee;
  border-radius:10px;
  outline:0;
  color:#42566f;
  background:#fff;
  font-family:inherit;
  font-size:9px;
  font-weight:800;
  line-height:1.2;
  cursor:pointer;
}
.clients-status-filter select:focus { border-color:#a9c4ee; box-shadow:0 0 0 3px rgba(37,99,235,.08); }
.client-profile-link {
  display:block;
  max-width:100%;
  padding:0;
  border:0;
  color:#263a55;
  background:transparent;
  font-family:inherit;
  font-size:11px;
  font-weight:900;
  line-height:1.2;
  text-align:left;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  cursor:pointer;
}
.client-profile-link:hover { color:#2563a9; text-decoration:underline; text-underline-offset:2px; }
.client-profile-link:focus-visible { outline:2px solid #8fb5eb; outline-offset:3px; border-radius:3px; }

.client-profile-backdrop {
  position:fixed;
  inset:0;
  z-index:1090;
  background:rgba(12,27,48,.26);
  backdrop-filter:blur(1px);
}
.client-profile-backdrop[hidden] { display:none !important; }
.client-profile-panel {
  position:fixed;
  top:0;
  right:0;
  z-index:1100;
  width:min(430px,calc(100vw - 34px));
  height:100dvh;
  transform:translateX(104%);
  transition:transform .22s ease;
  pointer-events:none;
}
.client-profile-panel.is-open { transform:translateX(0); pointer-events:auto; }
.client-profile-shell {
  display:flex;
  flex-direction:column;
  height:100%;
  background:#fff;
  border-left:1px solid #e3e9f1;
  box-shadow:-22px 0 48px rgba(20,39,67,.14);
}
.client-profile-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:20px 20px 17px;
  border-bottom:1px solid #e9eef4;
  background:#fff;
}
.client-profile-heading { display:flex; align-items:center; gap:12px; min-width:0; }
.client-profile-avatar { width:42px; height:42px; flex-basis:42px; border-radius:12px; font-size:12px; }
.client-profile-heading > div { min-width:0; }
.client-profile-title-row { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.client-profile-title-row h2 { margin:0; max-width:245px; overflow:hidden; color:#17253a; font-size:17px; letter-spacing:-.025em; text-overflow:ellipsis; white-space:nowrap; }
.client-profile-title-row .status-pill { font-size:8px; }
.client-profile-heading p { margin:4px 0 0; color:#8491a2; font-size:9px; }
.client-profile-close {
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  flex:0 0 34px;
  padding:0;
  border:1px solid #e1e7ef;
  border-radius:10px;
  color:#627287;
  background:#fff;
  font-size:20px;
  line-height:1;
  cursor:pointer;
}
.client-profile-close:hover { background:#f7f9fc; }
.client-profile-content { flex:1; overflow:auto; padding:18px 20px 28px; }
.client-profile-actions { display:grid; grid-template-columns:1fr 1fr auto; gap:8px; margin-bottom:17px; }
.client-profile-actions[hidden] { display:none !important; }
.client-profile-actions .button { min-height:37px; padding:8px 10px; font-size:9px; white-space:nowrap; }
.client-contact-action { gap:6px; text-decoration:none; }
.client-profile-section {
  padding:17px;
  border:1px solid #e5ebf2;
  border-radius:14px;
  background:#fff;
}
.client-profile-section[hidden],
.client-profile-edit-form[hidden] { display:none !important; }
.client-profile-section-heading { margin-bottom:14px; }
.client-profile-section-heading h3 { margin:0 0 4px; color:#263a55; font-size:12px; letter-spacing:-.015em; }
.client-profile-section-heading p { margin:0; color:#8491a2; font-size:8px; line-height:1.5; }
.client-profile-data { display:grid; grid-template-columns:1fr 1fr; gap:0; margin:0; }
.client-profile-data > div { min-width:0; padding:11px 0; border-top:1px solid #edf1f5; }
.client-profile-data > div:nth-child(odd):not(.client-profile-data-full) { padding-right:14px; }
.client-profile-data > div:nth-child(even) { padding-left:14px; border-left:1px solid #edf1f5; }
.client-profile-data > div:nth-child(-n+2) { border-top:0; padding-top:2px; }
.client-profile-data-full { grid-column:1/-1; }
.client-profile-data dt { margin:0 0 5px; color:#8a96a6; font-size:8px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.client-profile-data dd { margin:0; color:#30445e; font-size:10px; font-weight:800; line-height:1.45; overflow-wrap:anywhere; }
.client-profile-data-full dd { font-weight:650; white-space:pre-wrap; }
.client-profile-edit-form .clients-form-grid { gap:11px; }
.client-profile-edit-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:17px; padding-top:15px; border-top:1px solid #edf1f5; }
.client-profile-edit-actions .button { min-height:36px; padding:8px 12px; font-size:9px; }
.client-status-help { display:block; margin-top:5px; color:#8794a5; font-size:8px; line-height:1.45; }
body.client-profile-open { overflow:hidden; }

@media (max-width:980px) {
  .client-profile-link { font-size:12px; }
}

@media (max-width:760px) {
  .clients-toolbar-actions { align-items:stretch; flex-direction:column; width:100%; }
  .clients-status-filter, .clients-status-filter select { width:100%; }
  .clients-status-filter select { min-height:44px; font-size:10px; }
  .client-profile-panel { width:100vw; }
  .client-profile-shell { border-left:0; }
  .client-profile-header { padding:17px 15px 14px; }
  .client-profile-content { padding:15px 15px 24px; }
  .client-profile-title-row h2 { max-width:210px; font-size:19px; }
  .client-profile-heading p { font-size:10px; }
  .client-profile-actions { grid-template-columns:1fr 1fr; }
  .client-profile-actions #cliente-perfil-editar { grid-column:1/-1; }
  .client-profile-actions .button { min-height:42px; font-size:10px; }
  .client-profile-section { padding:15px; }
  .client-profile-section-heading h3 { font-size:13px; }
  .client-profile-section-heading p { font-size:9px; }
  .client-profile-data dt { font-size:9px; }
  .client-profile-data dd { font-size:11px; }
  .client-profile-edit-actions { flex-direction:column-reverse; }
  .client-profile-edit-actions .button { width:100%; min-height:42px; font-size:10px; }
}

@media (max-width:430px) {
  .client-profile-header { align-items:flex-start; }
  .client-profile-avatar { width:40px; height:40px; flex-basis:40px; }
  .client-profile-title-row { align-items:flex-start; flex-direction:column; gap:5px; }
  .client-profile-title-row h2 { max-width:220px; }
  .client-profile-data { grid-template-columns:1fr; }
  .client-profile-data > div,
  .client-profile-data > div:nth-child(odd):not(.client-profile-data-full),
  .client-profile-data > div:nth-child(even) { padding:10px 0; border-left:0; border-top:1px solid #edf1f5; }
  .client-profile-data > div:first-child { border-top:0; padding-top:2px; }
  .client-profile-data > div:nth-child(2) { border-top:1px solid #edf1f5; padding-top:10px; }
  .client-profile-data-full { grid-column:auto; }
}

/* =========================================================
   Etapa 7.2C — Próximos agendamentos, histórico e códigos
   ========================================================= */
.client-profile-section + .client-profile-section { margin-top:12px; }
.client-section-heading-row {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.client-section-heading-row > div { min-width:0; }
.client-section-count {
  flex:0 0 auto;
  padding:5px 8px;
  border-radius:999px;
  color:#61738a;
  background:#f1f5f9;
  font-size:8px;
  font-weight:850;
  white-space:nowrap;
}
.client-appointments-section { overflow:hidden; }
.client-located-section {
  border-color:#bfd6fb;
  background:linear-gradient(180deg,#f8fbff,#fff);
  box-shadow:0 0 0 3px rgba(37,99,235,.045);
}
.client-appointment-list { display:grid; gap:9px; }
.client-appointment-card {
  overflow:hidden;
  border:1px solid #e5ebf2;
  border-radius:12px;
  background:#fff;
  transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.client-appointment-card:hover { border-color:#d4dfec; box-shadow:0 5px 16px rgba(29,49,77,.055); }
.client-appointment-card.is-highlighted {
  border-color:#9fc0f3;
  box-shadow:0 0 0 3px rgba(37,99,235,.075);
}
.client-appointment-main {
  display:grid;
  grid-template-columns:72px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  padding:11px 12px;
}
.client-appointment-datetime { display:grid; gap:2px; }
.client-appointment-datetime strong { color:#20334c; font-size:9px; line-height:1.2; }
.client-appointment-datetime span { color:#2563a9; font-size:13px; font-weight:900; letter-spacing:-.02em; }
.client-appointment-copy { min-width:0; display:grid; gap:3px; }
.client-appointment-copy strong { overflow:hidden; color:#253a55; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.client-appointment-copy small { overflow:hidden; color:#7b899b; font-size:8px; text-overflow:ellipsis; white-space:nowrap; }
.client-appointment-main .agenda-status-chip { justify-self:end; max-width:120px; text-align:center; white-space:normal; line-height:1.2; }
.client-appointment-meta {
  display:flex;
  align-items:center;
  gap:9px;
  min-height:37px;
  padding:7px 10px 7px 12px;
  border-top:1px solid #edf1f5;
  background:#fbfcfe;
}
.client-appointment-meta > span { margin-left:auto; color:#52647a; font-size:8px; font-weight:850; }
.client-booking-code { display:flex; align-items:center; gap:5px; min-width:0; }
.client-booking-code > span { color:#8996a7; font-size:7px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.client-booking-code strong {
  color:#243a56;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:9px;
  letter-spacing:.055em;
}
.client-booking-code button {
  padding:3px 6px;
  border:1px solid #d9e3ef;
  border-radius:6px;
  color:#315f9b;
  background:#fff;
  font:inherit;
  font-size:7px;
  font-weight:850;
  cursor:pointer;
}
.client-booking-code button:hover { border-color:#b8cce6; background:#f5f9ff; }
.client-open-agenda {
  margin-left:auto;
  color:#2563a9;
  font-size:8px;
  font-weight:850;
  text-decoration:none;
  white-space:nowrap;
}
.client-open-agenda:hover { text-decoration:underline; text-underline-offset:2px; }
.client-section-loading {
  min-height:72px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:7px;
  color:#8391a3;
  font-size:8px;
}
.client-section-loading[hidden] { display:none !important; }
.client-section-loading > span {
  width:19px;
  height:19px;
  border:2px solid #dfe7f0;
  border-top-color:#2f6fe4;
  border-radius:50%;
  animation:venixClientsSpin .75s linear infinite;
}
.client-section-empty {
  padding:13px 12px;
  border:1px dashed #dce5ef;
  border-radius:10px;
  color:#7d8b9d;
  background:#fafbfd;
  font-size:8px;
  text-align:center;
}
.client-section-empty[hidden] { display:none !important; }
.client-load-more {
  width:100%;
  min-height:32px !important;
  margin-top:10px;
  padding:6px 10px !important;
  font-size:8px !important;
}
.client-load-more[hidden] { display:none !important; }
.client-history-filter { flex:0 0 auto; }
.client-history-filter select {
  min-height:30px;
  padding:5px 24px 5px 8px;
  border:1px solid #dce4ee;
  border-radius:8px;
  outline:0;
  color:#42556e;
  background:#fff;
  font-size:8px;
  font-weight:800;
}
.client-history-filter select:focus { border-color:#a9c4ee; box-shadow:0 0 0 3px rgba(37,99,235,.07); }
.client-history-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:10px;
}
.client-history-footer > span { color:#7d8b9d; font-size:8px; font-weight:750; }
.client-history-footer .client-load-more { width:auto; min-width:110px; margin-top:0; }

@media (max-width:760px) {
  .client-section-count { font-size:9px; }
  .client-appointment-main { grid-template-columns:78px minmax(0,1fr); gap:10px; padding:12px; }
  .client-appointment-main .agenda-status-chip { grid-column:1/-1; justify-self:start; max-width:none; font-size:9px; }
  .client-appointment-datetime strong { font-size:10px; }
  .client-appointment-datetime span { font-size:15px; }
  .client-appointment-copy strong { font-size:11px; }
  .client-appointment-copy small { font-size:9px; }
  .client-appointment-meta { flex-wrap:wrap; gap:8px 10px; padding:9px 11px; }
  .client-booking-code > span { font-size:8px; }
  .client-booking-code strong { font-size:10px; }
  .client-booking-code button { min-height:27px; padding:4px 7px; font-size:8px; }
  .client-appointment-meta > span { margin-left:0; font-size:9px; }
  .client-open-agenda { margin-left:auto; font-size:9px; }
  .client-section-empty, .client-section-loading { font-size:9px; }
  .client-history-filter select { min-height:34px; font-size:9px; }
  .client-load-more { min-height:38px !important; font-size:9px !important; }
}

@media (max-width:430px) {
  .client-section-heading-row { align-items:stretch; flex-direction:column; gap:9px; }
  .client-section-count { align-self:flex-start; }
  .client-history-filter, .client-history-filter select { width:100%; }
  .client-appointment-main { grid-template-columns:70px minmax(0,1fr); }
  .client-appointment-meta { align-items:flex-start; flex-direction:column; }
  .client-open-agenda { margin-left:0; }
  .client-history-footer { align-items:stretch; flex-direction:column; }
  .client-history-footer .client-load-more { width:100%; }
}

/* =========================================================
   ETAPA 7.3A — Central de Notificações internas
   ========================================================= */
.venix-notification-center {
  position: relative;
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
}

.venix-notification-bell {
  position: relative;
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #dbe3ed;
  border-radius: 11px;
  background: #fff;
  color: #41536b;
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease, color .18s ease, transform .18s ease;
}
.venix-notification-bell:hover {
  border-color: #bfd3f7;
  background: #f7faff;
  color: #1d4ed8;
}
.venix-notification-bell:active { transform: scale(.97); }
.venix-notification-bell svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.venix-notification-badge {
  position: absolute;
  top: -5px;
  right: -6px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #fff;
  border-radius: 999px;
  background: #dc2626;
  color: #fff;
  font-size: 9px;
  font-weight: 800;
  line-height: 1;
}
.venix-notification-badge[hidden] { display: none !important; }

.venix-notification-overlay {
  position: fixed;
  inset: 0;
  z-index: 180;
  background: rgba(15, 23, 42, .22);
  opacity: 0;
  transition: opacity .22s ease;
}
.venix-notification-overlay.is-open { opacity: 1; }
.venix-notification-overlay[hidden] { display: none !important; }

.venix-notification-panel {
  position: fixed;
  z-index: 181;
  top: 0;
  right: 0;
  width: min(390px, calc(100vw - 24px));
  height: 100dvh;
  display: flex;
  flex-direction: column;
  border-left: 1px solid #e2e8f0;
  background: #fff;
  box-shadow: -18px 0 48px rgba(15, 23, 42, .12);
  transform: translateX(104%);
  visibility: hidden;
  transition: transform .24s ease, visibility .24s ease;
}
.venix-notification-panel.is-open {
  transform: translateX(0);
  visibility: visible;
}
.venix-notification-panel-header {
  min-height: 76px;
  padding: 18px 18px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  border-bottom: 1px solid #edf1f5;
}
.venix-notification-panel-header > div { min-width: 0; display: grid; gap: 3px; }
.venix-notification-panel-header strong { color: #17253a; font-size: 16px; }
.venix-notification-panel-header small { color: #7c8a9d; font-size: 10px; line-height: 1.4; }
.venix-notification-close {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #fff;
  color: #64748b;
  font-size: 23px;
  line-height: 1;
  cursor: pointer;
}
.venix-notification-close:hover { background: #f8fafc; color: #0f172a; }
.venix-notification-toolbar {
  min-height: 48px;
  padding: 10px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid #edf1f5;
  background: #fbfcfe;
}
.venix-notification-toolbar span { color: #64748b; font-size: 10px; font-weight: 700; }
.venix-notification-mark-all {
  border: 0;
  background: transparent;
  color: #2563eb;
  font-size: 10px;
  font-weight: 700;
  cursor: pointer;
  padding: 5px 0;
}
.venix-notification-mark-all:disabled { color: #94a3b8; cursor: default; }
.venix-notification-list {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.venix-notification-item {
  position: relative;
  display: grid;
  grid-template-columns: 4px minmax(0, 1fr);
  border-bottom: 1px solid #edf1f5;
  background: #fff;
}
.venix-notification-item.is-unread { background: #f7faff; }
.venix-notification-accent { background: transparent; }
.venix-notification-item.is-unread.type-new .venix-notification-accent { background: #2563eb; }
.venix-notification-item.is-unread.type-cancel .venix-notification-accent { background: #dc2626; }
.venix-notification-item.is-unread.type-reschedule .venix-notification-accent { background: #d97706; }
.venix-notification-content { padding: 15px 16px 14px 14px; min-width: 0; }
.venix-notification-item-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}
.venix-notification-item-top strong { color: #1e293b; font-size: 11px; line-height: 1.35; }
.venix-notification-item.is-unread .venix-notification-item-top strong { color: #0f172a; }
.venix-notification-item-top time { flex: 0 0 auto; color: #94a3b8; font-size: 9px; white-space: nowrap; }
.venix-notification-content p { margin: 5px 0 0; color: #526176; font-size: 10px; line-height: 1.45; }
.venix-notification-detail { display: block; margin-top: 5px; color: #7c8a9d; font-size: 9px; line-height: 1.4; }
.venix-notification-detail[hidden] { display: none !important; }
.venix-notification-actions { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 8px 12px; }
.venix-notification-actions button {
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 9px;
  font-weight: 800;
  cursor: pointer;
}
.venix-notification-open { color: #2563eb; }
.venix-notification-read { color: #64748b; }
.venix-notification-actions button:hover { text-decoration: underline; }
.venix-notification-empty {
  min-height: 260px;
  padding: 44px 28px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.venix-notification-empty > span {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 12px;
  border-radius: 50%;
  background: #eff6ff;
  color: #2563eb;
  font-size: 18px;
  font-weight: 800;
}
.venix-notification-empty strong { color: #1e293b; font-size: 13px; }
.venix-notification-empty small { max-width: 270px; margin-top: 5px; color: #7c8a9d; font-size: 10px; line-height: 1.5; }

.venix-notification-toast-root {
  position: fixed;
  z-index: 190;
  top: 82px;
  right: 20px;
  width: min(340px, calc(100vw - 28px));
  display: grid;
  gap: 9px;
  pointer-events: none;
}
.venix-notification-toast {
  width: 100%;
  padding: 13px 14px;
  display: grid;
  gap: 3px;
  text-align: left;
  border: 1px solid #dbe4ef;
  border-left: 4px solid #2563eb;
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 16px 38px rgba(15, 23, 42, .15);
  opacity: 0;
  transform: translateY(-8px) scale(.98);
  transition: opacity .2s ease, transform .2s ease;
  pointer-events: auto;
  cursor: pointer;
}
.venix-notification-toast.type-cancel { border-left-color: #dc2626; }
.venix-notification-toast.type-reschedule { border-left-color: #d97706; }
.venix-notification-toast.is-visible { opacity: 1; transform: translateY(0) scale(1); }
.venix-notification-toast strong { color: #17253a; font-size: 11px; }
.venix-notification-toast span { color: #526176; font-size: 10px; line-height: 1.4; }
.venix-notification-toast small { color: #8794a6; font-size: 9px; }

/* Configurações — som opcional por usuário */
.notification-settings-card { align-self: start; }
.notification-sound-setting {
  margin-top: 14px;
  padding: 15px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border: 1px solid #e5eaf1;
  border-radius: 14px;
  background: #fbfcfe;
}
.notification-sound-copy { min-width: 0; display: grid; gap: 4px; }
.notification-sound-copy strong { color: #1e293b; font-size: 11px; }
.notification-sound-copy small { color: #748296; font-size: 9px; line-height: 1.45; }
.notification-sound-switch {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  cursor: pointer;
}
.notification-sound-switch input { position: absolute; opacity: 0; pointer-events: none; }
.notification-sound-switch span {
  position: relative;
  width: 42px;
  height: 24px;
  border-radius: 999px;
  background: #cbd5e1;
  transition: background .18s ease;
}
.notification-sound-switch span::after {
  content: '';
  position: absolute;
  top: 3px;
  left: 3px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 2px 7px rgba(15, 23, 42, .18);
  transition: transform .18s ease;
}
.notification-sound-switch input:checked + span { background: #2563eb; }
.notification-sound-switch input:checked + span::after { transform: translateX(18px); }
.notification-sound-switch b { min-width: 62px; color: #526176; font-size: 9px; }
.notification-volume-setting {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #edf1f5;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 150px;
  align-items: center;
  gap: 16px;
}
.notification-volume-setting label { min-width: 0; display: grid; gap: 4px; }
.notification-volume-setting label strong { color: #1e293b; font-size: 11px; }
.notification-volume-setting label small { color: #748296; font-size: 9px; line-height: 1.45; }
.notification-volume-setting .form-control { width: 100%; min-width: 0; }
.notification-settings-actions { margin-top: 13px; display: flex; justify-content: flex-end; gap: 9px; }
.notification-browser-note { display: block; margin-top: 10px; color: #8794a6; font-size: 9px; line-height: 1.45; }

@media (max-width: 760px) {
  .venix-notification-bell { width: 36px; height: 36px; border-radius: 10px; }
  .venix-notification-panel {
    top: auto;
    right: 0;
    bottom: 0;
    width: 100%;
    height: min(72dvh, 620px);
    border-left: 0;
    border-top: 1px solid #e2e8f0;
    border-radius: 18px 18px 0 0;
    box-shadow: 0 -20px 48px rgba(15, 23, 42, .16);
    transform: translateY(104%);
  }
  .venix-notification-panel.is-open { transform: translateY(0); }
  .venix-notification-panel-header { min-height: 70px; padding: 16px; }
  .venix-notification-panel-header strong { font-size: 17px; }
  .venix-notification-panel-header small { font-size: 11px; }
  .venix-notification-toolbar { padding: 10px 16px; }
  .venix-notification-toolbar span,
  .venix-notification-mark-all { font-size: 11px; }
  .venix-notification-item-top strong { font-size: 12px; }
  .venix-notification-content p { font-size: 11px; }
  .venix-notification-detail { font-size: 10px; }
  .venix-notification-actions button { font-size: 10px; }
  .venix-notification-toast-root { top: 72px; left: 14px; right: 14px; width: auto; }
  .notification-sound-setting { align-items: flex-start; flex-direction: column; }
  .notification-sound-switch { width: 100%; justify-content: space-between; }
  .notification-volume-setting { grid-template-columns: 1fr; gap: 9px; }
  .notification-volume-setting label strong { font-size: 12px; }
  .notification-volume-setting label small { font-size: 10px; }
  .notification-settings-actions { justify-content: stretch; }
  .notification-settings-actions .button { flex: 1 1 0; }
  .notification-sound-copy strong { font-size: 12px; }
  .notification-sound-copy small,
  .notification-browser-note { font-size: 10px; }
}

/* =========================================================
   ETAPA 7.3B — WhatsApp semiautomático
   ========================================================= */
.agenda-contact-button.whatsapp-confirmation {
  color:#116a42;
  border-color:#bfe2ce;
  background:#eaf8f0;
  box-shadow:0 1px 2px rgba(19,111,68,.05);
}
.agenda-contact-button.whatsapp-confirmation:hover {
  border-color:#94cbaa;
  background:#def3e7;
}
.client-appointment-actions {
  display:flex;
  align-items:center;
  gap:9px;
  margin-left:auto;
}
.client-appointment-actions .client-open-agenda { margin-left:0; }
.client-send-confirmation {
  display:inline-flex;
  align-items:center;
  min-height:27px;
  padding:5px 8px;
  border:1px solid #c8e7d5;
  border-radius:7px;
  color:#15734a;
  background:#f1faf5;
  font-size:8px;
  font-weight:850;
  line-height:1.2;
  text-decoration:none;
  white-space:nowrap;
}
.client-send-confirmation:hover {
  border-color:#9dd2b3;
  background:#e8f7ee;
}
@media (max-width:760px) {
  .agenda-contact-button.whatsapp-confirmation { flex:1 1 100%; justify-content:center; }
  .client-appointment-actions { gap:8px; margin-left:auto; }
  .client-send-confirmation { min-height:30px; padding:6px 8px; font-size:9px; }
}
@media (max-width:430px) {
  .client-appointment-actions { width:100%; margin-left:0; align-items:stretch; flex-direction:column; }
  .client-send-confirmation { justify-content:center; width:100%; }
  .client-appointment-actions .client-open-agenda { align-self:flex-start; }
}

/* Etapa 7.4A — Financeiro: configuração e conclusão do atendimento */
.finance-completion-settings-card .online-confirmation-options {
  margin-top: 10px;
}

.finance-dialog-shell {
  width: min(560px, calc(100vw - 32px));
}

.finance-summary-card {
  display: grid;
  grid-template-columns: 1.25fr 1.25fr .8fr;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--border-color, #e2e8f0);
  border-radius: 14px;
  background: var(--surface-soft, #f8fafc);
  margin-bottom: 16px;
}

.finance-summary-card div {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.finance-summary-card span,
.finance-total-line span {
  font-size: 12px;
  color: var(--text-muted, #64748b);
}

.finance-summary-card strong {
  font-size: 14px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.finance-values-grid {
  margin-bottom: 12px;
}

.finance-total-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 12px;
  background: var(--surface-soft, #f8fafc);
  margin-bottom: 14px;
}

.finance-total-line strong {
  font-size: 18px;
}

.finance-dialog-note {
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--surface-soft, #f8fafc);
  color: var(--text-muted, #64748b);
  font-size: 13px;
  line-height: 1.45;
}

.finance-dialog-actions {
  margin-top: 16px;
}

.finance-dialog-actions #agenda-finance-later[hidden] {
  display: none !important;
}

@media (max-width: 720px) {
  .finance-summary-card {
    grid-template-columns: 1fr;
  }

  .finance-summary-card strong {
    white-space: normal;
  }

  .finance-dialog-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .finance-dialog-actions .button {
    width: 100%;
  }
}

/* Etapa 7.4B — Painel Financeiro */
.finance-main {
  display: grid;
  gap: 18px;
}

.finance-heading {
  margin-bottom: 0;
}

.finance-kicker,
.finance-section-kicker,
.finance-dialog-kicker {
  display: inline-block;
  margin-bottom: 5px;
  color: var(--blue);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .12em;
}

.finance-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.finance-metric-card {
  min-height: 118px;
  padding: 18px;
  display: flex;
  align-items: flex-start;
  gap: 13px;
  border: 1px solid var(--border);
  border-radius: 17px;
  background: #fff;
  box-shadow: var(--shadow-sm);
}

.finance-summary-icon {
  display: grid;
  place-items: center;
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  border-radius: 12px;
  background: #eef4ff;
  color: var(--blue);
  font-size: 17px;
  font-weight: 900;
}

.finance-summary-received-month .finance-summary-icon { background: #eefbf8; color: #0f8c7e; }
.finance-summary-receivable .finance-summary-icon { background: #fff8e8; color: #a76a05; }
.finance-summary-courtesy .finance-summary-icon { background: #f7f1ff; color: #7c4bb3; }

.finance-metric-card > div {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.finance-metric-card span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.finance-metric-card strong {
  color: var(--navy);
  font-size: 23px;
  letter-spacing: -.035em;
  line-height: 1.15;
}

.finance-metric-card small {
  color: #8390a2;
  font-size: 10px;
  line-height: 1.35;
}

.finance-pending-card,
.finance-history-card {
  padding: 20px;
}

.finance-section-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 16px;
}

.finance-section-heading h2 {
  margin: 0;
  color: var(--navy);
  font-size: 18px;
  letter-spacing: -.02em;
}

.finance-section-heading p {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.finance-pending-summary {
  min-width: 125px;
  padding: 10px 12px;
  display: grid;
  justify-items: end;
  gap: 2px;
  border-radius: 12px;
  background: var(--surface-soft);
  border: 1px solid var(--border);
}

.finance-pending-summary strong {
  color: var(--navy);
  font-size: 21px;
  line-height: 1;
}

.finance-pending-summary small {
  color: var(--muted);
  font-size: 9px;
}

.finance-loading {
  min-height: 62px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: var(--muted);
}

.finance-loading[hidden] { display: none !important; }

.finance-loading > span {
  width: 18px;
  height: 18px;
  border: 2px solid #dbe4ef;
  border-top-color: var(--blue);
  border-radius: 50%;
  animation: spin .75s linear infinite;
}

.finance-pending-list,
.finance-history-list {
  display: grid;
  gap: 9px;
}

.finance-pending-item {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(130px, .65fr) auto;
  align-items: center;
  gap: 16px;
  padding: 13px 14px;
  border: 1px solid var(--border);
  border-radius: 13px;
  background: #fff;
}

.finance-pending-main,
.finance-pending-money {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.finance-pending-date {
  color: var(--blue);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .03em;
}

.finance-pending-main strong {
  overflow: hidden;
  color: var(--navy);
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.finance-pending-main small,
.finance-pending-money span,
.finance-pending-money small {
  color: var(--muted);
  font-size: 10px;
}

.finance-pending-money strong {
  color: var(--navy);
  font-size: 14px;
}

.finance-pending-action {
  display: flex;
  justify-content: flex-end;
}

.finance-pending-footer {
  margin-top: 12px;
  display: flex;
  justify-content: center;
}

.finance-empty-state {
  min-height: 88px;
  padding: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  border: 1px dashed var(--border-strong);
  border-radius: 13px;
  background: var(--surface-soft);
  text-align: left;
}

.finance-empty-state[hidden] { display: none !important; }

.finance-empty-state > span {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #eaf8f0;
  color: var(--success);
  font-weight: 900;
}

.finance-empty-state div { display: grid; gap: 2px; }
.finance-empty-state strong { color: var(--navy); font-size: 12px; }
.finance-empty-state small { color: var(--muted); font-size: 10px; }

.finance-period-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 13px;
}

.finance-period-tab {
  min-height: 34px;
  padding: 7px 12px;
  border: 1px solid var(--border);
  border-radius: 9px;
  background: #fff;
  color: var(--muted);
  cursor: pointer;
  font-size: 11px;
  font-weight: 750;
}

.finance-period-tab:hover { border-color: #b9cae1; color: var(--navy); }
.finance-period-tab.active { border-color: #b9d1ff; background: #eef4ff; color: #1d57c7; }

.finance-custom-period {
  margin-bottom: 13px;
  padding: 12px;
  display: grid;
  grid-template-columns: minmax(160px, 1fr) minmax(160px, 1fr) auto;
  align-items: end;
  gap: 10px;
  border: 1px solid #dbe7f7;
  border-radius: 12px;
  background: #f8fbff;
}

.finance-custom-period[hidden] { display: none !important; }
.finance-custom-period .field { margin: 0; }
.finance-custom-period label { font-size: 10px; }

.finance-filters {
  display: grid;
  grid-template-columns: minmax(155px, 1fr) minmax(150px, .9fr) minmax(175px, 1fr) auto;
  align-items: end;
  gap: 10px;
  padding: 12px;
  border-radius: 12px;
  background: var(--surface-soft);
  border: 1px solid var(--border);
}

.finance-filters label {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.finance-filters label > span {
  color: var(--muted);
  font-size: 9px;
  font-weight: 800;
}

.finance-filters .form-control,
.finance-custom-period .form-control {
  min-height: 38px;
  font-size: 11px;
}

.finance-clear-filters {
  min-height: 38px;
  white-space: nowrap;
}

.finance-history-meta {
  margin: 13px 1px 9px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  color: var(--muted);
  font-size: 10px;
}

.finance-history-meta span { font-weight: 750; color: #526176; }

.finance-history-item {
  display: grid;
  grid-template-columns: minmax(210px, 1.7fr) minmax(105px, .7fr) minmax(105px, .7fr) minmax(105px, .7fr) minmax(145px, .85fr);
  align-items: center;
  gap: 12px;
  padding: 13px 14px;
  border: 1px solid var(--border);
  border-radius: 13px;
  background: #fff;
}

.finance-history-client,
.finance-history-value {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.finance-history-client strong {
  overflow: hidden;
  color: var(--navy);
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.finance-history-client span {
  overflow: hidden;
  color: #42536a;
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.finance-history-client small,
.finance-history-value span,
.finance-history-value small {
  color: var(--muted);
  font-size: 9px;
}

.finance-history-value strong {
  color: var(--navy);
  font-size: 12px;
}

.finance-history-status {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 7px;
}

.finance-status {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 4px 8px;
  border-radius: 999px;
  font-size: 8px;
  font-weight: 850;
  line-height: 1.2;
  white-space: nowrap;
}

.finance-status.status-pago { color: #15734a; background: #eaf8f0; }
.finance-status.status-pendente { color: #9a6400; background: #fff5d9; }
.finance-status.status-pendente_registro { color: #84520a; background: #fff8e8; }
.finance-status.status-parcial { color: #2459a8; background: #eaf2ff; }
.finance-status.status-cortesia { color: #7442a5; background: #f4ebff; }
.finance-status.status-estornado { color: #a13c45; background: #ffedef; }

.finance-register-button {
  min-height: 30px;
  padding: 6px 9px;
  font-size: 9px;
  white-space: nowrap;
}

.finance-pagination {
  margin-top: 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.finance-pagination[hidden] { display: none !important; }
.finance-pagination span { color: var(--muted); font-size: 10px; font-weight: 750; }

.finance-payment-modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  background: rgba(5, 20, 40, .48);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

.finance-payment-modal[hidden] { display: none !important; }

body.modal-open { overflow: hidden; }

.finance-payment-card {
  position: relative;
  width: min(480px, calc(100vw - 30px));
  max-height: calc(100dvh - 36px);
  overflow: auto;
  margin: 0;
  padding: 22px;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(5, 20, 40, .24);
}

.finance-payment-heading h2 {
  margin: 0;
  color: var(--navy);
  font-size: 20px;
}

.finance-payment-heading p {
  margin: 5px 28px 15px 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45;
}

.finance-payment-context {
  margin-bottom: 14px;
  padding: 12px 13px;
  display: grid;
  gap: 3px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface-soft);
}

.finance-payment-context strong { color: var(--navy); font-size: 13px; }
.finance-payment-context span { color: #42536a; font-size: 11px; }
.finance-payment-context small { color: var(--muted); font-size: 9px; }

.finance-payment-values {
  margin-bottom: 13px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.finance-payment-values > div,
.finance-payment-values > label {
  min-width: 0;
  padding: 10px;
  display: grid;
  gap: 4px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
}

.finance-payment-values span { color: var(--muted); font-size: 9px; font-weight: 750; }
.finance-payment-values strong { color: var(--navy); font-size: 14px; }
.finance-payment-values .form-control { min-height: 35px; font-size: 11px; }
.finance-payment-values .finance-payment-total { border-color: #cddcff; background: #f4f7ff; }
.finance-payment-total strong { color: #1d57c7; font-size: 17px; }

.finance-payment-card .field { margin-bottom: 10px; }
.finance-payment-card .field label { font-size: 10px; }
.finance-payment-card .field .form-control { min-height: 39px; font-size: 11px; }
.finance-payment-card .field[hidden] { display: none !important; }

.finance-payment-actions {
  margin-top: 14px;
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

@media (max-width: 1180px) {
  .finance-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .finance-history-item {
    grid-template-columns: minmax(200px, 1.6fr) repeat(3, minmax(90px, .7fr));
  }
  .finance-history-status { grid-column: 1 / -1; justify-content: flex-start; padding-top: 3px; }
}

@media (max-width: 860px) {
  .finance-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .finance-clear-filters { width: 100%; }
  .finance-pending-item { grid-template-columns: minmax(0, 1fr) auto; }
  .finance-pending-action { grid-column: 1 / -1; justify-content: flex-start; }
}

@media (max-width: 720px) {
  .finance-main { gap: 13px; }
  .finance-summary-grid { grid-template-columns: 1fr 1fr; gap: 9px; }
  .finance-metric-card { min-height: 104px; padding: 13px; gap: 9px; border-radius: 14px; }
  .finance-summary-icon { width: 32px; height: 32px; flex-basis: 32px; font-size: 14px; border-radius: 10px; }
  .finance-metric-card strong { font-size: 18px; }
  .finance-metric-card span { font-size: 10px; }
  .finance-metric-card small { font-size: 8px; }
  .finance-pending-card,
  .finance-history-card { padding: 14px; }
  .finance-section-heading { align-items: stretch; flex-direction: column; gap: 10px; }
  .finance-pending-summary { justify-items: start; width: fit-content; }
  .finance-pending-item { grid-template-columns: 1fr; gap: 10px; }
  .finance-pending-action { grid-column: auto; }
  .finance-pending-action .button { width: 100%; }
  .finance-period-tabs { display: grid; grid-template-columns: 1fr 1fr; }
  .finance-period-tab { width: 100%; }
  .finance-custom-period { grid-template-columns: 1fr; }
  .finance-custom-period .button { width: 100%; }
  .finance-filters { grid-template-columns: 1fr; }
  .finance-history-meta { align-items: flex-start; flex-direction: column; }
  .finance-history-item {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding: 12px;
  }
  .finance-history-client { grid-column: 1 / -1; padding-bottom: 5px; border-bottom: 1px solid var(--border); }
  .finance-history-status { grid-column: 1 / -1; justify-content: flex-start; padding-top: 5px; }
  .finance-payment-card { padding: 18px 14px; }
  .finance-payment-values { grid-template-columns: 1fr 1fr; }
  .finance-payment-actions { display: grid; grid-template-columns: 1fr; }
  .finance-payment-actions .button { width: 100%; }
}

@media (max-width: 440px) {
  .finance-summary-grid { grid-template-columns: 1fr; }
  .finance-metric-card { min-height: auto; }
  .finance-history-item { grid-template-columns: 1fr; }
  .finance-history-client,
  .finance-history-status { grid-column: auto; }
  .finance-history-value { padding: 7px 0; border-bottom: 1px solid #edf1f6; }
  .finance-payment-values { grid-template-columns: 1fr; }
}

/* Etapa 7.4B.1 — modal financeiro: central no desktop e painel inferior no celular */
@media (max-width: 720px) {
  .finance-payment-modal {
    align-items: flex-end;
    padding: 0;
    background: rgba(5, 20, 40, .52);
  }

  .finance-payment-card {
    width: 100%;
    max-width: none;
    max-height: min(88dvh, 760px);
    padding: 20px 18px calc(20px + env(safe-area-inset-bottom));
    border-radius: 20px 20px 0 0;
  }
}

/* Etapa 7.4B.2 — organização da tela Financeiro com minimizadores */
.finance-section-actions,
.finance-history-heading-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
}

.finance-collapse-toggle {
  min-height: 38px;
  padding: 8px 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
  color: #526176;
  cursor: pointer;
  font: inherit;
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap;
  transition: border-color .16s ease, background .16s ease, color .16s ease;
}

.finance-collapse-toggle:hover {
  border-color: #b9cae1;
  background: #f8fbff;
  color: var(--navy);
}

.finance-collapse-toggle:focus-visible,
.finance-filter-toggle:focus-visible {
  outline: 3px solid rgba(38, 103, 224, .18);
  outline-offset: 2px;
}

.finance-collapse-icon {
  display: inline-grid;
  place-items: center;
  width: 18px;
  height: 18px;
  color: var(--blue);
  font-size: 13px;
  font-weight: 900;
  line-height: 1;
}

.finance-collapsible-body[hidden],
.finance-filters-panel[hidden] {
  display: none !important;
}

.finance-collapsible-card.is-collapsed {
  padding-top: 15px;
  padding-bottom: 15px;
}

.finance-collapsible-card.is-collapsed .finance-section-heading {
  margin-bottom: 0;
  align-items: center;
}

.finance-collapsible-card.is-collapsed .finance-section-heading p {
  display: none;
}

.finance-history-compact-summary {
  max-width: 240px;
  color: var(--muted);
  font-size: 9px;
  font-weight: 750;
  line-height: 1.3;
  text-align: right;
}

.finance-filter-toolbar {
  margin-bottom: 12px;
}

.finance-filter-toggle {
  width: 100%;
  min-height: 50px;
  padding: 9px 12px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface-soft);
  color: var(--navy);
  cursor: pointer;
  font: inherit;
  text-align: left;
  transition: border-color .16s ease, background .16s ease;
}

.finance-filter-toggle:hover,
.finance-filter-toggle.is-open {
  border-color: #c7d7eb;
  background: #f7faff;
}

.finance-filter-toggle-icon {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 9px;
  background: #eaf2ff;
  color: #2459a8;
  font-size: 14px;
  font-weight: 900;
}

.finance-filter-toggle-copy {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.finance-filter-toggle-copy strong {
  color: var(--navy);
  font-size: 11px;
}

.finance-filter-toggle-copy small {
  overflow: hidden;
  color: var(--muted);
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.finance-filters-panel {
  margin-bottom: 13px;
  padding: 12px;
  border: 1px solid #dbe7f7;
  border-radius: 12px;
  background: #fbfdff;
}

.finance-filters-panel .finance-period-tabs {
  margin-bottom: 12px;
}

.finance-filters-panel .finance-filters {
  padding: 0;
  border: 0;
  background: transparent;
}

@media (max-width: 720px) {
  .finance-section-actions,
  .finance-history-heading-actions {
    width: 100%;
    justify-content: space-between;
  }

  .finance-section-actions .finance-pending-summary {
    flex: 1;
    min-width: 0;
  }

  .finance-history-heading-actions {
    align-items: center;
  }

  .finance-history-compact-summary {
    max-width: 62%;
    text-align: left;
  }

  .finance-collapse-label {
    display: none;
  }

  .finance-collapse-toggle {
    width: 38px;
    min-width: 38px;
    padding: 8px;
  }

  .finance-filters-panel {
    padding: 10px;
  }
}

/* Etapa 7.4C.1 — pagamentos avançados com divulgação progressiva */
.finance-payment-quick-summary {
  margin-bottom: 12px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.finance-payment-quick-summary > div {
  min-width: 0;
  padding: 10px;
  display: grid;
  gap: 4px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
}

.finance-payment-quick-summary span {
  color: var(--muted);
  font-size: 9px;
  font-weight: 750;
}

.finance-payment-quick-summary strong {
  color: var(--navy);
  font-size: 14px;
}

.finance-payment-quick-summary .finance-payment-balance {
  border-color: #cddcff;
  background: #f4f7ff;
}

.finance-payment-quick-summary .finance-payment-balance strong {
  color: #1d57c7;
  font-size: 16px;
}

.finance-primary-payment-row,
.finance-split-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: 8px;
  align-items: end;
}

.finance-primary-payment-row {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.finance-payment-helper {
  margin: -2px 0 10px;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.45;
}

.finance-more-toggle {
  width: 100%;
  min-height: 38px;
  margin: 2px 0 9px;
  padding: 8px 11px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface-soft);
  color: #42536a;
  font: inherit;
  font-size: 10px;
  font-weight: 800;
  cursor: pointer;
}

.finance-more-toggle:hover { border-color: #cbd8ee; background: #f7f9fc; }

.finance-advanced-panel {
  margin-bottom: 10px;
  padding: 11px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #fafbfd;
}

.finance-advanced-panel[hidden] { display: none !important; }
.finance-payment-values-advanced { margin-bottom: 9px; }

.finance-split-list { display: grid; gap: 7px; }

.finance-split-row {
  margin-bottom: 7px;
  padding: 8px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
}

.finance-split-row .field { margin-bottom: 0; }

.finance-split-remove {
  width: 32px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid #f0c7c7;
  border-radius: 9px;
  background: #fff7f7;
  color: #a33b3b;
  font-size: 17px;
  cursor: pointer;
}

.finance-split-add { margin: 0 0 10px; }

.finance-payment-preview {
  margin-top: 4px;
  padding: 9px 10px;
  border-radius: 10px;
  background: #f3f7ff;
  color: #35527a;
  font-size: 9px;
  line-height: 1.45;
}

#agenda-finance-receive-area[hidden],
#finance-payment-receive-area[hidden],
#agenda-finance-add-split[hidden],
#finance-payment-add-split[hidden] { display: none !important; }

@media (max-width: 720px) {
  .finance-payment-quick-summary { grid-template-columns: 1fr 1fr; }
  .finance-payment-quick-summary .finance-payment-balance { grid-column: 1 / -1; }
  .finance-primary-payment-row,
  .finance-split-row { grid-template-columns: 1fr; }
  .finance-split-remove { width: 100%; height: 34px; }
}


/* Etapa 7.4C.2 — ação contextual, histórico de pagamentos e estorno rastreável */
.finance-history-status {
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
}

.finance-history-action-link,
.finance-refund-link {
  padding: 2px 1px;
  border: 0;
  background: transparent;
  color: #2764d8;
  font: inherit;
  font-size: 9px;
  font-weight: 800;
  line-height: 1.25;
  cursor: pointer;
  text-decoration: none;
}

.finance-history-action-link:hover,
.finance-refund-link:hover {
  color: #174cae;
  text-decoration: underline;
}

.finance-payments-history-card {
  width: min(560px, calc(100vw - 30px));
}

.finance-payment-history-summary {
  margin-bottom: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.finance-payment-history-current-status {
  margin: 0 0 13px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 750;
}

.finance-payment-history-list {
  display: grid;
  gap: 9px;
}

.finance-payment-history-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #fff;
}

.finance-payment-history-main {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.finance-payment-history-main > strong {
  color: var(--navy);
  font-size: 14px;
}

.finance-payment-history-main > span {
  color: #42536a;
  font-size: 10px;
}

.finance-payment-history-main > small {
  color: var(--muted);
  font-size: 9px;
}

.finance-payment-history-side {
  display: grid;
  justify-items: end;
  gap: 6px;
}

.finance-payment-entry-status {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 4px 8px;
  border-radius: 999px;
  font-size: 8px;
  font-weight: 850;
  white-space: nowrap;
}

.finance-payment-entry-status.status-confirmado { color: #15734a; background: #eaf8f0; }
.finance-payment-entry-status.status-estornado { color: #a13c45; background: #ffedef; }
.finance-payment-entry-status.status-pendente { color: #9a6400; background: #fff5d9; }
.finance-payment-entry-status.status-falhou { color: #a13c45; background: #ffedef; }

.finance-payment-history-refund {
  margin-top: 6px;
  padding: 8px 9px;
  display: grid;
  gap: 2px;
  border-left: 3px solid #e5a6ad;
  border-radius: 6px;
  background: #fff6f7;
}

.finance-payment-history-refund strong {
  color: #8f3942;
  font-size: 9px;
}

.finance-payment-history-refund span {
  color: #7a5459;
  font-size: 9px;
  line-height: 1.4;
}

.finance-gateway-refund-note {
  max-width: 90px;
  color: var(--muted);
  font-size: 8px;
  text-align: right;
}

.finance-payment-history-empty {
  margin-top: 4px;
}

.finance-refund-modal {
  z-index: 1220;
  background: rgba(5, 20, 40, .58);
}

.finance-refund-card {
  position: relative;
  width: min(430px, calc(100vw - 30px));
  max-height: calc(100dvh - 36px);
  overflow: auto;
  padding: 22px;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(5, 20, 40, .28);
}

.finance-refund-summary {
  margin: 12px 0;
  padding: 11px 12px;
  display: grid;
  gap: 3px;
  border: 1px solid #f0c9cd;
  border-radius: 11px;
  background: #fff7f8;
}

.finance-refund-summary span {
  color: #8a5b60;
  font-size: 9px;
}

.finance-refund-summary strong {
  color: #873640;
  font-size: 14px;
}

.finance-refund-reason {
  min-height: 92px !important;
  resize: vertical;
}

.finance-refund-warning {
  margin: 7px 0 0;
  padding: 9px 10px;
  border-radius: 9px;
  background: #fff8e8;
  color: #73561b;
  font-size: 9px;
  line-height: 1.45;
}

@media (max-width: 1180px) {
  .finance-history-status {
    align-items: flex-start;
    justify-content: flex-start;
  }
}

@media (max-width: 720px) {
  .finance-history-status {
    align-items: flex-start;
  }

  .finance-payments-history-card,
  .finance-refund-card {
    width: 100%;
    max-width: none;
    max-height: min(88dvh, 760px);
    padding: 20px 18px calc(20px + env(safe-area-inset-bottom));
    border-radius: 20px 20px 0 0;
  }

  .finance-payment-history-summary {
    grid-template-columns: 1fr 1fr;
  }

  .finance-payment-history-summary > div:last-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 440px) {
  .finance-payment-history-item {
    grid-template-columns: 1fr;
  }

  .finance-payment-history-side {
    justify-items: start;
  }
}


.finance-payment-history-inline {
  width: fit-content;
  margin: 2px 0 5px;
  padding: 2px 0;
  border: 0;
  background: transparent;
  color: #2764d8;
  font-size: 9px;
  font-weight: 800;
  cursor: pointer;
}

.finance-payment-history-inline:hover {
  color: #174cae;
  text-decoration: underline;
}

.finance-refund-card .button.danger {
  border-color: #b53a3a;
  background: #b53a3a;
  color: #fff;
}

.finance-refund-card .button.danger:hover {
  border-color: #9f3030;
  background: #9f3030;
}

/* Etapa 8.1 — Planos e assinaturas */
.subscription-current-meta { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; margin-top:5px; color:#6d7d91; font-size:9px; }
.subscription-current-meta strong { font-size:inherit; color:#263a55; }
.subscription-status-pill { display:inline-flex; align-items:center; min-height:24px; padding:4px 9px; border-radius:999px; background:#edf3fb; color:#48627f; font-size:8px; font-weight:800; letter-spacing:.02em; }
.subscription-status-pill.trial { background:#eef4ff; color:#2d68e5; }
.subscription-status-pill.active { background:#eaf9f1; color:#167147; }
.subscription-status-pill.pending, .subscription-status-pill.past_due { background:#fff6df; color:#8a6417; }
.subscription-status-pill.cancel_scheduled, .subscription-status-pill.canceled, .subscription-status-pill.expired { background:#f5f0ff; color:#6d52b5; }
.subscription-history-section { margin-top:16px; }
.subscription-history-details { overflow:hidden; border:1px solid #e0e7f0; border-radius:14px; background:#fff; box-shadow:0 6px 20px rgba(15,31,58,.035); }
.subscription-history-details > summary { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:15px 18px; cursor:pointer; list-style:none; }
.subscription-history-details > summary::-webkit-details-marker { display:none; }
.subscription-history-details > summary > span:first-child { display:grid; gap:2px; }
.subscription-history-details > summary strong { color:#1b2a40; font-size:11px; }
.subscription-history-details > summary small { color:#8290a3; font-size:9px; }
.subscription-history-toggle { color:#2d68e5; font-size:9px; font-weight:800; }
.subscription-history-details[open] .subscription-history-toggle { font-size:0; }
.subscription-history-details[open] .subscription-history-toggle::after { content:'Ocultar histórico'; font-size:9px; }
.subscription-history-body { padding:0 18px 16px; border-top:1px solid #edf1f6; }
.subscription-history-list { display:grid; gap:0; margin:0; padding:4px 0 0; list-style:none; }
.subscription-history-item { display:grid; grid-template-columns:10px minmax(0,1fr) auto; gap:10px; align-items:start; padding:11px 0; border-bottom:1px solid #f0f3f7; }
.subscription-history-item:last-child { border-bottom:0; }
.subscription-history-dot { width:7px; height:7px; margin-top:5px; border-radius:50%; background:#4f7ee8; }
.subscription-history-item > div { display:grid; gap:2px; }
.subscription-history-item strong { color:#283b55; font-size:10px; }
.subscription-history-item small { color:#8290a3; font-size:9px; line-height:1.4; }
.subscription-history-item time { color:#8795a7; font-size:8px; white-space:nowrap; }
.subscription-history-empty { margin:14px 0 0; color:#8290a3; font-size:9px; }
@media (max-width: 720px) {
  .subscription-current-meta { align-items:flex-start; flex-direction:column; gap:6px; }
  .subscription-history-details > summary { align-items:flex-start; }
  .subscription-history-item { grid-template-columns:10px minmax(0,1fr); }
  .subscription-history-item time { grid-column:2; }
}

/* Etapa 8.2 — Regras de assinatura e acesso */
.subscription-main-action { min-width: 190px; }
.subscription-access-banner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin:0 0 18px;
  padding:14px 16px;
  border:1px solid #dce6f4;
  border-radius:14px;
  background:#f7faff;
  box-shadow:0 6px 18px rgba(18,33,58,.04);
}
.subscription-access-banner.atencao { border-color:#f0d998; background:#fffaf0; }
.subscription-access-banner.restrito { border-color:#efc7c7; background:#fff7f7; }
.subscription-access-copy { display:grid; gap:3px; min-width:0; }
.subscription-access-copy strong { color:#17273e; font-size:11px; }
.subscription-access-copy span { color:#6f7f92; font-size:9px; line-height:1.45; }
.subscription-access-banner.atencao .subscription-access-copy strong { color:#7a5a16; }
.subscription-access-banner.restrito .subscription-access-copy strong { color:#9c3434; }
.subscription-access-action { flex:0 0 auto; min-width:165px; }
.subscription-link-disabled { pointer-events:none; opacity:.48; cursor:not-allowed !important; }
.subscription-control-disabled { opacity:.52 !important; cursor:not-allowed !important; }
.subscription-restricted form[data-subscription-restricted="true"] { position:relative; }
.subscription-restricted form[data-subscription-restricted="true"] button[type="submit"] { opacity:.5; }

@media (max-width:720px) {
  .subscription-access-banner { align-items:stretch; flex-direction:column; gap:12px; padding:14px; }
  .subscription-access-action, .subscription-main-action { width:100%; min-width:0; }
}


/* Etapa 8.2.1 — refinamento visual do modo restrito */
.public-booking-unavailable-card {
  width:min(720px, 100%);
  margin:0 auto;
  padding:34px 30px;
  border:1px solid #dfe7f2;
  border-radius:20px;
  background:#fff;
  box-shadow:0 16px 42px rgba(10,31,58,.08);
  text-align:center;
}
.public-booking-unavailable-card[hidden] { display:none !important; }
.public-booking-unavailable-icon {
  display:grid;
  place-items:center;
  width:52px;
  height:52px;
  margin:0 auto 14px;
  border-radius:16px;
  background:#eef4ff;
  color:#2d68e5;
  font-size:24px;
  font-weight:900;
}
.public-booking-unavailable-card h2 {
  max-width:560px;
  margin:7px auto 8px;
  color:#13233b;
  font-size:24px;
  line-height:1.2;
}
.public-booking-unavailable-card > p:not(.public-eyebrow) {
  max-width:560px;
  margin:0 auto;
  color:#6d7d91;
  font-size:13px;
  line-height:1.55;
}
.public-booking-unavailable-actions {
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:10px;
  margin-top:22px;
}
.public-booking-unavailable-actions .booking-primary-button,
.public-booking-unavailable-actions .booking-secondary-button {
  min-width:210px;
  justify-content:center;
  text-decoration:none;
}
.public-booking-subscription-unavailable .public-booking-main { min-height:320px; }

@media (max-width:720px) {
  .public-booking-unavailable-card { padding:26px 18px; border-radius:16px; }
  .public-booking-unavailable-card h2 { font-size:20px; }
  .public-booking-unavailable-actions { flex-direction:column; }
  .public-booking-unavailable-actions .booking-primary-button,
  .public-booking-unavailable-actions .booking-secondary-button { width:100%; min-width:0; }
}

/* Em telas de notebook com pouca altura, compacta apenas os espaços verticais
   para manter o card do plano e a conta totalmente visíveis no menu lateral. */
@media (min-width:861px) and (max-height:760px) {
  .app-sidebar { padding:14px 12px 10px; overflow-y:auto; }
  .sidebar-brand { min-height:44px; padding:2px 8px 8px; margin-bottom:5px; }
  .sidebar-nav { gap:2px; }
  .sidebar-nav a { min-height:36px; padding:7px 10px; }
  .sidebar-spacer { min-height:6px; }
  .sidebar-plan-summary { gap:5px; margin-bottom:6px; padding:10px 12px; }
  .sidebar-plan-summary > b { margin-top:1px; padding-top:6px; }
  .sidebar-account { padding:8px 10px; }
}

/* ETAPA 8.2.2 — legibilidade do menu lateral
   Ajuste aprovado: somente tipografia dos itens principais no desktop. */
@media (min-width: 861px) {
  .app-layout-page .sidebar-nav a { font-size: 15px; }
}

/* =========================================================
   VENIX AGENDA — ETAPA 9.5: RESUMO WHATSAPP NO PAINEL
   ========================================================= */
.whatsapp-usage-panel {
  display: grid;
  gap: 18px;
  margin: 0 0 28px;
  padding: 22px 24px;
  border: 1px solid #dbe6f5;
  border-radius: 18px;
  background: linear-gradient(135deg, #ffffff 0%, #f7fbff 100%);
  box-shadow: var(--shadow-sm);
}
.whatsapp-usage-panel[hidden] { display: none !important; }
.whatsapp-usage-heading {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
}
.whatsapp-usage-icon {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  color: #0c6b55;
  background: #e8f8f2;
  font-size: 20px;
  font-weight: 900;
}
.whatsapp-usage-heading > div { display: grid; gap: 3px; }
.whatsapp-usage-heading > div > span {
  color: #6f7f93;
  font-size: 9px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.whatsapp-usage-heading h2 { margin: 0; color: var(--navy); font-size: 18px; }
.whatsapp-usage-heading p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.45; }
.whatsapp-connection-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 900;
  white-space: nowrap;
}
.whatsapp-connection-status.is-connected { color: #0c6b55; background: #e5f8f1; }
.whatsapp-connection-status.is-pending { color: #8a5a00; background: #fff4d8; }
.whatsapp-connection-status.is-error { color: #a13d3d; background: #fff0f0; }
.whatsapp-connection-status.is-off { color: #607085; background: #eef2f7; }
.whatsapp-usage-body { display: grid; gap: 10px; }
.whatsapp-usage-counter { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.whatsapp-usage-counter strong { color: var(--navy); font-size: 20px; line-height: 1; }
.whatsapp-usage-counter small { color: var(--muted); font-size: 10px; }
.whatsapp-usage-progress {
  height: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: #e8eef6;
}
.whatsapp-usage-progress i {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #24b988, #3478e5);
  transition: width .25s ease;
}
.whatsapp-usage-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  color: var(--muted);
  font-size: 9px;
}
.whatsapp-usage-footer strong { color: var(--navy); font-size: 10px; }
@media (max-width: 760px) {
  .whatsapp-usage-panel { padding: 18px; }
  .whatsapp-usage-heading { grid-template-columns: auto minmax(0, 1fr); }
  .whatsapp-connection-status { grid-column: 1 / -1; justify-self: start; }
  .whatsapp-usage-footer { align-items: flex-start; flex-direction: column; gap: 4px; }
}

/* =========================================================
   VENIX AGENDA — ETAPA 9.6.1: CENTRAL WHATSAPP EM CONFIGURAÇÕES
   ========================================================= */
.whatsapp-settings-shortcut { text-decoration: none; cursor: pointer; transition: transform .16s ease, box-shadow .16s ease; }
.whatsapp-settings-shortcut:hover { transform: translateY(-1px); box-shadow: 0 5px 14px rgba(15, 42, 78, .09); }
.whatsapp-settings-card {
  grid-column: 1 / -1;
  scroll-margin-top: 92px;
  overflow: hidden;
  padding: 0 !important;
  border-color: #dbe6f5;
  background: linear-gradient(135deg, #fff 0%, #f8fbff 100%);
}
.whatsapp-settings-card[hidden] { display: none !important; }
.whatsapp-settings-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 22px;
  border-bottom: 1px solid #e6edf6;
  background: linear-gradient(135deg, rgba(235,248,244,.76), rgba(245,249,255,.88));
}
.whatsapp-settings-title { display: flex; align-items: center; gap: 13px; min-width: 0; }
.whatsapp-settings-icon {
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  color: #0c6b55;
  background: #dcf6ec;
  font-size: 20px;
  font-weight: 900;
}
.whatsapp-settings-title > div { display: grid; gap: 3px; min-width: 0; }
.whatsapp-settings-title > div > span { color: #27836d; font-size: 9px; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; }
.whatsapp-settings-title h2 { margin: 0; color: var(--navy); font-size: 18px; }
.whatsapp-settings-title p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.45; }
.whatsapp-settings-content { display: grid; gap: 16px; padding: 20px 22px 22px; }
.whatsapp-settings-identity {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 15px;
  border: 1px solid #e2e9f2;
  border-radius: 13px;
  background: #fff;
}
.whatsapp-settings-identity > div { display: grid; gap: 3px; }
.whatsapp-settings-identity span,
.whatsapp-settings-metrics span { color: #758398; font-size: 8px; font-weight: 900; text-transform: uppercase; letter-spacing: .06em; }
.whatsapp-settings-identity strong { color: var(--navy); font-size: 13px; }
.whatsapp-settings-identity small { color: var(--muted); font-size: 9px; line-height: 1.45; }
.whatsapp-settings-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.whatsapp-settings-metrics > div {
  min-width: 0;
  display: grid;
  gap: 4px;
  padding: 13px 14px;
  border: 1px solid #e2e9f2;
  border-radius: 12px;
  background: #fbfcfe;
}
.whatsapp-settings-metrics strong { color: var(--navy); font-size: 13px; }
.whatsapp-settings-metrics strong b { font: inherit; }
.whatsapp-settings-metrics small { color: var(--muted); font-size: 8px; line-height: 1.35; }
.whatsapp-settings-progress { height: 7px; overflow: hidden; border-radius: 999px; background: #e8eef6; }
.whatsapp-settings-progress i { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #24b988, #3478e5); transition: width .25s ease; }
.whatsapp-settings-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.whatsapp-settings-actions .button { min-height: 38px; padding: 8px 13px; border-radius: 9px; font-size: 9px; }
.whatsapp-settings-note { margin: -2px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.whatsapp-settings-contact-note {
  display: flex;
  gap: 6px;
  padding: 11px 12px;
  border-radius: 10px;
  color: #5d6d82;
  background: #f1f6fc;
  font-size: 8px;
  line-height: 1.5;
}
.whatsapp-settings-contact-note strong { flex: 0 0 auto; color: #315a8d; }
@media (max-width: 760px) {
  .whatsapp-settings-header { align-items: flex-start; flex-direction: column; padding: 18px; }
  .whatsapp-settings-title { align-items: flex-start; }
  .whatsapp-settings-content { padding: 17px 18px 19px; }
  .whatsapp-settings-metrics { grid-template-columns: 1fr; }
  .whatsapp-settings-actions { align-items: stretch; flex-direction: column; }
  .whatsapp-settings-actions .button { width: 100%; }
  .whatsapp-settings-contact-note { align-items: flex-start; flex-direction: column; }
}



/* =========================================================
   VENIX AGENDA — ETAPA 9.6.3: PREFERÊNCIAS DE AUTOMAÇÃO
   ========================================================= */
.whatsapp-automation-preferences {
  display: grid;
  gap: 12px;
  padding: 15px;
  border: 1px solid #e2e9f2;
  border-radius: 13px;
  background: #fff;
}
.whatsapp-automation-preferences-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.whatsapp-automation-preferences-head > div { display: grid; gap: 3px; min-width: 0; }
.whatsapp-automation-preferences-head span { color: #27836d; font-size: 8px; font-weight: 900; text-transform: uppercase; letter-spacing: .06em; }
.whatsapp-automation-preferences-head strong { color: var(--navy); font-size: 12px; }
.whatsapp-automation-preferences-head small { color: var(--muted); font-size: 9px; line-height: 1.45; }
.whatsapp-automation-preferences-head b { flex: 0 0 auto; padding: 6px 9px; border-radius: 999px; color: #176b56; background: #e7f7f1; font-size: 9px; }
.whatsapp-automation-options { display: grid; gap: 8px; }
.whatsapp-automation-option {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 11px 12px; border: 1px solid #edf1f5; border-radius: 11px; background: #fbfcfe; cursor: pointer;
}
.whatsapp-automation-option > span:first-child { display: grid; gap: 3px; min-width: 0; }
.whatsapp-automation-option strong { color: #1e293b; font-size: 10px; }
.whatsapp-automation-option small { color: #748296; font-size: 8px; line-height: 1.4; }
.whatsapp-automation-switch { flex: 0 0 auto; position: relative; width: 42px; height: 24px; }
.whatsapp-automation-switch input { position: absolute; opacity: 0; pointer-events: none; }
.whatsapp-automation-switch i { display: block; position: relative; width: 42px; height: 24px; border-radius: 999px; background: #cbd5e1; transition: background .18s ease; }
.whatsapp-automation-switch i::after { content: ''; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 2px 7px rgba(15,23,42,.18); transition: transform .18s ease; }
.whatsapp-automation-switch input:checked + i { background: #2563eb; }
.whatsapp-automation-switch input:checked + i::after { transform: translateX(18px); }
.whatsapp-automation-switch input:focus-visible + i { outline: 2px solid #93c5fd; outline-offset: 2px; }
.whatsapp-automation-save { display: flex; justify-content: flex-end; }
.whatsapp-automation-save .button { min-height: 36px; padding: 8px 12px; border-radius: 9px; font-size: 9px; }
@media (max-width: 760px) {
  .whatsapp-automation-preferences-head { align-items: flex-start; flex-direction: column; }
  .whatsapp-automation-option { align-items: flex-start; }
  .whatsapp-automation-save { justify-content: stretch; }
  .whatsapp-automation-save .button { width: 100%; }
}

/* =========================================================
   ETAPA 10.1 — PAINEL MASTER VENIX
   Área exclusiva da administração da plataforma.
   ========================================================= */
:root{--master-navy:#061a46;--master-navy-2:#08275f;--master-blue:#155eef;--master-text:#132238;--master-muted:#67758a;--master-line:#e7ebf2;--master-bg:#f6f8fc;--master-card:#fff}
.venix-master-page{margin:0;background:var(--master-bg);color:var(--master-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100vh}
.master-shell{min-height:100vh;display:grid;grid-template-columns:224px minmax(0,1fr)}
.master-sidebar{position:sticky;top:0;height:100vh;box-sizing:border-box;padding:24px 14px 18px;background:linear-gradient(180deg,#06183e 0%,#082657 58%,#061a46 100%);display:flex;flex-direction:column;color:#fff;z-index:40;box-shadow:10px 0 30px rgba(5,24,62,.06)}
.master-brand{display:flex;align-items:center;gap:11px;color:#fff;text-decoration:none;padding:0 10px 24px}
.master-brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:linear-gradient(145deg,#fff,#c9dbff);color:#0a2b65;font-weight:900;font-size:20px;box-shadow:0 8px 22px rgba(0,0,0,.16)}
.master-brand-copy{display:flex;flex-direction:column;line-height:1}.master-brand-copy strong{font-size:19px;letter-spacing:.08em}.master-brand-copy small{font-size:9px;letter-spacing:.18em;color:#b8c7e7;margin-top:7px}
.master-nav{display:flex;flex-direction:column;gap:5px}.master-nav>a,.master-nav>.disabled{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 13px;border-radius:10px;color:#dce7ff;text-decoration:none;font-size:13.5px}.master-nav>a>span:first-child,.master-nav>.disabled>span:first-child{display:grid;place-items:center;width:22px;font-size:18px;color:#a9c2f5}.master-nav>a:hover{background:rgba(255,255,255,.07)}.master-nav>a.active{background:linear-gradient(135deg,#104fae,#0c3e91);color:#fff;box-shadow:0 8px 22px rgba(0,0,0,.16)}.master-nav>a.active>span:first-child{color:#fff}.master-nav>.disabled{opacity:.48;cursor:default}.master-sidebar-spacer{flex:1}.master-account{border-top:1px solid rgba(255,255,255,.1);padding:17px 9px 0;display:flex;align-items:center;gap:10px}.master-avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.14);font-weight:700}.master-account>span:last-child{min-width:0;display:flex;flex-direction:column}.master-account strong{font-size:12.5px}.master-account small{font-size:10.5px;color:#9fb1d3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:135px;margin-top:3px}
.master-page{min-width:0}.master-topbar{height:74px;padding:0 clamp(20px,3vw,44px);display:flex;align-items:center;gap:14px;background:rgba(255,255,255,.92);border-bottom:1px solid #edf0f5;backdrop-filter:blur(10px);position:sticky;top:0;z-index:30}.master-menu-button{display:none;border:0;background:transparent;font-size:23px}.master-topbar-title{display:flex;flex-direction:column}.master-topbar-title strong{font-size:14px}.master-topbar-title small{font-size:11px;color:var(--master-muted);margin-top:2px}.master-topbar-actions{margin-left:auto;display:flex;align-items:center;gap:12px}.master-secure-badge{font-size:11px;font-weight:700;color:#237650;background:#ecfdf3;border:1px solid #d2f6df;padding:7px 10px;border-radius:999px}.master-logout{border:1px solid #dfe5ef;background:#fff;border-radius:9px;padding:8px 13px;color:#344054;font-weight:700;cursor:pointer}.master-logout:hover{background:#f8fafc}
.master-main{width:min(1500px,calc(100% - 48px));margin:0 auto;padding:38px 0 56px}.master-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:24px}.master-eyebrow,.master-card-kicker{display:block;color:#5270a4;font-size:10px;font-weight:800;letter-spacing:.13em;margin-bottom:8px}.master-heading h1{font-size:31px;line-height:1.15;margin:0;color:#101828;letter-spacing:-.025em}.master-heading p{margin:8px 0 0;color:var(--master-muted);font-size:13px}.master-updated{display:flex;flex-direction:column;align-items:flex-end;color:#7b8799;font-size:10px}.master-updated strong{color:#42526a;font-size:11px;margin-top:4px}.master-message{padding:12px 14px;border-radius:10px;margin:0 0 18px;font-size:12.5px}.master-message.error{background:#fff1f1;color:#b42318;border:1px solid #ffd7d7}.master-message.info{background:#eff6ff;color:#175cd3;border:1px solid #d8e9ff}
.master-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin-bottom:24px}.master-metric{min-height:124px;background:var(--master-card);border:1px solid var(--master-line);border-radius:14px;padding:20px 17px;display:flex;align-items:center;gap:14px;box-shadow:0 2px 10px rgba(16,24,40,.025)}.master-metric-icon{width:43px;height:43px;flex:0 0 43px;border-radius:12px;display:grid;place-items:center;font-size:20px;font-weight:800}.master-metric>div{display:flex;flex-direction:column;min-width:0}.master-metric>div>span{font-size:11px;font-weight:700;color:#344054}.master-metric strong{font-size:26px;line-height:1.1;margin-top:7px;letter-spacing:-.025em;color:#101828;white-space:nowrap}.master-metric small{font-size:10.5px;color:#7b8799;margin-top:7px}.metric-companies .master-metric-icon{background:#edf4ff;color:#155eef}.metric-active .master-metric-icon{background:#ecfdf3;color:#12a062}.metric-trial .master-metric-icon{background:#fff7e6;color:#e59a11}.metric-overdue .master-metric-icon{background:#fff1f1;color:#ef4444}.metric-mrr .master-metric-icon{background:#f4efff;color:#7c3aed}
.master-card{background:#fff;border:1px solid var(--master-line);border-radius:15px;box-shadow:0 3px 16px rgba(16,24,40,.025);overflow:hidden}.master-card-head{padding:23px 20px 18px;display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.master-card-head h2{font-size:18px;margin:0;color:#172033}.master-card-head p{font-size:11.5px;color:#778399;margin:5px 0 0}.master-result-count{font-size:11px;color:#627089;background:#f7f9fc;border:1px solid #e9edf4;border-radius:999px;padding:6px 10px;white-space:nowrap}
.master-filters{padding:0 20px 20px;display:grid;grid-template-columns:minmax(260px,1.55fr) repeat(3,minmax(120px,.55fr)) auto;gap:10px;align-items:end}.master-search{position:relative;display:block}.master-search>span{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:#778399;font-size:17px;pointer-events:none}.master-search input{padding-left:38px!important}.master-filters label:not(.master-search){display:flex;flex-direction:column;gap:5px}.master-filters label:not(.master-search)>span{font-size:9.5px;color:#778399;font-weight:700}.master-filters input,.master-filters select{width:100%;box-sizing:border-box;height:42px;background:#fff;border:1px solid #dfe5ee;border-radius:9px;padding:0 11px;color:#27364b;font-size:11.5px;outline:none}.master-filters input:focus,.master-filters select:focus{border-color:#83a9ff;box-shadow:0 0 0 3px rgba(21,94,239,.08)}.master-clear-filters{height:42px;border:0;background:transparent;color:#155eef;font-size:11px;font-weight:700;cursor:pointer;padding:0 6px}.master-clear-filters:hover{text-decoration:underline}
.master-table-wrap{overflow:auto;border-top:1px solid #edf0f5;border-bottom:1px solid #edf0f5}.master-table{width:100%;border-collapse:collapse;min-width:1190px}.master-table th{background:#fbfcfe;color:#354052;font-size:9.5px;text-align:left;font-weight:800;padding:12px 12px;border-bottom:1px solid #edf0f5;white-space:nowrap}.master-table td{font-size:10.5px;color:#38475d;padding:14px 12px;border-bottom:1px solid #edf0f5;vertical-align:middle;white-space:nowrap}.master-table tbody tr:last-child td{border-bottom:0}.master-table tbody tr:hover{background:#fbfdff}.master-company{display:flex;align-items:center;gap:9px}.master-company>span{width:31px;height:31px;display:grid;place-items:center;border-radius:50%;background:#162033;color:#fff;font-size:9px;font-weight:800}.master-company>div{display:flex;flex-direction:column}.master-company strong{font-size:10.5px;color:#182235}.master-company small{font-size:8.5px;color:#8a95a7;margin-top:3px}.master-email{max-width:190px;overflow:hidden;text-overflow:ellipsis}.master-plan-chip{display:inline-flex;padding:5px 8px;border-radius:6px;background:#eef4ff;color:#155eef;font-weight:700;font-size:9.5px}.master-status{display:inline-flex;align-items:center;padding:5px 8px;border-radius:6px;font-size:9.5px;font-weight:700}.master-status.active{background:#eaf9f0;color:#178653}.master-status.trial,.master-status.pending{background:#fff6dd;color:#ad7410}.master-status.overdue{background:#fff0f0;color:#d92d20}.master-status.scheduled{background:#fff3e6;color:#c66a0a}.master-status.canceled{background:#f1f3f6;color:#667085}.master-status.neutral{background:#f5f6f8;color:#7a8494}.master-detail-button{height:31px;border:1px solid #8bb0ff;background:#fff;border-radius:7px;color:#155eef;font-size:9.5px;font-weight:700;padding:0 10px;cursor:pointer}.master-detail-button:hover{background:#f5f8ff}.master-detail-button span{font-size:14px;margin-left:3px}.master-empty{text-align:center!important;color:#7b8799!important;padding:38px!important}.master-empty strong,.master-empty span{display:block}.master-empty span{font-size:10px;margin-top:5px}
.master-pagination{padding:15px 20px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:15px;color:#69768b;font-size:10px}.master-page-controls{display:flex;align-items:center;gap:6px}.master-page-controls button{width:30px;height:30px;border:1px solid #e0e5ed;background:#fff;border-radius:7px;color:#344054;cursor:pointer;font-size:17px}.master-page-controls button:disabled{opacity:.35;cursor:default}.master-page-controls span{min-width:54px;text-align:center;font-weight:700;color:#1d2939}.master-page-size{justify-self:end;display:flex;align-items:center;gap:7px}.master-page-size select{height:31px;border:1px solid #e0e5ed;border-radius:7px;background:#fff;font-size:10px;padding:0 7px;color:#344054}
.master-modal[hidden]{display:none}.master-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px}.master-modal-backdrop{position:absolute;inset:0;background:rgba(3,13,34,.48);backdrop-filter:blur(3px)}.master-modal-card{position:relative;width:min(680px,100%);max-height:calc(100vh - 40px);overflow:auto;background:#fff;border-radius:18px;padding:27px;box-shadow:0 26px 80px rgba(6,24,62,.22)}.master-modal-card h2{margin:0 0 20px;font-size:23px}.master-modal-close{position:absolute;right:17px;top:15px;border:0;background:#f5f7fa;width:32px;height:32px;border-radius:50%;font-size:20px;color:#526074;cursor:pointer}.master-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.master-detail-grid>div{padding:12px 13px;border:1px solid #e9edf3;border-radius:10px;background:#fbfcfe;display:flex;flex-direction:column;gap:5px}.master-detail-grid span{font-size:9.5px;color:#7b8799}.master-detail-grid strong{font-size:11.5px;color:#243248;overflow-wrap:anywhere}.master-modal-note{margin-top:16px;background:#f3f7ff;border:1px solid #dfe9ff;border-radius:10px;color:#526987;font-size:10.5px;line-height:1.55;padding:12px}.modal-open{overflow:hidden}
.master-denied{min-height:100vh;display:grid;place-items:center;padding:20px;background:#f5f7fb}.master-denied>div{width:min(450px,100%);text-align:center;background:#fff;padding:40px 32px;border:1px solid #e7ebf2;border-radius:18px;box-shadow:0 20px 60px rgba(16,24,40,.08)}.master-denied span{color:#155eef;font-weight:900;letter-spacing:.14em}.master-denied h1{font-size:27px;margin:12px 0 7px}.master-denied p{color:#667085;font-size:13px}.master-denied a{display:inline-flex;margin-top:15px;background:#155eef;color:#fff;text-decoration:none;border-radius:9px;padding:10px 15px;font-size:12px;font-weight:700}
@media(max-width:1180px){.master-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.master-filters{grid-template-columns:1.4fr repeat(2,.7fr)}.master-clear-filters{justify-self:start}.master-filters label:nth-of-type(4){grid-column:auto}}
@media(max-width:820px){.master-shell{display:block}.master-sidebar{position:fixed;left:-240px;width:224px;transition:left .2s ease}.master-menu-open .master-sidebar{left:0}.master-menu-open:after{content:"";position:fixed;inset:0;background:rgba(3,13,34,.38);z-index:35}.master-sidebar{z-index:50}.master-menu-button{display:block}.master-main{width:min(100% - 28px,1500px);padding-top:25px}.master-heading{align-items:flex-start}.master-updated{display:none}.master-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.master-filters{grid-template-columns:1fr 1fr}.master-search{grid-column:1/-1}.master-clear-filters{justify-self:start}.master-pagination{grid-template-columns:1fr auto}.master-page-size{display:none}}
@media(max-width:560px){.master-topbar{height:64px;padding:0 14px}.master-topbar-title small,.master-secure-badge{display:none}.master-main{width:calc(100% - 22px)}.master-heading h1{font-size:27px}.master-heading p{font-size:12px}.master-metrics{grid-template-columns:1fr}.master-metric{min-height:96px;padding:15px}.master-card-head{align-items:flex-start;flex-direction:column}.master-filters{grid-template-columns:1fr}.master-search{grid-column:auto}.master-detail-grid{grid-template-columns:1fr}.master-pagination{grid-template-columns:1fr}.master-page-controls{justify-self:start}.master-result-count{align-self:flex-start}}

/* =========================================================
   VENIX AGENDA — ETAPA 10.1.1
   Landing page comercial pública
   Escopo isolado por .landing-page / .landing-*
   ========================================================= */
.landing-page{
  --landing-navy:#061b3c;
  --landing-navy-2:#082b5d;
  --landing-blue:#1269f4;
  --landing-blue-2:#3788ff;
  --landing-text:#0d1b33;
  --landing-muted:#61708a;
  --landing-border:#e4eaf3;
  --landing-soft:#f7f9fd;
  margin:0;
  background:#fff;
  color:var(--landing-text);
  overflow-x:hidden;
}
.landing-page *{box-sizing:border-box}
.landing-page a{text-decoration:none}
.landing-shell{width:min(1180px,calc(100% - 44px));margin:0 auto}
.landing-header{position:absolute;left:0;right:0;top:0;z-index:30;background:transparent}
.landing-nav{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.landing-brand{display:inline-flex;align-items:center;gap:9px;color:#fff;font-size:20px;letter-spacing:-.03em;white-space:nowrap}
.landing-brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:linear-gradient(145deg,#fff,#bcd6ff);color:#0b4fb5;font-weight:950;box-shadow:0 7px 20px rgba(0,0,0,.18)}
.landing-brand strong{font-weight:900}.landing-brand b{color:#2f7cff;font-weight:900}
.landing-nav-links{display:flex;align-items:center;gap:28px;color:#d9e6fb;font-size:13px;font-weight:700}
.landing-nav-links>a{transition:.18s ease}.landing-nav-links>a:not(.landing-nav-cta):hover{color:#fff}
.landing-nav-cta{padding:10px 16px;border-radius:10px;background:#1470ff;color:#fff!important;box-shadow:0 8px 22px rgba(20,112,255,.24)}

.landing-hero{position:relative;overflow:hidden;background:radial-gradient(circle at 67% 30%,rgba(25,113,255,.20),transparent 34%),linear-gradient(116deg,#031634 0%,#06224b 52%,#041a38 100%);color:#fff}
.landing-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:rgba(255,255,255,.08)}
.landing-hero-grid{min-height:665px;padding:126px 0 72px;display:grid;grid-template-columns:minmax(0,.93fr) minmax(510px,1.07fr);align-items:center;gap:48px}
.landing-hero-copy{position:relative;z-index:4;max-width:595px}
.landing-kicker{display:block;margin-bottom:18px;color:#77aaff;font-size:11px;font-weight:900;letter-spacing:.13em}
.landing-hero h1{margin:0 0 22px;color:#fff;font-size:clamp(42px,5vw,64px);line-height:1.03;letter-spacing:-.055em}
.landing-hero h1 em{color:#2478ff;font-style:normal}
.landing-hero-copy>p{max-width:580px;margin:0 0 27px;color:#d8e5f8;font-size:17px;line-height:1.68}
.landing-hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.landing-button{min-height:50px;padding:12px 19px;border:1px solid transparent;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:13px;font-size:13px;font-weight:850;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.landing-button:hover{transform:translateY(-1px)}
.landing-button-primary{background:linear-gradient(135deg,#0b68f7,#237fff);color:#fff;box-shadow:0 13px 32px rgba(15,105,244,.28)}
.landing-button-secondary{border-color:rgba(255,255,255,.36);background:rgba(255,255,255,.04);color:#fff}
.landing-button-secondary:hover{background:rgba(255,255,255,.09)}
.landing-trust-row{margin-top:28px;display:flex;flex-wrap:wrap;gap:16px 22px;color:#bbcae0;font-size:11px;font-weight:700}
.landing-trust-row span{display:flex;align-items:center;gap:7px}.landing-trust-row i{width:18px;height:18px;display:grid;place-items:center;border:1px solid rgba(63,140,255,.5);border-radius:50%;color:#4a98ff;font-style:normal;font-size:9px}

.landing-device-stage{position:relative;z-index:2;min-height:475px;display:flex;align-items:center;justify-content:center}
.landing-glow{position:absolute;border-radius:50%;filter:blur(1px);pointer-events:none}.landing-glow-one{width:400px;height:400px;right:25px;top:5px;background:radial-gradient(circle,rgba(24,109,244,.23),transparent 68%)}.landing-glow-two{width:230px;height:230px;left:15px;bottom:0;background:radial-gradient(circle,rgba(46,126,255,.13),transparent 68%)}
.landing-laptop{position:absolute;width:540px;right:18px;top:62px;transform:perspective(1200px) rotateY(-5deg) rotateX(1deg);filter:drop-shadow(0 28px 28px rgba(0,0,0,.36))}
.landing-laptop-screen{height:315px;padding:9px;border:2px solid #313b4c;border-bottom:0;border-radius:15px 15px 3px 3px;background:#0c1220;overflow:hidden}
.landing-laptop-screen::before{content:"";position:absolute;width:5px;height:5px;left:50%;top:5px;border-radius:50%;background:#47505d}
.landing-laptop-base{position:relative;height:18px;margin:-1px -38px 0;background:linear-gradient(180deg,#d8dde3,#858d97 65%,#b3bac2);border-radius:2px 2px 24px 24px;box-shadow:inset 0 1px #fff}
.landing-laptop-base::after{content:"";position:absolute;left:42%;right:42%;top:1px;height:5px;background:#929aa4;border-radius:0 0 7px 7px}
.landing-laptop-screen{display:grid;grid-template-columns:50px 1fr;background:#f9fbfe}
.landing-mini-sidebar{margin:-9px 0 -9px -9px;padding:18px 8px;display:flex;flex-direction:column;align-items:center;gap:12px;background:linear-gradient(180deg,#082455,#061a3a);color:#8fa9ce}
.landing-mini-sidebar>span{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;font-size:11px}.landing-mini-sidebar>span.active{background:#135fd3;color:#fff}.landing-mini-logo{width:27px;height:27px;margin-bottom:8px;display:grid;place-items:center;border-radius:9px;background:#fff;color:#125cc9;font-size:11px;font-weight:900}
.landing-mini-dashboard{padding:16px 16px 12px;overflow:hidden}
.landing-mini-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.landing-mini-top>div{display:grid;gap:3px}.landing-mini-top small{color:#8390a5;font-size:7px}.landing-mini-top strong{color:#16233a;font-size:11px}.landing-mini-avatar{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:#0d3778;color:#fff;font-size:8px;font-weight:900}
.landing-mini-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}.landing-mini-metrics>div{padding:9px 9px 7px;border:1px solid #e8ecf3;border-radius:8px;background:#fff;box-shadow:0 3px 10px rgba(20,36,62,.04)}.landing-mini-metrics small,.landing-mini-metrics span{display:block;color:#8996a8;font-size:6px}.landing-mini-metrics b{display:block;margin:2px 0;color:#17253a;font-size:15px}
.landing-mini-main-grid{display:grid;grid-template-columns:1.55fr .9fr;gap:8px}.landing-mini-agenda,.landing-mini-chart-card{padding:9px;border:1px solid #e8ecf3;border-radius:9px;background:#fff}.landing-mini-card-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px;color:#273449;font-size:7px}.landing-mini-card-title span{color:#91a0b5;font-size:6px}.landing-mini-row{min-height:27px;display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:5px;border-top:1px solid #f0f2f6;color:#526176;font-size:6px}.landing-mini-row time{font-weight:800;color:#2c3a51}.landing-mini-row i{padding:3px 4px;border-radius:4px;background:#e9f8ef;color:#278152;font-style:normal;font-size:5px}.landing-mini-row i.pending{background:#fff5dc;color:#ad761c}.landing-mini-chart-card>strong{display:block;margin:3px 0 7px;color:#14233c;font-size:10px}.landing-mini-chart{height:74px;display:flex;align-items:end;gap:5px;padding:4px 2px 0;border-bottom:1px solid #ecf0f6;background:linear-gradient(180deg,#fff,rgba(234,242,255,.48))}.landing-mini-chart span{flex:1;border-radius:3px 3px 0 0;background:linear-gradient(180deg,#2a7cff,#8ab6ff)}.landing-mini-chart-card>small{display:block;margin-top:6px;color:#91a0b5;font-size:5px;line-height:1.4}
.landing-phone{position:absolute;z-index:6;width:172px;height:344px;right:-10px;bottom:14px;padding:7px;border:3px solid #151a21;border-radius:29px;background:#05070a;box-shadow:0 24px 40px rgba(0,0,0,.38),0 0 0 1px rgba(255,255,255,.17)}
.landing-phone-screen{height:100%;overflow:hidden;padding:24px 10px 10px;border-radius:21px;background:#fff}.landing-phone-notch{position:absolute;z-index:2;left:50%;top:8px;width:62px;height:14px;transform:translateX(-50%);border-radius:0 0 12px 12px;background:#05070a}.landing-phone-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;color:#17253a;font-size:8px}.landing-phone-head span{color:#2972da;font-size:6px}.landing-phone-days{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-bottom:11px}.landing-phone-days span{padding:5px 2px;border-radius:6px;color:#8491a4;text-align:center;font-size:5px}.landing-phone-days small{display:block;margin-top:3px;font-size:8px;font-weight:800}.landing-phone-days span.active{background:#edf4ff;color:#175fc5}.landing-phone-slot{min-height:46px;margin-bottom:6px;display:grid;grid-template-columns:30px 1fr;align-items:center;gap:5px;padding:6px;border-radius:7px;border-left:3px solid}.landing-phone-slot time{font-size:6px;font-weight:800}.landing-phone-slot b,.landing-phone-slot small{display:block}.landing-phone-slot b{font-size:6px;color:#24344d}.landing-phone-slot small{margin-top:2px;font-size:5px;color:#8090a6}.landing-phone-slot.blue{background:#edf4ff;border-color:#2a76e8}.landing-phone-slot.purple{background:#f4efff;border-color:#845de3}.landing-phone-slot.yellow{background:#fff7df;border-color:#e7a528}.landing-phone-slot.green{background:#ebf8ef;border-color:#3c9c61}

.landing-section{padding:84px 0;background:#fff}.landing-section-soft{background:#f8faff;border-top:1px solid #edf1f7;border-bottom:1px solid #edf1f7}.landing-section-heading{margin-bottom:35px}.landing-centered-heading{max-width:720px;margin-left:auto;margin-right:auto;text-align:center}.landing-section-heading>span{display:block;margin-bottom:9px;color:#156af0;font-size:10px;font-weight:900;letter-spacing:.1em}.landing-section-heading h2{margin:0 0 12px;color:#0c1d39;font-size:clamp(30px,4vw,43px);line-height:1.08;letter-spacing:-.045em}.landing-section-heading p{margin:0;color:#6b7890;font-size:14px;line-height:1.65}
.landing-feature-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.landing-feature-card{min-height:225px;padding:22px 18px;border:1px solid #e4e9f1;border-radius:16px;background:#fff;box-shadow:0 10px 26px rgba(18,38,72,.045);transition:.18s ease}.landing-feature-card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(18,38,72,.08)}.landing-feature-icon{width:42px;height:42px;margin-bottom:27px;display:grid;place-items:center;border-radius:12px;background:#eef5ff;color:#1469ee;font-size:18px;font-weight:900}.landing-feature-whatsapp .landing-feature-icon{background:#e9fbf1;color:#1a9c54}.landing-feature-card h3{margin:0 0 9px;color:#15243d;font-size:14px;line-height:1.3}.landing-feature-card p{margin:0;color:#708098;font-size:11px;line-height:1.65}

.landing-steps-grid{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.landing-step-card{position:relative;min-height:250px;padding:27px 22px;text-align:center;border:1px solid #e2e8f1;border-radius:17px;background:#fff;box-shadow:0 9px 24px rgba(20,42,78,.04)}.landing-step-card>b{position:absolute;left:17px;top:17px;width:23px;height:23px;display:grid;place-items:center;border-radius:50%;background:#156cf3;color:#fff;font-size:10px}.landing-step-symbol{height:78px;display:grid;place-items:center;color:#1268ee;font-size:40px;font-weight:300}.landing-step-card h3{margin:5px 0 9px;color:#17263f;font-size:15px}.landing-step-card p{margin:0;color:#718096;font-size:11px;line-height:1.65}.landing-step-card:not(:last-child)::after{content:"→";position:absolute;right:-19px;top:50%;z-index:3;color:#8eb9ff;font-size:18px;transform:translate(50%,-50%)}

.landing-showcase-section{padding-bottom:90px}.landing-showcase-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.landing-showcase-card{padding:12px 12px 18px;border:1px solid #e5eaf2;border-radius:16px;background:#fff;box-shadow:0 10px 28px rgba(18,38,72,.055)}.landing-showcase-card h3{margin:16px 6px 6px;color:#15243d;font-size:14px}.landing-showcase-card p{margin:0 6px;color:#6d7c92;font-size:11px;line-height:1.55}.landing-ui-preview{height:168px;position:relative;overflow:hidden;border:1px solid #e9edf3;border-radius:11px;background:#f8fafc}.landing-dashboard-preview{display:grid;grid-template-columns:32px 1fr}.preview-sidebar{background:linear-gradient(180deg,#0a2c61,#071c3b)}.preview-content{padding:13px}.preview-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:14px}.preview-kpis i{height:35px;border:1px solid #e3e9f1;border-radius:7px;background:#fff}.preview-chart{height:84px;display:flex;align-items:end;gap:7px;padding:9px;border-radius:8px;background:#fff}.preview-chart span{flex:1;border-radius:3px 3px 0 0;background:#347df0}.preview-chart span:nth-child(1){height:28%}.preview-chart span:nth-child(2){height:48%}.preview-chart span:nth-child(3){height:38%}.preview-chart span:nth-child(4){height:64%}.preview-chart span:nth-child(5){height:55%}.preview-chart span:nth-child(6){height:82%}.landing-agenda-preview{padding:13px}.preview-days{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding-bottom:7px;border-bottom:1px solid #e7ecf3;color:#8491a4;font-size:6px;text-align:center}.preview-events{position:relative;height:126px;background:repeating-linear-gradient(to bottom,transparent 0 24px,#edf0f5 25px)}.preview-events i{position:absolute;border-radius:5px;opacity:.9}.preview-events .e1{left:4%;top:13px;width:24%;height:30px;background:#d9e8ff}.preview-events .e2{left:33%;top:41px;width:29%;height:33px;background:#e8dcff}.preview-events .e3{left:65%;top:20px;width:27%;height:28px;background:#ffe6bd}.preview-events .e4{left:9%;top:83px;width:30%;height:28px;background:#dff5e7}.preview-events .e5{left:49%;top:90px;width:43%;height:25px;background:#d9e8ff}.landing-clients-preview{padding:12px}.preview-client-row{height:33px;margin-bottom:6px;padding:6px 8px;display:grid;grid-template-columns:22px 1fr 36px;align-items:center;gap:7px;border:1px solid #edf0f5;border-radius:7px;background:#fff}.preview-client-row i{width:21px;height:21px;display:grid;place-items:center;border-radius:50%;background:#eaf2ff;color:#2a6bc8;font-style:normal;font-size:6px;font-weight:900}.preview-client-row span{height:6px;border-radius:4px;background:#dfe5ed}.preview-client-row b{height:12px;border-radius:7px;background:#edf7f1}.landing-finance-preview{padding:14px;color:#2879ee}.preview-finance-kpis{display:grid;grid-template-columns:1fr 1fr;gap:8px}.preview-finance-kpis span{height:39px;border:1px solid #e5eaf1;border-radius:8px;background:#fff}.landing-finance-preview svg{width:100%;height:92px;margin-top:10px;padding:7px;border-radius:8px;background:#fff}

.landing-pricing-section{padding-top:88px;background:#fbfcff;border-top:1px solid #edf1f6}.landing-pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch}.landing-plan-card{position:relative;padding:28px 28px 26px;border:1px solid #dfe6f0;border-radius:18px;background:#fff;box-shadow:0 10px 30px rgba(18,38,72,.05)}.landing-plan-card.featured{border:2px solid #2778f4;box-shadow:0 16px 38px rgba(30,110,235,.12)}.landing-plan-ribbon{position:absolute;left:-2px;right:-2px;top:-2px;height:28px;display:grid;place-items:center;border-radius:16px 16px 0 0;background:linear-gradient(90deg,#126af1,#377fff);color:#fff;font-size:8px;font-weight:900;letter-spacing:.08em}.landing-plan-card.featured{padding-top:42px}.landing-plan-name{display:block;margin-bottom:10px;color:#17263f;font-size:15px;font-weight:850}.landing-plan-price{display:flex;align-items:baseline;gap:4px;margin-bottom:12px}.landing-plan-price small{color:#1a2e50;font-size:12px;font-weight:800}.landing-plan-price strong{color:#10264a;font-size:34px;letter-spacing:-.05em}.landing-plan-price em{color:#7b8799;font-style:normal;font-size:11px}.landing-plan-card>p{min-height:48px;margin:0 0 18px;color:#6d7c92;font-size:11px;line-height:1.55}.landing-plan-card ul{min-height:125px;margin:0 0 24px;padding:0;list-style:none;display:grid;gap:10px}.landing-plan-card li{position:relative;padding-left:20px;color:#40516b;font-size:11px}.landing-plan-card li::before{content:"✓";position:absolute;left:0;color:#1670ef;font-weight:900}.landing-plan-button{min-height:43px;width:100%;display:flex;align-items:center;justify-content:center;border:1px solid #2c78ed;border-radius:9px;color:#1768dd;font-size:11px;font-weight:850}.landing-plan-button.primary{background:#176df0;color:#fff}.landing-annual-note{margin:18px 0 0;text-align:center;color:#728097;font-size:11px}

.landing-security-section{padding:0 0 44px;background:#fbfcff}.landing-security-card{padding:25px 30px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(430px,.85fr);align-items:center;gap:28px;border:1px solid #dbe6f6;border-radius:17px;background:linear-gradient(90deg,#f4f8ff,#fbfdff);box-shadow:0 10px 28px rgba(22,57,108,.04)}.landing-security-main{display:flex;align-items:center;gap:17px}.landing-shield{width:58px;height:64px;flex:0 0 58px;display:grid;place-items:center;clip-path:polygon(50% 0,94% 15%,86% 70%,50% 100%,14% 70%,6% 15%);background:linear-gradient(145deg,#d7e8ff,#eff6ff);color:#1670ef;font-size:25px;font-weight:900}.landing-security-main h2{margin:0 0 5px;color:#132643;font-size:19px}.landing-security-main p{max-width:540px;margin:0;color:#65758d;font-size:11px;line-height:1.55}.landing-security-points{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.landing-security-points span{display:grid;grid-template-columns:25px 1fr;column-gap:7px;align-items:center}.landing-security-points i{grid-row:1/3;width:25px;height:25px;display:grid;place-items:center;border:1px solid #cfe1ff;border-radius:8px;color:#1871ee;font-style:normal;font-size:9px}.landing-security-points b{font-size:10px;color:#253957}.landing-security-points small{font-size:8px;color:#8491a4}

.landing-final-cta{background:linear-gradient(110deg,#092967,#0757c8);color:#fff}.landing-final-cta-inner{min-height:178px;display:flex;align-items:center;justify-content:space-between;gap:35px}.landing-final-cta span{color:#86b7ff;font-size:9px;font-weight:900;letter-spacing:.08em}.landing-final-cta h2{margin:7px 0 6px;color:#fff;font-size:29px;letter-spacing:-.035em}.landing-final-cta p{max-width:600px;margin:0;color:#d6e5fb;font-size:12px;line-height:1.6}.landing-button-light{background:#fff;color:#155fc8;box-shadow:0 12px 28px rgba(0,0,0,.14)}.landing-button-light span{color:inherit;font-size:inherit;letter-spacing:0}
.landing-footer{background:#061a3b;color:#aebdd1}.landing-footer-inner{min-height:108px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:28px}.landing-footer-brand{justify-self:start}.landing-footer nav{display:flex;gap:24px;font-size:10px}.landing-footer nav a:hover{color:#fff}.landing-footer small{justify-self:end;font-size:9px}

@media(max-width:1120px){
  .landing-hero-grid{grid-template-columns:1fr 1fr;gap:24px}.landing-laptop{width:470px;right:0}.landing-phone{right:-8px}.landing-feature-grid{grid-template-columns:repeat(3,1fr)}.landing-showcase-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:900px){
  .landing-nav-links>a:not(.landing-nav-cta):not([href="login.html"]){display:none}.landing-hero-grid{grid-template-columns:1fr;padding-top:122px;padding-bottom:48px}.landing-hero-copy{max-width:700px;text-align:center;margin:0 auto}.landing-hero-copy>p{margin-left:auto;margin-right:auto}.landing-hero-actions,.landing-trust-row{justify-content:center}.landing-device-stage{min-height:500px}.landing-laptop{width:min(570px,80vw);left:50%;right:auto;transform:translateX(-53%) perspective(1200px) rotateY(-3deg)}.landing-phone{right:8%;width:158px;height:318px}.landing-steps-grid{grid-template-columns:1fr 1fr}.landing-step-card:nth-child(2)::after{display:none}.landing-pricing-grid{grid-template-columns:1fr;max-width:620px;margin:0 auto}.landing-plan-card>p,.landing-plan-card ul{min-height:0}.landing-security-card{grid-template-columns:1fr}.landing-footer-inner{grid-template-columns:1fr;justify-items:center;padding:25px 0}.landing-footer-brand,.landing-footer small{justify-self:center}
}
@media(max-width:650px){
  .landing-shell{width:min(100% - 28px,1180px)}.landing-nav{min-height:68px}.landing-brand{font-size:17px}.landing-brand-mark{width:30px;height:30px}.landing-nav-links{gap:9px}.landing-nav-links>a[href="login.html"]{font-size:11px}.landing-nav-cta{padding:9px 11px;font-size:10px}.landing-hero-grid{padding-top:100px}.landing-hero h1{font-size:42px}.landing-hero-copy>p{font-size:14px}.landing-hero-actions{display:grid;grid-template-columns:1fr}.landing-button{width:100%}.landing-trust-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;text-align:left}.landing-device-stage{min-height:375px}.landing-laptop{width:410px;top:45px;transform:translateX(-55%) perspective(1200px) rotateY(-3deg)}.landing-laptop-screen{height:245px}.landing-mini-dashboard{padding:10px}.landing-mini-chart-card{display:none}.landing-mini-main-grid{grid-template-columns:1fr}.landing-mini-metrics>div:nth-child(3){display:none}.landing-mini-metrics{grid-template-columns:1fr 1fr}.landing-phone{width:122px;height:246px;right:-2px;bottom:15px;border-width:2px;border-radius:22px}.landing-phone-screen{padding:20px 7px 7px}.landing-phone-slot{min-height:34px;margin-bottom:4px}.landing-phone-slot time{display:none}.landing-phone-slot{grid-template-columns:1fr}.landing-laptop-base{height:13px;margin-left:-25px;margin-right:-25px}.landing-section{padding:62px 0}.landing-section-heading h2{font-size:31px}.landing-feature-grid{grid-template-columns:1fr 1fr}.landing-feature-card{min-height:205px;padding:18px 15px}.landing-feature-icon{margin-bottom:19px}.landing-steps-grid,.landing-showcase-grid{grid-template-columns:1fr}.landing-step-card:not(:last-child)::after{display:none}.landing-step-card{min-height:215px}.landing-showcase-card{max-width:500px;width:100%;margin:0 auto}.landing-security-card{padding:22px 18px}.landing-security-main{align-items:flex-start}.landing-security-points{grid-template-columns:1fr}.landing-final-cta-inner{padding:32px 0;display:grid;text-align:center}.landing-final-cta h2{font-size:25px}.landing-footer nav{flex-wrap:wrap;justify-content:center;gap:13px 20px}
}
@media(max-width:420px){
  .landing-nav-links>a[href="login.html"]{display:none}.landing-hero h1{font-size:37px}.landing-trust-row{grid-template-columns:1fr}.landing-feature-grid{grid-template-columns:1fr}.landing-feature-card{min-height:0}.landing-device-stage{min-height:335px}.landing-laptop{width:350px}.landing-laptop-screen{height:215px}.landing-phone{width:110px;height:220px}.landing-section-heading h2{font-size:28px}.landing-security-main{display:grid}.landing-shield{width:50px;height:55px}
}


/* =========================================================
   ETAPA 10.1.2 — REFINAMENTO VISUAL PREMIUM DA LANDING
   Escopo isolado: Recursos, Como funciona e Conheça o Venix.
   ========================================================= */
.landing-page .premium-feature-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.premium-feature-card{min-height:0!important;padding:0!important;overflow:hidden;border-color:#e3eaf4!important;border-radius:20px!important;box-shadow:0 14px 36px rgba(18,42,82,.07)!important}.premium-feature-card:hover{transform:translateY(-4px);box-shadow:0 20px 46px rgba(18,42,82,.12)!important}.premium-feature-visual{height:205px;position:relative;overflow:hidden;padding:20px;background:linear-gradient(145deg,#f7faff 0%,#eef5ff 100%);border-bottom:1px solid #e7edf6}.premium-feature-copy{padding:19px 20px 22px}.premium-feature-kicker{display:inline-block;margin-bottom:6px;color:#2474ef;font-size:8px;font-weight:900;letter-spacing:.11em}.premium-feature-card h3{margin:0 0 8px!important;font-size:15px!important}.premium-feature-card p{font-size:10.5px!important;line-height:1.65!important}.pf-app-window,.pf-team-panel,.pf-client-panel,.pf-finance-panel,.pf-chat-panel{height:100%;border:1px solid #dce6f3;border-radius:13px;background:#fff;box-shadow:0 14px 28px rgba(25,59,111,.1)}
.pf-app-window{display:grid;grid-template-columns:38px 1fr;overflow:hidden}.pf-sidebar{padding:13px 9px;display:grid;align-content:start;gap:10px;background:linear-gradient(180deg,#0b2e63,#061a39)}.pf-sidebar i{height:5px;border-radius:5px;background:rgba(255,255,255,.42)}.pf-sidebar i:first-child{height:18px;background:#2776f0}.pf-calendar{padding:12px}.pf-calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.pf-calendar-head b{color:#172840;font-size:10px}.pf-calendar-head span{color:#7c8ba0;font-size:6px}.pf-calendar-days{display:grid;grid-template-columns:repeat(5,1fr);padding-bottom:6px;border-bottom:1px solid #edf1f6;color:#7c8ba0;font-size:5px;text-align:center}.pf-calendar-grid{height:110px;position:relative;background:repeating-linear-gradient(to bottom,transparent 0 24px,#edf1f6 25px)}.pf-calendar-grid .appt{position:absolute;padding:5px 6px;border-radius:5px;color:#42536b;font-size:5px;font-style:normal;line-height:1.35}.pf-calendar-grid .appt b{font-size:5.5px}.pf-calendar-grid .a1{left:2%;top:10px;width:27%;background:#dceaff}.pf-calendar-grid .a2{left:35%;top:34px;width:28%;background:#e8e1ff}.pf-calendar-grid .a3{left:67%;top:12px;width:30%;background:#ffedca}.pf-calendar-grid .a4{left:30%;top:75px;width:38%;background:#dcf5e7}
.feature-booking-visual{display:grid;place-items:center;background:radial-gradient(circle at 25% 20%,#fff 0,#eef5ff 60%,#e6f0ff 100%)}.pf-phone-card{width:150px;height:180px;padding:12px;border:4px solid #172033;border-radius:20px;background:#fff;box-shadow:0 18px 30px rgba(21,45,80,.19);transform:rotate(-4deg)}.pf-phone-top{display:grid;gap:4px;text-align:center}.pf-phone-top span{width:40px;height:4px;margin:0 auto;border-radius:5px;background:#111827}.pf-phone-top b{color:#235eb5;font-size:7px}.pf-phone-card label{display:grid;gap:2px;margin-top:7px;color:#8b96a7;font-size:5px}.pf-phone-card label i{padding:5px 6px;border:1px solid #e5eaf1;border-radius:5px;color:#3e4e65;font-style:normal;background:#fafbfd}.pf-slots{display:flex;gap:3px;margin:9px 0}.pf-slots span{flex:1;padding:4px 2px;border:1px solid #e4e9f1;border-radius:4px;color:#6c7b90;font-size:4px;text-align:center}.pf-slots .selected{border-color:#2d7ef7;background:#2d7ef7;color:#fff}.pf-phone-card>strong{display:block;padding:6px;border-radius:5px;background:#236fed;color:#fff;font-size:5px;text-align:center}.pf-float-badge{position:absolute;right:32px;bottom:32px;width:36px;height:36px;display:grid;place-items:center;border:5px solid #fff;border-radius:50%;background:#25d366;color:#fff;font-size:14px;font-weight:900;box-shadow:0 8px 18px rgba(37,211,102,.32)}
.pf-team-panel,.pf-client-panel{padding:13px}.pf-panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.pf-panel-title b{color:#172840;font-size:9px}.pf-panel-title span{color:#2474ef;font-size:5px}.pf-person,.pf-client-row{display:grid;align-items:center;gap:8px;margin-top:7px;padding:7px;border:1px solid #edf1f6;border-radius:8px;background:#fff}.pf-person{grid-template-columns:27px 1fr auto}.pf-person i,.pf-client-row i{width:27px;height:27px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,#dceaff,#eef4ff);color:#2a6bc8;font-size:6px;font-style:normal;font-weight:900}.pf-person div,.pf-client-row div{display:grid;gap:2px}.pf-person b,.pf-client-row b{color:#2a3b54;font-size:6px}.pf-person small,.pf-client-row small{color:#8b96a7;font-size:4.5px}.pf-person em{padding:3px 5px;border-radius:8px;background:#eaf8f0;color:#299561;font-size:4px;font-style:normal}.pf-client-row{grid-template-columns:27px 1fr auto}.pf-client-row strong{color:#4b6590;font-size:5px}
.pf-finance-panel{padding:14px}.pf-finance-top{display:flex;align-items:flex-start;justify-content:space-between}.pf-finance-top div{display:grid}.pf-finance-top small{color:#8693a6;font-size:5px}.pf-finance-top b{margin-top:2px;color:#192a43;font-size:14px}.pf-finance-top span{padding:4px 6px;border-radius:8px;background:#eaf8f0;color:#22915a;font-size:5px;font-weight:800}.pf-finance-panel svg{width:100%;height:80px;margin-top:8px}.pf-finance-foot{display:grid;grid-template-columns:1fr 1fr;gap:7px}.pf-finance-foot span{padding:6px;border-radius:6px;background:#f8fafc;color:#8895a6;font-size:4.5px}.pf-finance-foot b{display:block;margin-top:2px;color:#3a4c65;font-size:6px}
.feature-whatsapp-visual{background:linear-gradient(145deg,#f3fbf6,#e8f9ef)}.pf-chat-panel{height:145px;margin:10px 7px 0;padding:11px}.pf-chat-head{display:grid;grid-template-columns:26px 1fr auto;align-items:center;gap:7px;padding-bottom:8px;border-bottom:1px solid #edf1f3}.pf-chat-head i{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:#0d315f;color:#fff;font-style:normal;font-size:7px;font-weight:900}.pf-chat-head div{display:grid}.pf-chat-head b{color:#23354d;font-size:6px}.pf-chat-head small{color:#8a98a8;font-size:4px}.pf-chat-head span{color:#25b866;font-size:7px}.pf-chat-bubble{width:86%;margin-top:11px;margin-left:auto;padding:8px 9px;border-radius:9px 2px 9px 9px;background:#d9fdd3;color:#314351;font-size:6px;line-height:1.45}.pf-chat-meta{text-align:right;margin-top:4px;color:#8492a3;font-size:4px}.pf-whatsapp-orb{position:absolute;right:21px;bottom:19px;width:33px;height:33px;display:grid;place-items:center;border:4px solid #fff;border-radius:50%;background:#25d366;color:#fff;font-size:13px;font-weight:900;box-shadow:0 8px 20px rgba(37,211,102,.25)}

.premium-steps-grid{gap:20px}.premium-step-card{min-height:310px!important;padding:18px 18px 22px!important;text-align:left!important;border-radius:20px!important;box-shadow:0 12px 30px rgba(20,42,78,.055)!important}.premium-step-card:not(:last-child)::after{content:"›"!important;right:-21px!important;top:42%!important;width:28px;height:28px;display:grid;place-items:center;border:4px solid #f5f8fc;border-radius:50%;background:#2675ef;color:#fff!important;font-size:20px!important;transform:translate(50%,-50%)!important}.premium-step-number{position:static!important;width:auto!important;height:auto!important;display:block!important;margin-bottom:8px;background:transparent!important;color:#2775ef!important;font-size:23px!important;letter-spacing:-.04em}.premium-step-scene{height:145px;position:relative;margin-bottom:16px;overflow:hidden;border:1px solid #e3eaf4;border-radius:13px;background:linear-gradient(145deg,#f8fbff,#edf4ff)}.premium-step-card h3{margin:0 0 7px!important;font-size:14px!important}.premium-step-card p{font-size:10px!important}.ps-browser{width:78%;height:115px;margin:16px auto;border:1px solid #dfe6f0;border-radius:7px;background:#fff;box-shadow:0 11px 24px rgba(25,60,110,.12)}.ps-browser-bar{height:16px;padding:5px;display:flex;gap:3px;border-bottom:1px solid #edf0f5}.ps-browser-bar i{width:4px;height:4px;border-radius:50%;background:#d9e0ea}.ps-form{width:62%;margin:10px auto;display:grid;gap:6px}.ps-form span{color:#253953;font-size:6px;font-weight:800}.ps-form i{height:11px;border:1px solid #e5eaf1;border-radius:3px;background:#fbfcfe}.ps-form button,.ps-config button,.ps-share-phone button{border:0;border-radius:4px;background:#2879ee;color:#fff;font-size:4.5px;padding:5px}.ps-config{height:100%;display:grid;grid-template-columns:32px 1fr}.ps-config aside{padding:11px 7px;display:grid;align-content:start;gap:7px;background:#0c2d5c}.ps-config aside i{height:5px;border-radius:3px;background:rgba(255,255,255,.35)}.ps-config aside i:first-child{height:14px;background:#2776f0}.ps-config main{padding:13px}.ps-config main>span{display:block;margin-bottom:8px;color:#243750;font-size:6px;font-weight:800}.ps-config label{display:grid;gap:3px;margin-bottom:7px;color:#8693a4;font-size:4.5px}.ps-config label em{height:13px;border:1px solid #e2e8f0;border-radius:4px;background:#fff}.ps-config button{width:62px}.scene-share{display:grid;place-items:center}.ps-share-phone{width:115px;height:112px;padding:15px 10px;border:4px solid #1c2534;border-radius:18px;background:#fff;box-shadow:0 14px 26px rgba(25,55,95,.15);text-align:center}.ps-share-phone span{display:block;color:#7e8ca0;font-size:4.5px}.ps-share-phone b{display:block;margin:10px 0;padding:6px;border-radius:5px;background:#f2f6fc;color:#2f5f9f;font-size:5px}.ps-share-phone button{width:100%}.ps-share-icons{position:absolute;right:22px;bottom:15px;display:grid;gap:5px}.ps-share-icons i{width:22px;height:22px;display:grid;place-items:center;border:3px solid #fff;border-radius:50%;background:#2879ee;color:#fff;font-size:6px;font-style:normal;font-weight:900;box-shadow:0 5px 12px rgba(40,121,238,.2)}.ps-share-icons i:first-child{background:#25c96a}.ps-dashboard{height:100%;display:grid;grid-template-columns:32px 1fr;background:#fff}.ps-dashboard aside{background:linear-gradient(180deg,#0a2d60,#071d3f)}.ps-dashboard main{padding:11px}.ps-mini-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.ps-mini-kpis i{height:25px;border:1px solid #e3e9f2;border-radius:5px;background:#fff}.ps-mini-agenda{height:72px;margin-top:8px;position:relative;border:1px solid #e8edf4;border-radius:6px;background:repeating-linear-gradient(to bottom,#fff 0 17px,#edf1f6 18px)}.ps-mini-agenda span{position:absolute;border-radius:4px}.ps-mini-agenda span:nth-child(1){left:5%;top:8px;width:31%;height:16px;background:#dceaff}.ps-mini-agenda span:nth-child(2){left:43%;top:24px;width:38%;height:17px;background:#e9e1ff}.ps-mini-agenda span:nth-child(3){left:14%;top:47px;width:34%;height:15px;background:#dcf5e7}.ps-mini-agenda span:nth-child(4){left:58%;top:51px;width:30%;height:14px;background:#ffedca}

.premium-showcase-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.premium-showcase-card{padding:13px 13px 20px!important;border-radius:21px!important;box-shadow:0 15px 38px rgba(18,38,72,.075)!important}.premium-showcase-card h3{font-size:15px!important;margin-top:17px!important}.premium-showcase-card p{font-size:10.5px!important}.premium-product-window{height:310px;display:grid;grid-template-columns:49px 1fr;overflow:hidden;border:1px solid #dfe7f2;border-radius:14px;background:#fff;box-shadow:inset 0 1px rgba(255,255,255,.7)}.pp-sidebar{padding:13px 9px;display:grid;align-content:start;gap:12px;background:linear-gradient(180deg,#0a2f64,#061a3a)}.pp-logo{width:25px;height:25px;display:grid;place-items:center;margin:0 auto 6px;border-radius:7px;background:#2776f0;color:#fff;font-size:8px;font-weight:900}.pp-sidebar>i{height:7px;border-radius:5px;background:rgba(255,255,255,.24)}.pp-sidebar>i.on{height:22px;background:#256fe3}.pp-main{min-width:0;padding:17px 18px;background:#fbfcfe}.pp-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.pp-topbar div{display:grid;gap:2px}.pp-topbar b{color:#1a2b43;font-size:11px}.pp-topbar small{color:#8996a8;font-size:6px}.pp-topbar>span{padding:5px 7px;border:1px solid #e1e7ef;border-radius:6px;background:#fff;color:#677890;font-size:5px}.pp-kpis,.pp-fin-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.pp-kpis>div,.pp-fin-kpis>div{padding:9px;border:1px solid #e5eaf2;border-radius:8px;background:#fff;box-shadow:0 3px 9px rgba(20,40,75,.025)}.pp-kpis small,.pp-fin-kpis small{display:block;color:#8c98a8;font-size:5px}.pp-kpis b,.pp-fin-kpis b{display:block;margin-top:4px;color:#172840;font-size:12px}.pp-kpis em{display:inline-block;margin-top:3px;color:#27a061;font-size:5px;font-style:normal}.pp-dashboard-bottom{display:grid;grid-template-columns:1.35fr .8fr;gap:9px;margin-top:11px}.pp-agenda-list,.pp-spark{padding:10px;border:1px solid #e5eaf2;border-radius:8px;background:#fff}.pp-agenda-list>b,.pp-spark>b{color:#2b3d55;font-size:6px}.pp-agenda-list span{display:grid;grid-template-columns:35px 1fr auto;align-items:center;gap:5px;padding:7px 0;border-bottom:1px solid #eff2f6;color:#52637a;font-size:5px}.pp-agenda-list time{color:#235fae;font-size:5px}.pp-agenda-list i{padding:3px 4px;border-radius:7px;background:#eaf8f0;color:#278e59;font-size:4px;font-style:normal}.pp-agenda-list i.pending{background:#fff5df;color:#b97713}.pp-spark svg{width:100%;height:110px;margin-top:8px}.pp-week-head{display:grid;grid-template-columns:repeat(5,1fr);padding:8px;border:1px solid #e6ebf2;border-radius:7px 7px 0 0;background:#fff;color:#748397;font-size:5px;text-align:center}.pp-week-grid{height:194px;position:relative;border:1px solid #e6ebf2;border-top:0;background:repeating-linear-gradient(to bottom,#fff 0 37px,#edf1f5 38px),repeating-linear-gradient(to right,transparent 0 calc(20% - 1px),#edf1f5 calc(20% - 1px) 20%)}.pp-week-grid i{position:absolute;padding:7px;border-radius:6px;color:#43546b;font-size:5px;font-style:normal;line-height:1.4;box-shadow:0 2px 6px rgba(20,50,90,.05)}.pp-week-grid i b{display:block;font-size:5px}.pp-week-grid .w1{left:2%;top:11px;width:16%;height:43px;background:#dceaff}.pp-week-grid .w2{left:22%;top:48px;width:17%;height:46px;background:#e9e1ff}.pp-week-grid .w3{left:42%;top:13px;width:17%;height:43px;background:#fff0cf}.pp-week-grid .w4{left:62%;top:91px;width:17%;height:47px;background:#dcf5e7}.pp-week-grid .w5{left:81%;top:53px;width:17%;height:43px;background:#dceaff}.pp-client-table{overflow:hidden;border:1px solid #e5eaf1;border-radius:8px;background:#fff}.pp-client-table>div{display:grid;grid-template-columns:24px 1.1fr 1fr 1fr .5fr;align-items:center;gap:7px;min-height:39px;padding:6px 8px;border-bottom:1px solid #eef1f5;color:#68788e;font-size:5px}.pp-client-table>.head{grid-template-columns:1.1fr 1fr 1fr .5fr;min-height:28px;padding-left:40px;background:#f7f9fc;color:#8b97a7}.pp-client-table>div:last-child{border-bottom:0}.pp-client-table i{width:23px;height:23px;display:grid;place-items:center;border-radius:50%;background:#e9f2ff;color:#2a6dcc;font-size:5px;font-style:normal;font-weight:900}.pp-client-table b{color:#2c3e56;font-size:5.5px}.pp-client-table em{padding:4px;border-radius:7px;background:#eef5ff;color:#2568bf;font-size:5px;font-style:normal;text-align:center}.pp-fin-bottom{display:grid;grid-template-columns:1.4fr .7fr;gap:9px;margin-top:12px}.pp-fin-bottom>div{padding:10px;border:1px solid #e5eaf1;border-radius:8px;background:#fff}.pp-fin-bottom b{color:#2c3e56;font-size:6px}.pp-fin-bottom svg{width:100%;height:125px;margin-top:7px}.pp-donut-wrap{display:grid;align-content:start}.pp-donut{width:90px;height:90px;margin:20px auto 11px;border-radius:50%;background:conic-gradient(#2d7ef7 0 52%,#8b5cf6 52% 78%,#f7b84b 78%);position:relative}.pp-donut:after{content:"";position:absolute;inset:18px;border-radius:50%;background:#fff}.pp-donut-wrap small{color:#78879b;font-size:4px;text-align:center}.pp-donut-wrap small i{display:inline-block;width:5px;height:5px;margin-right:2px;border-radius:50%;background:#2d7ef7}.pp-donut-wrap small i:nth-of-type(2){background:#8b5cf6}.pp-donut-wrap small i:nth-of-type(3){background:#f7b84b}

@media (max-width:980px){.landing-page .premium-feature-grid{grid-template-columns:repeat(2,1fr)}.premium-steps-grid{grid-template-columns:1fr 1fr}.premium-step-card:nth-child(2)::after{display:none!important}.premium-showcase-grid{grid-template-columns:1fr}.premium-showcase-card{max-width:760px!important}.premium-product-window{height:340px}}
@media (max-width:640px){.landing-page .premium-feature-grid{grid-template-columns:1fr}.premium-feature-visual{height:220px}.premium-steps-grid{grid-template-columns:1fr}.premium-step-card:not(:last-child)::after{display:none!important}.premium-step-card{min-height:0!important}.premium-step-scene{height:165px}.premium-product-window{height:275px;grid-template-columns:40px 1fr}.pp-main{padding:12px}.pp-kpis,.pp-fin-kpis{gap:5px}.pp-dashboard-bottom,.pp-fin-bottom{grid-template-columns:1fr}.pp-spark{display:none}.pp-fin-bottom>div:first-child{min-height:125px}.pp-fin-bottom svg{height:90px}.pp-donut-wrap{display:none}.pp-client-table>div{grid-template-columns:22px 1fr .7fr}.pp-client-table>div span:nth-of-type(1),.pp-client-table>.head b:nth-child(2),.pp-client-table>.head b:nth-child(3){display:none}.pp-client-table>.head{grid-template-columns:1fr .7fr;padding-left:37px}.pp-week-grid{height:165px}.premium-showcase-card h3{font-size:14px!important}}

/* =========================================================
   VENIX AGENDA — ETAPA 10.1.3A.1
   Tipografia Mobile Comercial
   Escopo: telas do sistema, autenticação e agendamento público.
   Landing comercial (.landing-page) permanece intocada.
   ========================================================= */
@media (max-width: 760px) {
  /* Base interna: leitura confortável sem alterar o layout desktop. */
  .app-layout-page {
    font-size: 15px;
    line-height: 1.5;
  }

  /* Navegação mobile. */
  .app-layout-page .sidebar-brand-copy strong { font-size: 15px; }
  .app-layout-page .sidebar-brand-copy small { font-size: 10px; letter-spacing: .18em; }
  .app-layout-page .sidebar-nav a { font-size: 13px; }
  .app-layout-page .nav-icon { font-size: 14px; }
  .app-layout-page .topbar-context strong { font-size: 14px; }
  .app-layout-page .app-topbar .dashboard-user strong { font-size: 13px; }

  /* Títulos e textos explicativos. */
  .app-layout-page .app-main .clean-heading p,
  .app-layout-page.management-page .clean-heading p:last-child,
  .app-layout-page .workspace-title p,
  .app-layout-page.management-page .workspace-title p { font-size: 13px; line-height: 1.55; }
  .app-layout-page .workspace-title h2 { font-size: 17px; }

  /* Formulários: 16px evita zoom automático do Safari/iOS e melhora toque/leitura. */
  .app-layout-page .field label,
  .app-layout-page .optional-label,
  .app-layout-page .field-help { font-size: 13px; }
  .app-layout-page .form-control,
  .app-layout-page input:not([type="checkbox"]):not([type="radio"]),
  .app-layout-page select,
  .app-layout-page textarea { font-size: 16px; }
  .app-layout-page .form-control { min-height: 46px; }

  /* Ações e estados. */
  .app-layout-page .button,
  .app-layout-page .ghost-button { font-size: 14px; }
  .app-layout-page .button.small,
  .app-layout-page .action-group .button.small { min-height: 36px; padding: 7px 10px; font-size: 13px; }
  .app-layout-page .status-pill { padding: 5px 8px; font-size: 11px; }
  .app-layout-page .empty-state strong { font-size: 14px; }
  .app-layout-page .empty-state span,
  .app-layout-page .empty-inline { font-size: 12px; }

  /* Cadastros, serviços, profissionais e horários. */
  .app-layout-page .entity-title-row strong,
  .app-layout-page .professional-identity strong,
  .app-layout-page .service-name-cell strong { font-size: 14px; }
  .app-layout-page .entity-title-row span:not(.status-pill),
  .app-layout-page .entity-meta,
  .app-layout-page .professional-identity span:not(.entity-avatar),
  .app-layout-page .service-name-cell span:not(.mobile-label),
  .app-layout-page .service-professionals-cell > span:not(.mobile-label) { font-size: 12px; }
  .app-layout-page .professional-contact strong,
  .app-layout-page .service-duration-cell strong,
  .app-layout-page .service-price-cell strong { font-size: 13px; }
  .app-layout-page .toggle-row strong { font-size: 14px; }
  .app-layout-page .toggle-row small { font-size: 12px; }
  .app-layout-page .check-card strong { font-size: 13px; }
  .app-layout-page .check-card small { font-size: 12px; }
  .app-layout-page .schedule-day,
  .app-layout-page .schedule-day > strong { font-size: 13px; }
  .app-layout-page .schedule-period,
  .app-layout-page .schedule-closed { font-size: 12px; }
  .app-layout-page .setting-note,
  .app-layout-page .advanced-tools-card > summary small { font-size: 12px; line-height: 1.5; }
  .app-layout-page .advanced-tools-card > summary strong { font-size: 14px; }
  .app-layout-page .weekday-chip span { font-size: 12px; }

  /* Home: textos secundários não ficam minúsculos no celular. */
  .home-premium-page .premium-metric-card small { font-size: 12px; }
  .home-premium-page .setup-checklist li small,
  .home-premium-page .quick-action-card small { font-size: 12px; line-height: 1.45; }

  /* Agenda: equilíbrio entre legibilidade e quantidade de informação. */
  .agenda-page .agenda-kicker { font-size: 11px; }
  .agenda-page .agenda-new-button { font-size: 14px; }
  .agenda-page .agenda-view-tab,
  .agenda-page .agenda-today-button { font-size: 13px; }
  .agenda-page .agenda-date-picker,
  .agenda-page .agenda-professional-filter,
  .agenda-page .agenda-list-filters label { font-size: 12px; }
  .agenda-page .agenda-toolbar .form-control,
  .agenda-page .agenda-list-filters .form-control { font-size: 16px; }
  .agenda-page .agenda-summary-strip span { font-size: 12px; }
  .agenda-page .agenda-summary-strip strong { font-size: 21px; }
  .agenda-page .agenda-content-head h2 { font-size: 18px; }
  .agenda-page .agenda-content-eyebrow { font-size: 11px; }
  .agenda-page .agenda-content-note,
  .agenda-page .agenda-loading { font-size: 12px; }
  .agenda-page .agenda-appointment-card { padding: 11px 12px; gap: 4px 9px; }
  .agenda-page .agenda-appointment-card .agenda-appointment-time { min-width: 44px; font-size: 12px; }
  .agenda-page .agenda-appointment-card strong { font-size: 13px; }
  .agenda-page .agenda-appointment-card small { font-size: 12px; line-height: 1.35; }
  .agenda-page .agenda-status-chip { font-size: 10px; padding: 5px 7px; }
  .agenda-page .agenda-list-header { font-size: 10px; }
  .agenda-page .agenda-list-row strong { font-size: 12px; }
  .agenda-page .agenda-list-row small { font-size: 11px; }
  .agenda-page .agenda-dialog-header p,
  .agenda-page .agenda-final-status-note { font-size: 12px; }
  .agenda-page .agenda-dialog-kicker,
  .agenda-page .agenda-detail-section > span { font-size: 11px; }
  .agenda-page .agenda-detail-section strong { font-size: 14px; }
  .agenda-page .agenda-detail-section small { font-size: 12px; }
  .agenda-page .agenda-contact-button,
  .agenda-page .agenda-detail-actions .button,
  .agenda-page .agenda-client-mode button,
  .agenda-page .agenda-form-footer .button { font-size: 13px; }
  .agenda-page .agenda-client-box-head strong { font-size: 14px; }
  .agenda-page .agenda-client-box-head span { font-size: 12px; }
  .agenda-page .agenda-client-option strong { font-size: 13px; }
  .agenda-page .agenda-client-option small,
  .agenda-page .agenda-client-no-result { font-size: 12px; }
  .agenda-page .online-confirmation-option strong { font-size: 13px; }
  .agenda-page .online-confirmation-option small,
  .agenda-page .online-confirmation-option em { font-size: 12px; }
  .agenda-page .online-confirmation-save .button { font-size: 13px; }

  /* Autenticação: padrão comercial e campos confortáveis no celular. */
  .auth-page .field label,
  .auth-page .form-preview label { font-size: 13px; }
  .auth-page .form-control,
  .auth-page input,
  .auth-page select,
  .auth-page textarea { font-size: 16px; }
  .auth-page .auth-subtitle { font-size: 14px; }
  .auth-page .auth-links a,
  .auth-page .auth-bottom-link,
  .auth-page .auth-bottom-link a { font-size: 14px; }
  .auth-page .form-message { font-size: 13px; }
  .auth-page .back-link { font-size: 13px; }

  /* Página pública de agendamento: cliente final também recebe tipografia mobile confortável. */
  .public-booking-page { font-size: 15px; }
  .public-booking-page .public-company-copy > div > p:last-child { font-size: 14px; }
  .public-booking-page .public-hero-benefits b { font-size: 12px; }
  .public-booking-page .public-hero-benefits small { font-size: 11px; }
  .public-booking-page .booking-step-heading h2 { font-size: 20px; }
  .public-booking-page .booking-step-heading p { font-size: 13px; }
  .public-booking-page .booking-choice-copy small { font-size: 12px; }
  .public-booking-page .booking-calendar-header strong { font-size: 14px; }
  .public-booking-page .booking-calendar-weekdays span { font-size: 11px; }
  .public-booking-page .booking-calendar-grid button { font-size: 13px; }
  .public-booking-page .booking-slots-heading small { font-size: 12px; }
  .public-booking-page .booking-customer-form input,
  .public-booking-page input,
  .public-booking-page select,
  .public-booking-page textarea { font-size: 16px; }
  .public-booking-page .booking-form-security { font-size: 12px; }
  .public-booking-page .booking-primary-button,
  .public-booking-page .booking-secondary-button { font-size: 14px; }
  .public-booking-page .booking-summary-kicker,
  .public-booking-page .booking-summary-card dt { font-size: 11px; }
  .public-booking-page .booking-summary-card dd { font-size: 13px; }
  .public-booking-page .booking-summary-price span { font-size: 12px; }
  .public-booking-page .booking-summary-tip small { font-size: 12px; }
  .public-booking-page .booking-final-review span { font-size: 12px; }
  .public-booking-page .booking-final-review strong { font-size: 13px; }
  .public-booking-page .booking-success-panel > p:not(.public-eyebrow) { font-size: 13px; }
  .public-booking-page .booking-success-summary span,
  .public-booking-page .booking-success-contact-list small { font-size: 12px; }
  .public-booking-page .booking-success-summary strong,
  .public-booking-page .booking-success-contact-list strong { font-size: 13px; }
  .public-booking-page .booking-contact-action { font-size: 12px; }
  .public-booking-page .booking-success-code span { font-size: 11px; }
  .public-booking-page .public-booking-footer span,
  .public-booking-page .public-booking-footer > small { font-size: 11px; }
}

/* ETAPA 11.1 — PWA profissional e instalação.
   O app continua online-first: o Service Worker não armazena páginas, dados ou APIs. */
.pwa-install-control{min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:7px 11px;border:1px solid #d7e2ef;border-radius:10px;color:#315a91;background:#fff;font:inherit;font-size:11px;font-weight:800;line-height:1;cursor:pointer;box-shadow:none;white-space:nowrap}.pwa-install-control[hidden]{display:none!important}.pwa-install-control:hover{background:#f5f9ff;border-color:#c7d8ec}.pwa-install-control:focus-visible{outline:3px solid rgba(37,99,235,.18);outline-offset:2px}.pwa-install-icon{font-size:14px;line-height:1}.pwa-install-landing{min-height:38px;padding:9px 12px;color:#eef6ff;border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.08)}.pwa-install-landing:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.32)}
.pwa-install-overlay{position:fixed;inset:0;z-index:5000;display:grid;place-items:center;padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));background:rgba(5,18,36,.68);backdrop-filter:blur(5px)}.pwa-install-card{width:min(100%,440px);padding:24px;border:1px solid #dce5f1;border-radius:20px;background:#fff;box-shadow:0 28px 76px rgba(4,18,38,.30)}.pwa-install-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.pwa-install-card-head small{display:block;color:#2563eb;font-size:9px;font-weight:900;letter-spacing:.18em}.pwa-install-card-head h2{margin:5px 0 0;color:#0b1c33;font-size:22px;line-height:1.2}.pwa-install-card>p{margin:16px 0 0;color:#65758a;font-size:14px;line-height:1.6}.pwa-install-close{width:34px;height:34px;flex:0 0 34px;border:0;border-radius:10px;color:#52647c;background:#f0f4f9;font-size:20px;cursor:pointer}.pwa-install-steps{display:grid;gap:10px;margin:18px 0 0;padding:0;list-style:none;counter-reset:pwaStep}.pwa-install-steps li{counter-increment:pwaStep;display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;align-items:start;color:#2d405a;font-size:13px;line-height:1.5}.pwa-install-steps li::before{content:counter(pwaStep);width:30px;height:30px;display:grid;place-items:center;border-radius:9px;color:#1858c8;background:#edf4ff;font-weight:900}.pwa-install-note{margin-top:18px;padding:12px 13px;border:1px solid #dce7f5;border-radius:11px;color:#586a80;background:#f7faff;font-size:12px;line-height:1.55}.pwa-toast{position:fixed;left:50%;bottom:max(24px,env(safe-area-inset-bottom));z-index:5100;max-width:calc(100vw - 32px);padding:11px 15px;border-radius:11px;color:#fff;background:#102a4b;box-shadow:0 14px 38px rgba(7,24,47,.22);font-size:12px;font-weight:750;transform:translate(-50%,10px);opacity:0;transition:opacity .2s ease,transform .2s ease}.pwa-toast.show{opacity:1;transform:translate(-50%,0)}
@supports (padding:max(0px)){body.venix-pwa-standalone .app-sidebar{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right));padding-bottom:max(16px,env(safe-area-inset-bottom))}body.venix-pwa-standalone .app-topbar{padding-right:max(28px,env(safe-area-inset-right))}}
@media(max-width:900px){@supports (padding:max(0px)){body.venix-pwa-standalone .app-sidebar{padding-top:max(10px,env(safe-area-inset-top));padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));padding-bottom:8px}body.venix-pwa-standalone .app-topbar{padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right))}}}
@media(max-width:640px){.pwa-install-topbar{min-width:34px;width:34px;padding:0}.pwa-install-topbar .pwa-install-label{display:none}.pwa-install-card{padding:21px 18px;border-radius:18px}.pwa-install-card-head h2{font-size:20px}}

/* ETAPA 11.2A.5 — convite seguro para acesso individual em Espaço compartilhado. */
.convite-card{max-width:680px}.convite-resumo{margin:18px 0 24px;padding:18px;border:1px solid #dce7f4;border-radius:16px;background:#f7faff}.convite-resumo>span{display:block;color:#60738b;font-size:12px;font-weight:700}.convite-resumo>strong{display:block;margin-top:4px;color:#0b1c33;font-size:22px}.convite-resumo dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0 0}.convite-resumo dl div{padding:12px;border-radius:11px;background:#fff}.convite-resumo dt{color:#708198;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.convite-resumo dd{margin:4px 0 0;color:#20354f;font-size:13px;font-weight:750;overflow-wrap:anywhere}.convite-page #convite-form{display:grid;gap:14px}.convite-page #convite-entrar{margin-top:-3px}.convite-privacidade{margin:18px 0 0;color:#66778d;font-size:12px;line-height:1.6;text-align:center}@media(max-width:640px){.convite-resumo dl{grid-template-columns:1fr}.convite-resumo>strong{font-size:20px}}

/* ETAPA 11.2A.7 — Meu Espaço: membros, capacidade e convites seguros. */
.espaco-main{display:grid;gap:22px}.espaco-heading{margin-bottom:0}.espaco-eyebrow{display:block;margin-bottom:7px;color:#2f6fd0;font-size:10px;font-weight:900;letter-spacing:.12em}.espaco-overview{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:18px}.espaco-identity-card,.espaco-capacity-card,.espaco-panel,.espaco-privacy-note{border:1px solid #dfe7f1;border-radius:18px;background:#fff;box-shadow:0 8px 28px rgba(17,45,79,.06)}.espaco-identity-card{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:15px;align-items:center;padding:22px}.espaco-identity-icon{width:54px;height:54px;display:grid;place-items:center;border-radius:16px;color:#245fb8;background:#edf5ff;font-size:24px;font-weight:900}.espaco-identity-card span:not(.espaco-role-badge){color:#73849a;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.espaco-identity-card h2{margin:4px 0 2px;color:#0b1c33;font-size:22px}.espaco-identity-card p{margin:0;color:#61738b;font-size:13px}.espaco-role-badge{justify-self:end;padding:7px 10px;border-radius:999px;color:#275ea7;background:#edf5ff;font-size:10px;font-weight:850;white-space:nowrap}.espaco-capacity-card{padding:20px 22px}.espaco-capacity-top,.espaco-capacity-footer{display:flex;align-items:center;justify-content:space-between;gap:14px}.espaco-capacity-top span:first-child{display:block;color:#73849a;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}.espaco-capacity-top strong{display:block;margin-top:4px;color:#102743;font-size:18px}.espaco-capacity-chip{padding:7px 10px;border-radius:999px;color:#20744b;background:#eaf8f0;font-size:10px;font-weight:850}.espaco-capacity-chip.is-full{color:#9a5a12;background:#fff3e3}.espaco-capacity-progress{height:8px;margin:18px 0 12px;overflow:hidden;border-radius:999px;background:#edf2f7}.espaco-capacity-progress i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2c6fd1,#5c8fe0);transition:width .25s ease}.espaco-capacity-footer span{color:#263e5c;font-size:12px;font-weight:800}.espaco-capacity-footer small{color:#708198;font-size:11px}.espaco-content-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:18px;align-items:start}.espaco-panel{padding:22px}.espaco-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.espaco-panel-head span{display:block;color:#2f6fd0;font-size:9px;font-weight:900;letter-spacing:.14em}.espaco-panel-head h2{margin:5px 0 5px;color:#0c1e35;font-size:18px}.espaco-panel-head p{max-width:680px;margin:0;color:#6c7d92;font-size:12px;line-height:1.55}.espaco-members-list,.espaco-invites-list{display:grid;gap:10px}.espaco-member-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 14px;border:1px solid #e3eaf2;border-radius:13px;background:#fbfcfe}.espaco-member-avatar{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;color:#fff;background:#173e70;font-size:15px;font-weight:900}.espaco-member-title{display:flex;align-items:center;gap:8px;min-width:0}.espaco-member-title strong{color:#142943;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.espaco-member-copy small{display:block;margin-top:3px;color:#728399;font-size:11px}.espaco-you-badge{padding:3px 6px;border-radius:999px;color:#346bbb;background:#edf4ff;font-size:8px;font-weight:900;text-transform:uppercase}.espaco-member-meta{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.espaco-member-meta span{padding:5px 7px;border-radius:999px;color:#687a91;background:#f0f3f7;font-size:9px;font-weight:800}.espaco-member-meta .is-owner{color:#315f9c;background:#edf4ff}.espaco-member-meta .is-active{color:#27734d;background:#eaf8f0}.espaco-invite-form{display:grid;gap:12px}.espaco-invite-form .field{margin:0}.espaco-link-result{margin-top:16px;padding:14px;border:1px solid #cfe0f5;border-radius:13px;background:#f5f9ff}.espaco-link-result>div:first-child span{display:block;color:#2f6fd0;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.1em}.espaco-link-result>div:first-child strong{display:block;margin-top:3px;color:#1d385a;font-size:12px}.espaco-link-row{display:flex;gap:8px;margin-top:11px}.espaco-link-row input{min-width:0;flex:1;padding:10px 11px;border:1px solid #cdd9e8;border-radius:10px;color:#465d78;background:#fff;font-size:11px}.espaco-link-result>small{display:block;margin-top:8px;color:#74859a;font-size:10px}.espaco-pending-panel{margin-top:0}.espaco-invite-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:13px 14px;border:1px solid #e3eaf2;border-radius:13px;background:#fbfcfe}.espaco-invite-copy strong{display:block;color:#142943;font-size:13px}.espaco-invite-copy small,.espaco-invite-copy em{display:block;margin-top:3px;color:#74859a;font-size:10px;font-style:normal}.espaco-invite-status{padding:5px 8px;border-radius:999px;font-size:9px;font-weight:850}.espaco-invite-status.is-pending{color:#9a5a12;background:#fff2df}.espaco-invite-status.is-expired{color:#6d7582;background:#eef1f5}.espaco-invite-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.espaco-empty{padding:20px;border:1px dashed #d4deea;border-radius:12px;color:#75869b;background:#fafbfd;font-size:12px;text-align:center}.espaco-privacy-note{display:flex;gap:13px;align-items:flex-start;padding:16px 18px;color:#53708e;background:#f8fbff}.espaco-privacy-note>span{width:34px;height:34px;display:grid;place-items:center;flex:0 0 34px;border-radius:10px;color:#2b66ba;background:#eaf3ff;font-weight:900}.espaco-privacy-note strong{display:block;color:#234465;font-size:12px}.espaco-privacy-note p{margin:3px 0 0;font-size:11px;line-height:1.55}.button.ghost{border-color:#e1e7ef;color:#64758a;background:#fff}.button.ghost:hover{background:#f7f9fc}
@media(max-width:1050px){.espaco-overview,.espaco-content-grid{grid-template-columns:1fr}}
@media(max-width:680px){.espaco-main{gap:16px}.espaco-identity-card{grid-template-columns:46px minmax(0,1fr);padding:17px}.espaco-identity-icon{width:46px;height:46px;border-radius:13px}.espaco-role-badge{grid-column:1/-1;justify-self:start}.espaco-capacity-card,.espaco-panel{padding:17px}.espaco-capacity-top,.espaco-capacity-footer{align-items:flex-start;flex-direction:column;gap:6px}.espaco-member-card{grid-template-columns:38px minmax(0,1fr)}.espaco-member-avatar{width:38px;height:38px}.espaco-member-meta{grid-column:1/-1;justify-content:flex-start;padding-left:50px}.espaco-invite-item{grid-template-columns:1fr}.espaco-invite-actions{justify-content:flex-start}.espaco-link-row{flex-direction:column}.espaco-link-row .button{width:100%}}

/* Etapa 11.2A.8 — links públicos por Espaço/profissional */
.space-professional-selection{margin:0 0 28px;padding:26px;border:1px solid var(--border,#e4e9f0);border-radius:22px;background:#fff}.space-professional-selection[hidden]{display:none!important}.espaco-public-links{margin-top:22px}.espaco-public-link-main,.espaco-public-professional-link{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 0;border-top:1px solid rgba(15,37,66,.08)}.espaco-public-link-main strong{display:block;max-width:760px;overflow-wrap:anywhere;font-size:.92rem}.espaco-public-professional-link>div:first-child{display:flex;flex-direction:column;gap:3px}.espaco-public-link-actions{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:720px){.espaco-public-link-main,.espaco-public-professional-link{align-items:flex-start;flex-direction:column}.espaco-public-link-actions{width:100%}.espaco-public-link-actions .button{flex:1}}


/* Etapa 11.2A.8.1B — escolha do modelo de operação */
.operation-mode-fieldset { border: 0; padding: 0; margin: 8px 0 4px; min-width: 0; }
.operation-mode-fieldset legend { font-weight: 800; color: #122640; margin-bottom: 6px; }
.operation-mode-help { margin: 0 0 12px; color: #64748b; font-size: .92rem; }
.operation-mode-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }
.operation-mode-card { position: relative; display: grid; gap: 8px; padding: 18px; border: 1px solid #d9e2ec; border-radius: 16px; background: #fff; cursor: pointer; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.operation-mode-card:hover { border-color: #9fb3c8; transform: translateY(-1px); }
.operation-mode-card:has(input:checked) { border-color: #1769aa; box-shadow: 0 0 0 3px rgba(23,105,170,.10); }
.operation-mode-card input { position: absolute; opacity: 0; pointer-events: none; }
.operation-mode-card strong { color: #0b213c; font-size: 1rem; padding-right: 30px; }
.operation-mode-card span:not(.operation-mode-check) { color: #475569; line-height: 1.45; }
.operation-mode-card small { color: #718096; line-height: 1.4; }
.operation-mode-check { position: absolute; right: 16px; top: 16px; width: 24px; height: 24px; border: 1px solid #cbd5e1; border-radius: 50%; display: grid; place-items: center; color: transparent; font-weight: 900; }
.operation-mode-card:has(input:checked) .operation-mode-check { background: #0b2849; border-color: #0b2849; color: #fff; }
.independent-profile-complete form { opacity: .58; }
@media (max-width: 720px) { .operation-mode-grid { grid-template-columns: 1fr; } }


/* =========================================================
   VENIX AGENDA — ETAPA 11.2A.8.1B.2
   Tipografia desktop padronizada + reenvio de confirmação.
   Escopo: painel interno no desktop. Mobile, landing e
   agendamento público permanecem com suas regras próprias.
   ========================================================= */
.auth-resend-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px 14px;
  align-items: center;
  margin-top: 2px;
  padding: 14px 15px;
  border: 1px solid #dbe6f5;
  border-radius: 12px;
  background: #f8fbff;
}
.auth-resend-panel[hidden],
.confirmation-resend[hidden] { display: none !important; }
.auth-resend-panel > div { display: grid; gap: 3px; min-width: 0; }
.auth-resend-panel strong { color: #263d5d; font-size: 13px; }
.auth-resend-panel span { color: #64748b; font-size: 12px; overflow-wrap: anywhere; }
.auth-resend-panel .button { min-width: 142px; }
.auth-resend-status {
  grid-column: 1 / -1;
  min-height: 1.25em;
  color: #64748b;
  font-size: 12px;
  line-height: 1.45;
}
.confirmation-resend {
  display: grid;
  gap: 10px;
  margin-top: 14px;
  padding: 14px;
  border: 1px solid #dbe6f5;
  border-radius: 13px;
  background: #f8fbff;
}
.confirmation-resend .field { margin: 0; }
.confirmation-resend .auth-resend-status { grid-column: auto; text-align: center; }

@media (min-width: 861px) {
  /* Base SaaS moderna: leitura confortável sem perder densidade. */
  .app-layout-page { font-size: 14px; }
  .app-layout-page .app-main .clean-heading h1,
  .app-layout-page.management-page .clean-heading h1 { font-size: 30px; line-height: 1.18; }
  .app-layout-page .app-main .clean-heading p,
  .app-layout-page.management-page .clean-heading p:last-child,
  .app-layout-page .panel-intro p:not(.eyebrow) { font-size: 14px; line-height: 1.6; }
  .app-layout-page .panel-intro .eyebrow,
  .app-layout-page .eyebrow { font-size: 11px; }
  .app-layout-page .workspace-title h2,
  .app-layout-page .section-heading h2,
  .app-layout-page .dashboard-info-card h2 { font-size: 18px; }
  .app-layout-page .workspace-title p,
  .app-layout-page.management-page .workspace-title p,
  .app-layout-page .section-heading p:not(.eyebrow) { font-size: 14px; line-height: 1.55; }

  /* Navegação e contexto. */
  .app-layout-page .sidebar-nav a { font-size: 14px; }
  .app-layout-page .sidebar-brand-copy small { font-size: 10px; }
  .app-layout-page .sidebar-account-copy strong { font-size: 13px; }
  .app-layout-page .sidebar-account-copy small { font-size: 12px; }
  .app-layout-page .sidebar-account-copy em { font-size: 11px; }
  .app-layout-page .topbar-context strong,
  .app-layout-page .app-topbar .dashboard-user strong { font-size: 14px; }
  .app-layout-page .topbar-context small,
  .app-layout-page .app-topbar .dashboard-user small { font-size: 12px; }

  /* Formulários e botões. */
  .app-layout-page .field label,
  .app-layout-page .form-preview label { font-size: 13px; }
  .app-layout-page .form-control,
  .app-layout-page input:not([type="checkbox"]):not([type="radio"]),
  .app-layout-page select,
  .app-layout-page textarea { font-size: 14px; }
  .app-layout-page .optional-label,
  .app-layout-page .field-help,
  .app-layout-page .setting-note { font-size: 12px; line-height: 1.5; }
  .app-layout-page .button,
  .app-layout-page .ghost-button { font-size: 14px; }
  .app-layout-page .button.small,
  .app-layout-page .action-group .button.small { min-height: 34px; font-size: 12px; }

  /* Cards, listas e tabelas. */
  .app-layout-page .summary-card > span,
  .app-layout-page .summary-card small { font-size: 12px; }
  .app-layout-page .summary-card strong { font-size: 24px; }
  .app-layout-page .dashboard-info-card strong,
  .app-layout-page .entity-title-row strong,
  .app-layout-page .professional-identity strong,
  .app-layout-page .service-name-cell strong { font-size: 14px; }
  .app-layout-page .dashboard-info-card p,
  .app-layout-page .entity-title-row span:not(.status-pill),
  .app-layout-page .entity-meta,
  .app-layout-page .professional-identity span:not(.entity-avatar),
  .app-layout-page .service-name-cell span:not(.mobile-label),
  .app-layout-page .service-professionals-cell > span:not(.mobile-label) { font-size: 12px; line-height: 1.45; }
  .app-layout-page .professional-contact strong,
  .app-layout-page .service-duration-cell strong,
  .app-layout-page .service-price-cell strong,
  .app-layout-page .service-price { font-size: 13px; }
  .app-layout-page .status-pill,
  .app-layout-page .plan-current-badge { font-size: 11px; }
  .app-layout-page .mobile-label { font-size: 11px; }
  .app-layout-page .empty-state strong { font-size: 14px; }
  .app-layout-page .empty-state span,
  .app-layout-page .empty-inline { font-size: 12px; }
  .app-layout-page .toggle-row strong { font-size: 14px; }
  .app-layout-page .toggle-row small,
  .app-layout-page .check-card small { font-size: 12px; }
  .app-layout-page .check-card strong { font-size: 13px; }
  .app-layout-page .schedule-day,
  .app-layout-page .schedule-day > strong { font-size: 13px; }
  .app-layout-page .schedule-period,
  .app-layout-page .schedule-closed,
  .app-layout-page .block-card > div:nth-child(2),
  .app-layout-page .block-card span { font-size: 12px; }
  .app-layout-page .block-card strong { font-size: 13px; }
  .app-layout-page .advanced-tools-card > summary strong { font-size: 14px; }
  .app-layout-page .advanced-tools-card > summary small { font-size: 12px; }
  .app-layout-page .module-grid > a > span { font-size: 14px; }
  .app-layout-page .module-grid > a > strong { font-size: 11px; }
  .app-layout-page .module-grid > a > small { font-size: 12px; }

  /* Agenda: mantém densidade, mas elimina microtexto de 7–9px. */
  .agenda-page .agenda-kicker,
  .agenda-page .agenda-content-eyebrow,
  .agenda-page .agenda-dialog-kicker,
  .agenda-page .agenda-detail-section > span { font-size: 11px; }
  .agenda-page .agenda-view-tab,
  .agenda-page .agenda-today-button,
  .agenda-page .agenda-new-button { font-size: 13px; }
  .agenda-page .agenda-date-picker,
  .agenda-page .agenda-professional-filter,
  .agenda-page .agenda-list-filters label { font-size: 12px; }
  .agenda-page .agenda-toolbar .form-control,
  .agenda-page .agenda-list-filters .form-control { font-size: 14px; }
  .agenda-page .agenda-summary-strip span { font-size: 12px; }
  .agenda-page .agenda-summary-strip strong { font-size: 22px; }
  .agenda-page .agenda-content-head h2 { font-size: 18px; }
  .agenda-page .agenda-content-note,
  .agenda-page .agenda-loading,
  .agenda-page .agenda-dialog-header p,
  .agenda-page .agenda-final-status-note { font-size: 12px; }
  .agenda-page .agenda-day-professional strong { font-size: 13px; }
  .agenda-page .agenda-day-professional small,
  .agenda-page .agenda-time-label { font-size: 11px; }
  .agenda-page .agenda-grid-appointment > span,
  .agenda-page .agenda-grid-appointment small,
  .agenda-page .agenda-week-day > header small,
  .agenda-page .agenda-week-empty,
  .agenda-page .agenda-list-header { font-size: 10px; }
  .agenda-page .agenda-grid-appointment strong,
  .agenda-page .agenda-appointment-card strong,
  .agenda-page .agenda-list-row strong { font-size: 12px; }
  .agenda-page .agenda-appointment-card .agenda-appointment-time { font-size: 12px; }
  .agenda-page .agenda-appointment-card small,
  .agenda-page .agenda-list-row small { font-size: 11px; }
  .agenda-page .agenda-week-day > header span { font-size: 11px; }
  .agenda-page .agenda-status-chip,
  .agenda-page .agenda-status-chip.mini { font-size: 10px; }
  .agenda-page .agenda-detail-status-row > span:last-child { font-size: 11px; }
  .agenda-page .agenda-detail-section strong { font-size: 14px; }
  .agenda-page .agenda-detail-section small { font-size: 12px; }
  .agenda-page .agenda-contact-button,
  .agenda-page .agenda-detail-actions .button,
  .agenda-page .agenda-form-footer .button,
  .agenda-page .agenda-client-mode button { font-size: 13px; }
  .agenda-page .agenda-client-box-head strong { font-size: 14px; }
  .agenda-page .agenda-client-box-head span { font-size: 12px; }
  .agenda-page .agenda-client-option strong { font-size: 13px; }
  .agenda-page .agenda-client-option small,
  .agenda-page .agenda-client-no-result { font-size: 12px; }

  /* Clientes e financeiro. */
  .clients-page .clients-table-head,
  .clients-page .clients-table-row,
  .clients-page .client-profile-card { font-size: 13px; }
  .clients-page .clients-pagination .button,
  .clients-page .client-profile-actions .button,
  .clients-page .client-profile-edit-actions .button { font-size: 12px !important; }
  .finance-page .finance-filters .form-control,
  .finance-page .finance-custom-period .form-control,
  .finance-page .finance-payment-values .form-control,
  .finance-page .finance-payment-card .field .form-control { font-size: 14px; }
  .finance-page .finance-payment-card .field label { font-size: 13px; }

  /* Planos, configurações e WhatsApp. */
  .app-layout-page .plan-price span,
  .app-layout-page .plans-note p,
  .app-layout-page .online-confirmation-option small,
  .app-layout-page .online-confirmation-option em { font-size: 12px; }
  .app-layout-page .plan-points { font-size: 13px; }
  .app-layout-page .plans-note strong,
  .app-layout-page .online-confirmation-option strong { font-size: 14px; }
  .app-layout-page .online-confirmation-save .button { font-size: 13px; }
  .app-layout-page .whatsapp-usage-heading > div > span,
  .app-layout-page .whatsapp-connection-status,
  .app-layout-page .whatsapp-usage-footer { font-size: 11px; }
  .app-layout-page .whatsapp-usage-heading p,
  .app-layout-page .whatsapp-usage-counter small { font-size: 12px; }
  .app-layout-page .whatsapp-usage-footer strong { font-size: 12px; }
}

@media (max-width: 640px) {
  .auth-resend-panel { grid-template-columns: 1fr; }
  .auth-resend-panel .button { width: 100%; }
}

/* Complemento desktop 11.2A.8.1B.2 — módulos com microtipografia histórica. */
@media (min-width: 861px) {
  .app-layout-page small { font-size: 12px; }

  /* Home operacional. */
  .home-premium-page .premium-metric-card > div > span,
  .home-premium-page .premium-metric-card small,
  .home-operations-heading p,
  .home-today-card > div > span,
  .home-today-card small,
  .home-upcoming-head p,
  .home-upcoming-head > a,
  .home-upcoming-time small,
  .home-upcoming-info small,
  .home-upcoming-loading small,
  .home-upcoming-empty small { font-size: 12px; }
  .home-premium-page .premium-metric-card strong,
  .home-today-card strong { font-size: 24px; }
  .home-upcoming-head h3 { font-size: 15px; }
  .home-upcoming-time strong,
  .home-upcoming-info strong,
  .home-upcoming-client-button { font-size: 14px; }
  .home-upcoming-status,
  .home-status-menu-title small { font-size: 11px; }
  .home-upcoming-empty strong,
  .home-status-menu-title strong { font-size: 13px; }
  .home-status-action { min-height: 36px; font-size: 12px; }
  .home-appointment-dialog-header > div > span,
  .home-detail-grid section > span { font-size: 11px; }
  .home-appointment-dialog-header h2 { font-size: 18px; }
  .home-detail-topline strong { font-size: 14px; }
  .home-detail-topline small,
  .home-detail-grid section small,
  .home-detail-no-contact { font-size: 12px; }
  .home-detail-grid section strong { font-size: 13px; }
  .home-detail-contact-button,
  .home-detail-footer .button { font-size: 13px; }

  /* Financeiro. */
  .finance-kicker,
  .finance-section-kicker,
  .finance-dialog-kicker { font-size: 11px; }
  .finance-metric-card span,
  .finance-metric-card small,
  .finance-section-heading p,
  .finance-pending-summary small,
  .finance-pending-date,
  .finance-pending-main small,
  .finance-pending-money span,
  .finance-pending-money small,
  .finance-empty-state small,
  .finance-custom-period label,
  .finance-filters label > span,
  .finance-history-meta,
  .finance-history-client span,
  .finance-history-client small,
  .finance-history-value span,
  .finance-history-value small,
  .finance-pagination span,
  .finance-payment-heading p,
  .finance-payment-context span,
  .finance-payment-context small,
  .finance-payment-values span,
  .finance-history-compact-summary,
  .finance-filter-toggle-copy small,
  .finance-payment-quick-summary span,
  .finance-payment-helper,
  .finance-payment-preview,
  .finance-payment-history-current-status,
  .finance-payment-history-main > span,
  .finance-payment-history-main > small,
  .finance-payment-history-refund strong,
  .finance-payment-history-refund span,
  .finance-gateway-refund-note { font-size: 12px; }
  .finance-metric-card strong { font-size: 24px; }
  .finance-section-heading h2,
  .finance-payment-heading h2 { font-size: 18px; }
  .finance-pending-summary strong { font-size: 22px; }
  .finance-pending-main strong,
  .finance-history-client strong,
  .finance-history-value strong,
  .finance-payment-context strong,
  .finance-filter-toggle-copy strong,
  .finance-payment-quick-summary strong,
  .finance-payment-history-main > strong { font-size: 14px; }
  .finance-pending-money strong { font-size: 15px; }
  .finance-period-tab,
  .finance-collapse-toggle,
  .finance-more-toggle,
  .finance-history-action-link,
  .finance-refund-link,
  .finance-register-button { font-size: 12px; }
  .finance-status,
  .finance-payment-entry-status { font-size: 11px; }
  .finance-filters .form-control,
  .finance-custom-period .form-control,
  .finance-payment-values .form-control,
  .finance-payment-card .field .form-control { font-size: 14px; }
  .finance-payment-card .field label { font-size: 13px; }
}

/* =========================================================
   ETAPA 11.2A.9A.2.1 — acesso opcional da equipe
   ========================================================= */
.team-access-summary {
  margin: 8px 0 0;
  color: #64748b;
  font-size: 13px;
  line-height: 1.5;
}
.professional-status {
  gap: 6px;
  align-items: flex-start;
}
.team-access-state {
  display: block;
  margin-top: 6px;
  color: #64748b;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.35;
}
.team-access-state.is-active { color: #167147; }
.team-access-state.is-pending { color: #8a6417; }
.team-access-state.is-none { color: #64748b; }
.team-access-dialog { width: min(620px, calc(100vw - 28px)); }
.team-access-professional {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 16px;
  padding: 12px 14px;
  border: 1px solid #e5eaf1;
  border-radius: 10px;
  background: #f8fafc;
}
.team-access-professional span {
  color: #64748b;
  font-size: 11px;
}
.team-access-professional strong {
  color: #203650;
  font-size: 15px;
}
.team-access-link-result {
  margin-top: 14px;
  padding: 13px;
  border: 1px solid #dfe8f5;
  border-radius: 11px;
  background: #f7faff;
}
.team-access-link-result > label {
  display: block;
  margin-bottom: 7px;
  color: #334155;
  font-size: 12px;
  font-weight: 800;
}
.team-access-link-result > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
}
.team-access-link-result small {
  display: block;
  margin-top: 7px;
  color: #64748b;
  font-size: 11px;
  line-height: 1.4;
}
.team-access-dialog-actions { margin-top: 17px; }

@media (max-width: 760px) {
  .team-access-summary { font-size: 12px; }
  .team-access-state { font-size: 11px; }
  .team-access-link-result > div { grid-template-columns: 1fr; }
  .team-access-link-result .button { width: 100%; }
}
@media (min-width: 901px) {
  .management-page .professional-table-head,
  .management-page .professional-row {
    grid-template-columns: minmax(135px, 1.15fr) minmax(70px, .55fr) minmax(135px, .9fr) minmax(170px, 1.25fr);
    gap: 10px;
  }
  .management-page .professional-actions .action-group {
    align-items: center;
    justify-content: flex-start;
    max-width: 100%;
  }
}

@media (min-width: 1500px) {
  .management-page .professional-table-head,
  .management-page .professional-row {
    grid-template-columns: minmax(180px, 1.35fr) minmax(105px, .7fr) minmax(170px, 1fr) minmax(250px, 1.45fr);
    gap: 14px;
  }
}
