:root {
  --ink: #27242f;
  --muted: #716c7a;
  --canvas: #f7f6f8;
  --canvas-lavender: #f1eff7;
  --surface: rgba(255, 255, 255, 0.76);
  --line: rgba(55, 47, 72, 0.1);
  --purple: #6551b7;
  --purple-deep: #514095;
  --purple-soft: #ece9fb;
  --danger: #a13f4f;
  --shadow: 0 22px 60px rgba(50, 42, 67, 0.08);
  --clinic-page-max: 110rem; /* Limite responsivo compartilhado: ver layout-contract.test.ts. */
  --clinic-page-gutter: 2rem;
}

@media (max-width: 720px) {
  .agenda-experience { gap: 0.7rem; }
  .agenda-header h1 { font-size: 1.25rem; }
  .agenda-control-row { align-items: stretch; display: grid; gap: 0.55rem; }
  .agenda-period-control { justify-content: space-between; }
  .agenda-period-label { font-size: 0.68rem; max-width: 11rem; }
  .agenda-segmented { justify-self: stretch; }
  .agenda-segmented button { flex: 1; }
  .agenda-filter-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
  .agenda-professional-select { min-width: 0; }
  .agenda-search { grid-column: 1 / -1; grid-row: 2; }
  .agenda-filter-button { display: none; }
  .agenda-workspace { display: block; }
  .agenda-professional-heading { padding-left: 3.3rem; }
  .agenda-day { grid-template-columns: 2.8rem minmax(0, 1fr); }
  .agenda-day__time-axis span { padding-right: 0.5rem; }
  .agenda-current-time { left: -2.8rem; }
  .agenda-day-card { left: 0.25rem; right: 0.25rem; }
  .agenda-context { border-bottom-left-radius: 0; border-bottom-right-radius: 0; bottom: 0; left: 0; max-height: 75dvh; overflow: auto; position: fixed; right: 0; top: auto; z-index: 10; }
}

/* Agenda Mês — recomposed around the operational calendar, not a generic data grid. */
.agenda-experience--month {
  margin-inline: auto;
  max-width: 76rem;
  width: 100%;
}

.agenda-header {
  align-items: flex-end;
  gap: 1rem;
  padding: 0.5rem 0 0.35rem;
}

.agenda-header > span { gap: 0.34rem; }
.agenda-header h1 { color: #25212d; font-size: 1.8rem; font-weight: 710; letter-spacing: -0.055em; }
.agenda-header p { color: #77717f; font-size: 0.76rem; }
.agenda-header__actions { align-items: center; display: flex; gap: 0.8rem; }
.agenda-create { border-radius: 0.7rem; font-size: 0.82rem; min-height: 2.6rem; padding: 0.55rem 1rem; }
.agenda-create-notice { align-items: center; background: #f4f1ff; border: 1px solid #e6e0fb; border-radius: 0.78rem; color: #5d5287; display: flex; font-size: 0.75rem; justify-content: space-between; padding: 0.55rem 0.75rem; }
.agenda-create-notice button { background: transparent; border: 0; color: inherit; font-size: 1.1rem; line-height: 1; }

.agenda-segmented { background: #f1effa; border: 1px solid #e9e5f7; border-radius: 0.74rem; gap: 0.15rem; padding: 0.18rem; }
.agenda-segmented button { border-radius: 0.56rem; font-size: 0.75rem; min-height: 2.2rem; padding: 0.35rem 0.9rem; }
.agenda-segmented button.is-active { background: linear-gradient(145deg, #ebe6ff, #fff); box-shadow: 0 3px 10px rgba(83, 64, 151, 0.12); color: #6048c7; }

.agenda-toolbar { align-items: center; background: rgba(255, 255, 255, 0.82); border: 1px solid #ece9f2; border-radius: 0.95rem; box-shadow: 0 9px 24px rgba(52, 41, 78, 0.045); display: flex; gap: 1rem; justify-content: space-between; padding: 0.55rem; }
.agenda-toolbar__period, .agenda-toolbar__filters { align-items: center; display: flex; gap: 0.5rem; min-width: 0; }
.agenda-period-nav { gap: 0.2rem; }
.agenda-period-nav button, .agenda-today { border-color: #e7e3ed; border-radius: 0.62rem; color: #4f4959; font-size: 0.78rem; min-height: 2.45rem; }
.agenda-period-nav button { font-size: 1.35rem; width: 2.45rem; }
.agenda-today { padding-inline: 0.85rem; }
.agenda-period-label { color: #2d2735; font-size: 0.98rem; font-weight: 700; letter-spacing: -0.025em; padding-inline: 0.5rem; text-transform: capitalize; }
.agenda-professional-select, .agenda-service-select, .agenda-filter-button { border-color: #e7e3ed; border-radius: 0.65rem; font-size: 0.78rem; min-height: 2.45rem; }
.agenda-professional-select { min-width: 12.85rem; padding: 0.2rem 0.58rem; }
.agenda-professional-select select { color: #403a49; font-weight: 620; }
.agenda-professional-select__avatar { font-size: 0.61rem; height: 1.55rem; width: 1.55rem; }
.agenda-service-select { gap: 0.45rem; padding-inline: 0.7rem; }
.agenda-service-select select { font-size: 0.78rem; min-width: 9.6rem; }
.agenda-filter-menu { position: relative; }
.agenda-filter-button { background: #fff; color: #514a5a; font-weight: 650; padding-inline: 0.85rem; }
.agenda-filter-button:hover, .agenda-professional-select:hover, .agenda-service-select:hover { border-color: #cfc6ea; box-shadow: 0 3px 11px rgba(70, 56, 105, 0.06); }
.agenda-filter-popover { background: #fff; border: 1px solid #e7e3ee; border-radius: 0.8rem; box-shadow: 0 14px 32px rgba(49, 39, 75, 0.14); display: grid; gap: 0.6rem; padding: 0.75rem; position: absolute; right: 0; top: calc(100% + 0.45rem); width: 15rem; z-index: 8; }
.agenda-filter-popover p { color: #767080; font-size: 0.7rem; font-weight: 650; margin: 0; }
.agenda-filter-popover [role="group"] { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.agenda-filter-popover [role="group"] button { background: #f8f7fb; border: 1px solid #ebe8f1; border-radius: 999px; color: #625c6b; font-size: 0.69rem; padding: 0.36rem 0.54rem; }
.agenda-filter-popover [role="group"] button.is-active { background: #eee9ff; border-color: #dcd2ff; color: #5e47bd; }
.agenda-filter-popover__clear { background: transparent; border: 0; color: #6549cf; font-size: 0.72rem; justify-self: start; padding: 0; }

.agenda-experience--month .agenda-main { gap: 1rem; grid-template-columns: minmax(0, 1fr) 17.25rem; }
.agenda-month-view { border: 1px solid #ebe8ef; border-radius: 1rem; box-shadow: 0 13px 32px rgba(49, 41, 69, 0.045); }
.agenda-month-weekdays { background: #fdfcff; border-bottom-color: #ebe8ef; }
.agenda-month-weekdays span { color: #766f80; font-size: 0.68rem; font-weight: 750; letter-spacing: 0.045em; padding: 0.9rem 0; }
.agenda-month-cell { background: rgba(255,255,255,0.82); border-bottom-color: rgba(92, 78, 112, 0.075); border-right-color: rgba(92, 78, 112, 0.06); min-height: 8.35rem; padding: 0.62rem; transition: background 160ms ease; }
.agenda-month-cell:hover { background: #fcfbff; }
.agenda-month-cell.is-outside { background: #fcfbfd; }
.agenda-month-cell.is-selected { background: linear-gradient(145deg, rgba(250,249,255,0.92), rgba(243,238,255,0.86)); }
.agenda-month-cell__date { border-radius: 50%; color: #3c3544; font-size: 0.82rem; font-weight: 720; min-height: 1.7rem; min-width: 1.7rem; padding: 0; }
.agenda-month-cell.is-selected .agenda-month-cell__date { background: #6948d1; color: #fff; }
.agenda-month-entry { align-items: center; background: #f2efff; border: 1px solid transparent; border-radius: 0.42rem; font-size: 0.7rem; gap: 0.38rem; grid-template-columns: 2.5rem minmax(0, 1fr); margin-bottom: 0.28rem; min-height: 1.62rem; padding: 0.27rem 0.34rem; }
.agenda-month-entry:hover { border-color: rgba(108, 79, 203, 0.23); filter: brightness(0.99); }
.agenda-month-entry span { color: #6d6677; font-size: 0.63rem; font-weight: 650; }
.agenda-month-entry strong { color: #494150; font-size: 0.69rem; font-weight: 650; }
.agenda-month-entry.agenda-status--confirmado { background: #eff8f1; }.agenda-month-entry.agenda-status--chegou { background: #fff5e5; }.agenda-month-entry.agenda-status--agendado { background: #f1eeff; }
.agenda-month-cell__more { color: #6749cf; font-size: 0.67rem; font-weight: 700; padding: 0.25rem 0.08rem; text-decoration: none; }
.agenda-month-cell__more:hover { text-decoration: underline; }

.agenda-month-aside { gap: 0.85rem; position: sticky; top: 0.8rem; }
.agenda-month-aside > section { background: rgba(255,255,255,0.84); border-color: #ebe8ef; border-radius: 0.95rem; box-shadow: 0 9px 24px rgba(49, 41, 69, 0.035); padding: 1rem; }
.agenda-month-aside header strong { color: #38323f; font-size: 0.86rem; font-weight: 720; }
.agenda-month-aside header span { display: inline-flex; gap: 0.2rem; }
.agenda-month-aside header button { background: transparent; border: 0; border-radius: 0.4rem; color: #694dd1; font-size: 1.25rem; height: 1.7rem; line-height: 1; padding: 0; width: 1.7rem; }
.agenda-month-aside header button:hover { background: #f2effd; }
.agenda-mini-weekdays { margin-top: 0.9rem; }.agenda-mini-weekdays span { color: #9992a2; font-size: 0.58rem; font-weight: 650; }
.agenda-mini-calendar { gap: 0.22rem; margin-top: 0.55rem; }.agenda-mini-calendar span { color: #554e5e; font-size: 0.63rem; padding: 0.2rem 0; }.agenda-mini-calendar span.is-selected { height: 1.35rem; line-height: 0.95rem; width: 1.35rem; }
.agenda-visible-professionals h3 { color: #6e6677; font-size: 0.66rem; letter-spacing: 0.08em; margin-bottom: 0.8rem; text-transform: uppercase; }
.agenda-visible-professionals > div { gap: 0.62rem; grid-template-columns: 2rem minmax(0,1fr) auto; margin-top: 0.68rem; }.agenda-visible-professionals > div > span { background: linear-gradient(145deg, #eee9fc, #cfc3ef); color: #5a478e; font-size: 0.58rem; height: 2rem; width: 2rem; }.agenda-visible-professionals strong { color: #47404d; font-size: 0.75rem; font-weight: 680; }.agenda-visible-professionals small { color: #8a8391; font-size: 0.64rem; margin-top: 0.08rem; }.agenda-visible-professionals i { height: 0.44rem; width: 0.44rem; }
.agenda-visible-professionals__all { background: transparent; border: 0; color: #6247c7; font-size: 0.73rem; font-weight: 680; margin-top: 0.95rem; padding: 0; }

@media (max-width: 1080px) {
  .agenda-header h1 { font-size: 1.6rem; }
  .agenda-experience--month .agenda-main { grid-template-columns: minmax(0, 1fr) 15.5rem; }
  .agenda-month-cell { min-height: 7.6rem; padding: 0.5rem; }
  .agenda-month-entry { grid-template-columns: 2.2rem minmax(0, 1fr); }
  .agenda-month-entry strong { font-size: 0.64rem; }
  .agenda-service-select select { min-width: 7.6rem; }
}

@media (max-width: 900px) {
  .agenda-experience--month .agenda-main { grid-template-columns: minmax(0, 1fr); }
  .agenda-experience--month .agenda-month-aside { display: none; }
}

@media (max-width: 720px) {
  .agenda-header { align-items: flex-start; padding-top: 0.1rem; }.agenda-header h1 { font-size: 1.28rem; }.agenda-header p { display: none; }.agenda-header__actions { gap: 0.4rem; }.agenda-create { font-size: 0.68rem; min-height: 2.15rem; padding-inline: 0.68rem; }.agenda-segmented button { font-size: 0.65rem; min-height: 2.15rem; padding-inline: 0.48rem; }
  .agenda-toolbar { align-items: stretch; display: grid; gap: 0.55rem; }.agenda-toolbar__period { display: grid; grid-template-columns: auto auto minmax(0,1fr); }.agenda-toolbar__period .agenda-today { justify-self: start; }.agenda-period-label { align-self: center; font-size: 0.76rem; overflow: hidden; padding: 0; text-overflow: ellipsis; white-space: nowrap; }.agenda-toolbar__filters { display: grid; grid-template-columns: minmax(0,1fr) auto; }.agenda-professional-select { min-width: 0; }.agenda-service-select { min-width: 0; }.agenda-service-select select { min-width: 0; width: 100%; }.agenda-filter-menu { justify-self: end; }.agenda-filter-button { font-size: 0.7rem; }.agenda-filter-popover { right: 0; width: min(15rem, calc(100vw - 2rem)); }
  .agenda-month-cell { min-height: 5.65rem; padding: 0.32rem; }.agenda-month-weekdays span { font-size: 0.52rem; padding: 0.62rem 0; }.agenda-month-cell__date { font-size: 0.68rem; min-height: 1.35rem; min-width: 1.35rem; }.agenda-month-entry { display: block; height: 0.32rem; margin: 0.15rem 0; min-height: 0; padding: 0; }.agenda-month-entry > * { display: none; }.agenda-month-cell__more { font-size: 0; }.agenda-month-cell__more::after { content: "•••"; font-size: 0.62rem; letter-spacing: 0.08rem; }
}

* {
  box-sizing: border-box;
}

html,
body {
  min-height: 100%;
}

body {
  margin: 0;
  background: var(--canvas);
  color: var(--ink);
  font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
}

button,
input,
textarea {
  font: inherit;
}

button {
  cursor: pointer;
}

button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[role="button"]:focus-visible {
  outline: 3px solid rgba(101, 81, 183, 0.3);
  outline-offset: 3px;
}

.allia-mark {
  align-items: center;
  color: var(--ink);
  display: inline-flex;
  gap: 0.6rem;
  letter-spacing: -0.045em;
}

.allia-mark__symbol {
  align-items: center;
  background: var(--purple);
  border-radius: 42% 58% 56% 44%;
  color: white;
  display: inline-flex;
  font-size: 1.05rem;
  font-weight: 720;
  height: 1.85rem;
  justify-content: center;
  transform: rotate(-8deg);
  width: 1.85rem;
}

.allia-mark__wordmark {
  font-size: 1.35rem;
  font-weight: 720;
}

.allia-mark__wordmark small {
  color: var(--muted);
  font-size: 0.58em;
  font-weight: 600;
  letter-spacing: 0.01em;
  margin-left: 0.1rem;
}

.clinic-identity {
  display: grid;
  gap: 0.5rem;
  grid-auto-flow: row;
  grid-template-columns: minmax(0, 1fr);
  justify-items: center;
  min-width: 0;
  text-align: center;
  width: 100%;
}

.clinic-identity__logo {
  align-items: center;
  background: #fff;
  border-radius: 0.55rem;
  color: #6246d5;
  display: inline-flex;
  font-size: 0.72rem;
  font-weight: 750;
  height: 2.6rem;
  justify-content: center;
  max-width: 100%;
  overflow: hidden;
  width: 6.5rem;
}

.clinic-identity__logo img {
  display: block;
  height: 100%;
  object-fit: contain;
  object-position: center;
  width: 100%;
}

.clinic-identity__name {
  display: block;
  margin: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}

.financial-settings-experience { max-width: 80rem; }
.financial-settings-card { margin-top: 1rem; }
.financial-settings-card .procedures-table-card__header { gap: 1rem; }
.financial-settings-card .procedures-table-card__header > div { min-width: 0; }
.financial-settings-card .procedures-table-card__header span { display: block; }
.financial-settings-table th:last-child, .financial-settings-table td:last-child { width: 6rem; }
.financial-settings-table:has(.professionals-row-menu) th:last-child,
.financial-settings-table:has(.professionals-row-menu) td:last-child { text-align: center; }
.financial-settings-table td strong { display: block; }
.financial-settings-table td small { color: #807989; display: block; font-size: .7rem; margin-top: .2rem; }
.financial-settings-status { align-items: center; display: flex; gap: .65rem; }
.financial-settings-status > span { color: #645d6f; font-size: .75rem; }
.financial-settings-note { border-top: 1px solid rgba(91,72,118,.1); color: #777080; font-size: .72rem; line-height: 1.5; margin: 0; padding: .9rem 1.3rem; }
@media (max-width: 760px) {
  .financial-settings-card .procedures-table-card__header { align-items: flex-start; flex-direction: column; }
  .financial-settings-card .procedures-table-card__header > div { display: grid; gap: .35rem; }
  .financial-settings-card .procedures-table-card__header .button { width: 100%; }
  .financial-settings-table { min-width: 34rem; }
}

.eyebrow {
  color: var(--purple);
  font-size: 0.72rem;
  font-weight: 730;
  letter-spacing: 0.095em;
  margin: 0;
  text-transform: uppercase;
}

.button {
  align-items: center;
  border: 1px solid transparent;
  border-radius: 0.9rem;
  display: inline-flex;
  font-weight: 650;
  justify-content: center;
  min-height: 2.9rem;
  padding: 0.7rem 1.05rem;
  transition: background 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.button:hover:not(:disabled) {
  transform: translateY(-1px);
}

.button:disabled {
  cursor: wait;
  opacity: 0.66;
}

.button--primary {
  background: var(--purple);
  color: white;
}

.button--primary:hover:not(:disabled) {
  background: var(--purple-deep);
}

.button--secondary {
  background: rgba(255, 255, 255, 0.65);
  border-color: var(--line);
  color: var(--ink);
}

.login-page {
  display: grid;
  min-height: 100dvh;
  grid-template-columns: minmax(0, 1fr) minmax(22rem, 42vw);
}

.login-page__form-area {
  align-items: center;
  display: flex;
  justify-content: center;
  padding: clamp(2rem, 7vw, 7rem);
}

.login-page__form-wrap {
  max-width: 25.5rem;
  width: 100%;
}

.login-page__heading {
  margin: clamp(3.6rem, 11vh, 7rem) 0 2rem;
}

.login-page__heading h1 {
  font-size: clamp(2.1rem, 4vw, 3.35rem);
  letter-spacing: -0.055em;
  line-height: 1.03;
  margin: 0.5rem 0 0.8rem;
}

.login-page__heading p:not(.eyebrow) {
  color: var(--muted);
  line-height: 1.5;
  margin: 0;
}

.login-form {
  display: grid;
  gap: 1.15rem;
}

.login-form label {
  color: var(--ink);
  display: grid;
  font-size: 0.9rem;
  font-weight: 630;
  gap: 0.5rem;
}

.login-form input {
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid var(--line);
  border-radius: 0.85rem;
  color: var(--ink);
  min-height: 3.15rem;
  padding: 0.72rem 0.9rem;
}

.login-form input:focus {
  background: white;
  border-color: rgba(101, 81, 183, 0.58);
}

.form-error {
  background: rgba(161, 63, 79, 0.08);
  border-radius: 0.75rem;
  color: var(--danger);
  font-size: 0.9rem;
  line-height: 1.4;
  margin: 0;
  padding: 0.75rem 0.85rem;
}

.login-page__atmosphere {
  background: linear-gradient(145deg, #ebe8f5 0%, #e2ddf0 58%, #f3f1f7 100%);
  min-height: 100%;
  overflow: hidden;
  position: relative;
}

.login-page__atmosphere::after {
  border: 1px solid rgba(255, 255, 255, 0.55);
  border-radius: 50%;
  content: "";
  height: 35rem;
  position: absolute;
  right: -15rem;
  top: 14%;
  width: 35rem;
}

.login-page__atmosphere-content {
  bottom: clamp(2rem, 8vw, 6rem);
  color: #4f4970;
  display: grid;
  gap: 0.7rem;
  left: clamp(2rem, 8vw, 6rem);
  max-width: 14rem;
  position: absolute;
  z-index: 1;
}

.login-page__atmosphere-content p {
  font-size: 1.7rem;
  font-weight: 680;
  letter-spacing: -0.05em;
  margin: 0;
}

.login-page__atmosphere-content span:not(.atmosphere-line) {
  font-size: 0.9rem;
  line-height: 1.45;
}

.atmosphere-line {
  background: #8879c7;
  border-radius: 999px;
  display: block;
  height: 0.3rem;
  width: 2.8rem;
}

.auth-page { align-items: center; background: radial-gradient(circle at 50% 16%, rgba(101, 81, 183, 0.07), transparent 31rem), #f7f8fc; display: flex; justify-content: center; min-height: 100dvh; padding: 2rem 1rem; }
.auth-card { background: #fff; border: 1px solid #dbe3f0; border-radius: 1.375rem; box-shadow: 0 24px 70px rgba(49, 67, 102, 0.1); display: grid; gap: 1.25rem; max-width: 39.125rem; padding: 2.35rem 2.5rem; width: 100%; }
.auth-card__heading { display: grid; gap: 0.5rem; margin-top: 0.75rem; }
.auth-card__heading h1 { font-size: 1.7rem; letter-spacing: -0.04em; line-height: 1.12; margin: 0; }
.auth-card__heading > p:not(.eyebrow) { color: #64748b; font-size: 0.92rem; line-height: 1.55; margin: 0; }
.auth-form { display: grid; gap: 1rem; }
.auth-field { color: var(--ink); display: grid; font-size: 0.85rem; font-weight: 650; gap: 0.45rem; letter-spacing: -0.01em; }
.auth-field input { background: #fff; border: 1px solid #dfe5ee; border-radius: 0.6rem; color: var(--ink); height: 2.65rem; padding: 0.55rem 0.75rem; transition: border-color 150ms ease, box-shadow 150ms ease; width: 100%; }
.auth-field input::placeholder { color: #94a3b8; }
.auth-field input:hover { border-color: #cbd5e1; }
.auth-field input:focus { border-color: var(--purple); box-shadow: 0 0 0 3px rgba(101, 81, 183, 0.12); outline: 0; }
.auth-field input:disabled { background: #f8fafc; color: #94a3b8; }
.auth-password-input { position: relative; }
.auth-password-input input { padding-right: 2.9rem; }
.auth-password-toggle { align-items: center; background: transparent; border: 0; color: #64748b; display: inline-flex; height: 2.5rem; justify-content: center; position: absolute; right: 0.2rem; top: 0.08rem; width: 2.5rem; }
.auth-password-toggle svg { fill: none; height: 1.05rem; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.75; width: 1.05rem; }
.auth-link { background: transparent; border: 0; color: var(--purple-deep); font-size: 0.84rem; font-weight: 650; padding: 0.2rem 0; text-align: left; }
.auth-link:hover:not(:disabled) { color: var(--purple); text-decoration: underline; text-underline-offset: 0.16rem; }
.auth-link:disabled { cursor: wait; opacity: 0.65; }
.auth-link--right { justify-self: end; margin-top: -0.35rem; }
.auth-link--return { justify-self: center; margin-top: 0.15rem; }
.auth-submit { min-height: 2.65rem; width: 100%; }
.auth-feedback { border-radius: 0.65rem; font-size: 0.88rem; line-height: 1.45; margin: 0; padding: 0.75rem 0.85rem; }
.auth-feedback--error { background: rgba(161, 63, 79, 0.07); border: 1px solid rgba(161, 63, 79, 0.13); color: var(--danger); }
.auth-feedback--success { background: rgba(44, 130, 91, 0.08); border: 1px solid rgba(44, 130, 91, 0.16); color: #246a49; }
.invitation-card { max-width: 31rem; }
.invitation-card__loading, .invitation-card__copy { color: #64748b; font-size: 0.92rem; line-height: 1.55; margin: 0; }
.invitation-card__copy strong { color: var(--ink); }
.invitation-card__details { border-block: 1px solid #e7ebf1; display: grid; gap: 0.8rem; margin: 0; padding-block: 1rem; }
.invitation-card__details div { display: grid; gap: 0.18rem; }
.invitation-card__details dt { color: #7a7284; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; }
.invitation-card__details dd { color: #3d3745; font-size: 0.9rem; margin: 0; }
.auth-divider { align-items: center; color: #94a3b8; display: grid; font-size: 0.76rem; font-weight: 650; gap: 0.85rem; grid-template-columns: 1fr auto 1fr; text-transform: lowercase; }
.auth-divider::before, .auth-divider::after { background: #e7ebf1; content: ""; height: 1px; }
.auth-confirmation-actions { display: grid; }
.clinic-onboarding-card { max-width: 39.125rem; }
.clinic-onboarding-card__header { align-items: center; border-bottom: 1px solid #e8edf4; display: flex; justify-content: space-between; padding-bottom: 1.25rem; }
.clinic-onboarding-card__account { color: #64748b; font-size: 0.88rem; margin: 0; }
.clinic-onboarding-card__account strong { color: var(--ink); font-weight: 650; }

.app-status {
  align-items: center;
  background: radial-gradient(circle at 76% 20%, #eeebf8 0, var(--canvas) 42%);
  display: flex;
  justify-content: center;
  min-height: 100dvh;
  padding: 1.5rem;
}

.app-status__surface {
  display: grid;
  gap: 1rem;
  max-width: 29rem;
}

.app-status__surface h1 {
  font-size: clamp(1.9rem, 5vw, 2.7rem);
  letter-spacing: -0.05em;
  line-height: 1.05;
  margin: 0;
}

.app-status__detail {
  color: var(--muted);
  line-height: 1.55;
  margin: 0 0 0.4rem;
}

.app-shell {
  background: radial-gradient(circle at 78% 2%, #efecf8 0, var(--canvas) 36%);
  display: grid;
  grid-template-columns: 15.5rem minmax(0, 1fr);
  min-height: 100dvh;
}

.app-shell__sidebar {
  background: rgba(255, 255, 255, 0.6);
  border-right: 1px solid rgba(55, 47, 72, 0.07);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 2rem 1.25rem 1.4rem;
}

.app-shell__nav {
  display: grid;
  gap: 0.35rem;
  margin-top: 4.2rem;
}

.app-shell__nav button,
.app-shell__mobile-nav button {
  background: transparent;
  border: 0;
  border-radius: 0.75rem;
  color: var(--muted);
  font-size: 0.94rem;
  font-weight: 610;
  min-height: 2.8rem;
  text-align: left;
  transition: background 160ms ease, color 160ms ease;
}

.app-shell__nav button {
  padding: 0.6rem 0.75rem;
}

.app-shell__nav button:hover,
.app-shell__nav button.is-active,
.app-shell__mobile-nav button.is-active {
  background: var(--purple-soft);
  color: var(--purple-deep);
}

.app-shell__sidebar-footer {
  border-top: 1px solid var(--line);
  display: grid;
  gap: 0.45rem;
  padding: 1.2rem 0.75rem 0;
}

.app-shell__sidebar-footer p,
.app-shell__sidebar-footer strong {
  margin: 0;
}

.app-shell__sidebar-footer p {
  color: var(--muted);
  font-size: 0.73rem;
}

.app-shell__sidebar-footer strong {
  font-size: 0.83rem;
  font-weight: 650;
  line-height: 1.35;
}

.text-button {
  background: transparent;
  border: 0;
  color: var(--muted);
  font-size: 0.82rem;
  justify-self: start;
  padding: 0.35rem 0;
}

.text-button:hover {
  color: var(--purple-deep);
}

.app-shell__content {
  container-type: inline-size;
  min-width: 0;
  padding-block: clamp(1.5rem, 4vw, 3.6rem);
  padding-inline: var(--clinic-page-gutter);
}

/* O conteúdo cresce até o limite compartilhado; acima dele, o espaço excedente
   é dividido igualmente entre os lados. Configurações mantém seu segundo menu
   e um contrato próprio. Guard: src/lib/layout-contract.test.ts. */
.app-shell__content > :is(.today-experience, .agenda-experience, .clients-experience, .financial-experience) {
  margin-inline: auto;
  max-width: var(--clinic-page-max);
  min-width: 0;
  width: 100%;
}

.app-shell__topbar {
  align-items: flex-start;
  background: rgba(255, 255, 255, 0.48);
  border: 1px solid rgba(255, 255, 255, 0.66);
  border-radius: 1.2rem;
  display: flex;
  justify-content: space-between;
  padding: 1rem 1.15rem;
}

.app-shell__topbar h1 {
  font-size: 1.5rem;
  letter-spacing: -0.04em;
  margin: 0.35rem 0 0;
}

.app-shell__clinic-context {
  color: var(--muted);
  font-size: 0.83rem;
  margin: 0.25rem 0 0 1rem;
  text-align: right;
}

.app-shell__placeholder {
  margin: clamp(5rem, 16vh, 10rem) auto 0;
  max-width: 34rem;
}

.app-shell__placeholder h2 {
  font-size: clamp(2rem, 5vw, 3.1rem);
  letter-spacing: -0.055em;
  line-height: 1.04;
  margin: 0.55rem 0 1rem;
}

.app-shell__placeholder > p:last-child {
  color: var(--muted);
  line-height: 1.55;
  margin: 0;
  max-width: 29rem;
}

.app-shell__mobile-nav {
  display: none;
}

.sr-only {
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

.clients-experience {
  display: grid;
  gap: 1.5rem;
}

.clients-experience__header {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.clients-experience__header h1 {
  font-size: clamp(2rem, 4vw, 2.8rem);
  letter-spacing: -0.055em;
  line-height: 1;
  margin: 0.35rem 0 0;
}

.clients-workspace {
  display: grid;
  gap: 2.2rem;
  grid-template-columns: minmax(15.5rem, 20rem) minmax(0, 1fr);
  min-height: 29rem;
}

.clients-list-pane {
  border-right: 1px solid var(--line);
  min-width: 0;
  padding-right: 1rem;
}

.client-search input {
  background: rgba(255, 255, 255, 0.62);
  border: 1px solid var(--line);
  border-radius: 0.85rem;
  min-height: 2.9rem;
  padding: 0.65rem 0.85rem;
  width: 100%;
}

.clients-list,
.client-form,
.client-form__optional-fields {
  display: grid;
}

.clients-list {
  gap: 0.25rem;
  margin-top: 1rem;
}

.clients-list__row {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 0.9rem;
  color: var(--ink);
  display: grid;
  gap: 0.7rem;
  grid-template-columns: auto minmax(0, 1fr);
  min-height: 4rem;
  padding: 0.6rem;
  text-align: left;
}

.clients-list__row:hover,
.clients-list__row.is-selected {
  background: rgba(236, 233, 251, 0.78);
}

.clients-list__row span:last-child {
  display: grid;
  gap: 0.16rem;
  min-width: 0;
}

.clients-list__row strong,
.clients-list__row small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.clients-list__row strong {
  font-size: 0.92rem;
}

.clients-list__row small {
  color: var(--muted);
  font-size: 0.78rem;
}

.client-avatar {
  align-items: center;
  background: var(--purple-soft);
  border-radius: 50%;
  color: var(--purple-deep);
  display: inline-flex;
  flex: 0 0 auto;
  font-size: 0.76rem;
  font-weight: 720;
  height: 2.35rem;
  justify-content: center;
  overflow: hidden;
  width: 2.35rem;
}

.client-avatar img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.clients-status,
.clients-empty,
.clients-error,
.clients-profile-empty {
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.5;
}

.clients-empty,
.clients-error {
  display: grid;
  gap: 0.6rem;
  margin-top: 2rem;
}

.clients-empty p,
.clients-error p,
.clients-profile-empty p {
  margin: 0;
}

.clients-profile-pane {
  min-width: 0;
}

.clients-profile-empty {
  margin: 7rem auto;
  max-width: 20rem;
  text-align: center;
}

.client-profile {
  max-width: 43rem;
}

.client-profile__back {
  display: none;
}

.client-profile__header {
  align-items: center;
  display: grid;
  gap: 1rem;
  grid-template-columns: auto minmax(0, 1fr) auto;
}

.client-profile__header .client-avatar {
  font-size: 1rem;
  height: 3.9rem;
  width: 3.9rem;
}

.client-profile__header h2 {
  font-size: clamp(1.7rem, 3vw, 2.35rem);
  letter-spacing: -0.05em;
  line-height: 1;
  margin: 0.3rem 0;
}

.client-profile__header p:not(.eyebrow) {
  color: var(--muted);
  margin: 0;
}

.client-profile__inactive {
  background: #f3eff6;
  border-radius: 99rem;
  color: #786f80;
  display: inline-flex;
  font-size: .68rem;
  font-weight: 700;
  margin-top: .45rem;
  padding: .24rem .48rem;
}

.client-profile__details {
  border-top: 1px solid var(--line);
  display: grid;
  gap: 0.95rem;
  margin-top: 2.5rem;
  padding-top: 1.3rem;
}

.client-profile__details p {
  display: grid;
  gap: 0.22rem;
  line-height: 1.45;
  margin: 0;
}

.client-profile__details span {
  color: var(--muted);
  font-size: 0.75rem;
  font-weight: 650;
}

.client-editor-layer {
  align-items: center;
  backdrop-filter: blur(13px);
  background: rgba(42, 35, 57, 0.18);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: 1rem;
  position: fixed;
  z-index: 5;
}

.client-form {
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid rgba(255, 255, 255, 0.85);
  border-radius: 1.35rem;
  box-shadow: var(--shadow);
  gap: 1rem;
  max-height: min(47rem, calc(100dvh - 2rem));
  overflow: auto;
  padding: 1.35rem;
  width: min(100%, 31rem);
}

.client-form__header {
  align-items: start;
  display: flex;
  justify-content: space-between;
}

.client-form h2 {
  font-size: 1.45rem;
  letter-spacing: -0.04em;
  line-height: 1.1;
  margin: 0.3rem 0 0;
}

.client-form label {
  display: grid;
  font-size: 0.86rem;
  font-weight: 650;
  gap: 0.45rem;
}

.client-form input,
.client-form textarea {
  background: rgba(247, 246, 248, 0.72);
  border: 1px solid var(--line);
  border-radius: 0.8rem;
  color: var(--ink);
  min-height: 2.85rem;
  padding: 0.65rem 0.8rem;
  resize: vertical;
}

.client-form__details {
  border-top: 1px solid var(--line);
  padding-top: 0.95rem;
}

.client-form__details summary {
  color: var(--ink);
  cursor: pointer;
  font-size: 0.88rem;
  font-weight: 650;
}

.client-form__details summary span {
  color: var(--muted);
  font-weight: 500;
}

.client-form__optional-fields {
  gap: 0.9rem;
  margin-top: 1rem;
}

.client-form__actions {
  display: flex;
  gap: 0.65rem;
  justify-content: flex-end;
  padding-top: 0.3rem;
}

.icon-close {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 50%;
  color: var(--muted);
  display: inline-flex;
  font-size: 1.5rem;
  height: 2.2rem;
  justify-content: center;
  line-height: 1;
  width: 2.2rem;
}

.icon-close:hover {
  background: var(--purple-soft);
  color: var(--purple-deep);
}

.settings-experience {
  display: grid;
  gap: 1.65rem;
}

.settings-hub { display: grid; grid-template-columns: 14rem minmax(0, 1fr); max-width: 94rem; min-height: 100%; min-width: 0; width: 100%; }
@media (min-width: 721px) {
  .app-shell__content:has(> .settings-hub) { padding-left: 0; }
}
.settings-hub__navigation { background: rgba(250, 249, 253, .82); border-right: 1px solid rgba(94, 73, 122, .1); padding: 2rem 1rem; }
.settings-hub__navigation h2 { color: #292331; font-size: 1rem; margin: 0 0 1.5rem .55rem; }
.settings-hub__navigation > div { display: grid; gap: .18rem; margin-bottom: 1.2rem; }
.settings-hub__navigation small { color: #91899a; font-size: .64rem; font-weight: 750; letter-spacing: .11em; margin: 0 0 .35rem .55rem; text-transform: uppercase; }
.settings-hub__navigation button { background: transparent; border: 0; border-radius: .65rem; color: #5f5768; font-size: .78rem; padding: .65rem .7rem; text-align: left; }
.settings-hub__navigation button.is-active { background: linear-gradient(120deg, rgba(124,92,255,.13), rgba(226,216,255,.42)); color: #5a3fe0; font-weight: 700; }
.settings-hub__navigation button:disabled { color: #b7b1bd; cursor: not-allowed; opacity: .72; }
.settings-hub__content { min-width: 0; }
.settings-card { background: rgba(255,255,255,.82); border: 1px solid rgba(94,73,122,.1); border-radius: 1rem; box-shadow: 0 14px 35px rgba(63,45,84,.05); margin-top: 1.2rem; padding: 1.4rem; }
.settings-card__intro { color: #756d7e; font-size: .78rem; margin: 0 0 1.2rem; }
.settings-form-grid { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0,1fr)); }
.settings-form-grid label, .settings-quick-create label { display: grid; gap: .38rem; }
.settings-form-grid label > span, .settings-quick-create label > span { color: #5d5566; font-size: .7rem; font-weight: 650; }
.settings-form-grid input, .settings-form-grid select, .settings-quick-create input, .settings-entity-list input:not([type="checkbox"]):not([type="color"]), .settings-hours input[type="time"] { background: #fff; border: 1px solid rgba(91,72,118,.16); border-radius: .62rem; color: #302a36; font: inherit; min-height: 2.55rem; padding: .65rem .75rem; width: 100%; }
.settings-form-grid__wide { grid-column: 1 / -1; }
.settings-form-grid footer { display: flex; justify-content: flex-end; }
.settings-quick-create { align-items: end; display: grid; gap: .7rem; grid-template-columns: minmax(10rem, .8fr) minmax(12rem, 1.2fr) auto; margin-bottom: 1.2rem; }
.settings-entity-list { display: grid; gap: .55rem; }
.settings-entity-list article { align-items: center; border: 1px solid rgba(91,72,118,.1); border-radius: .75rem; display: grid; gap: .7rem; grid-template-columns: auto minmax(0,1fr) auto auto; min-height: 4rem; padding: .65rem .75rem; }
.settings-entity-list article > div { display: grid; gap: .2rem; }
.settings-entity-list strong { color: #302a36; font-size: .78rem; }
.settings-entity-list small { color: #8a8291; font-size: .67rem; }
.settings-entity-list input[type="color"] { background: transparent; border: 0; height: 2.2rem; padding: 0; width: 2.2rem; }
.settings-switch { align-items: center !important; display: flex !important; gap: .42rem !important; }
.settings-switch input { accent-color: #7654ef; }
.settings-switch span { color: #665e70; font-size: .7rem; white-space: nowrap; }
.settings-role { background: #f0ebff; border-radius: 999px; color: #6847db; font-size: .67rem; padding: .28rem .55rem; text-transform: capitalize; }
.settings-hours { display: grid; gap: .5rem; }
.settings-hours__row { align-items: center; border-bottom: 1px solid rgba(91,72,118,.08); display: grid; gap: .8rem; grid-template-columns: 10rem minmax(14rem,1fr) auto; min-height: 3.7rem; padding: .45rem 0; }
.settings-hours__row > div { align-items: center; display: grid; gap: .55rem; grid-template-columns: 7rem auto 7rem; }
.settings-hours__row small { color: #aaa3b1; }
.catalog-form__grid { display: grid; gap: .8rem; grid-template-columns: 1fr 1fr; }
.catalog-form__hint { background: #f8f5ff; border-radius: .65rem; color: #6f647d; font-size: .72rem; margin: 0; padding: .75rem; }
.catalog-form__toggle { align-items: center !important; display: flex !important; flex-direction: row !important; }

@container (max-width: 50rem) {
  .settings-hub { display: block; }
  .settings-hub__navigation { border-bottom: 1px solid rgba(94,73,122,.1); border-right: 0; display: flex; gap: .4rem; overflow-x: auto; padding: .75rem; }
  .settings-hub__navigation h2, .settings-hub__navigation small { display: none; }
  .settings-hub__navigation > div { display: contents; }
  .settings-hub__navigation button { white-space: nowrap; }
  .settings-form-grid, .catalog-form__grid { grid-template-columns: 1fr; }
  .settings-form-grid__wide { grid-column: auto; }
  .settings-quick-create { grid-template-columns: 1fr; }
  .settings-entity-list article { grid-template-columns: auto minmax(0,1fr) auto; }
  .settings-entity-list article > .button { grid-column: 2 / -1; }
  .settings-hours__row { grid-template-columns: 1fr auto; }
  .settings-hours__row > div { grid-column: 1 / -1; grid-row: 2; }
}

.settings-experience__header {
  align-items: end;
  display: flex;
  justify-content: space-between;
}

.settings-experience__header h1 {
  font-size: clamp(2rem, 4vw, 2.8rem);
  letter-spacing: -0.055em;
  line-height: 1;
  margin: 0.35rem 0 0;
}

.settings-tabs {
  align-items: center;
  background: rgba(236, 233, 251, 0.58);
  border-radius: 0.9rem;
  display: inline-flex;
  gap: 0.2rem;
  justify-self: start;
  padding: 0.25rem;
}

.settings-tabs button {
  background: transparent;
  border: 0;
  border-radius: 0.68rem;
  color: var(--muted);
  font: inherit;
  font-size: 0.86rem;
  font-weight: 650;
  min-height: 2.4rem;
  padding: 0.45rem 0.85rem;
}

.settings-tabs button.is-active {
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 2px 8px rgba(56, 44, 82, 0.08);
  color: var(--purple-deep);
}

.settings-workspace {
  display: grid;
  gap: 2.2rem;
  grid-template-columns: minmax(15.5rem, 20rem) minmax(0, 1fr);
  min-height: 29rem;
}

.settings-list-pane {
  border-right: 1px solid var(--line);
  min-width: 0;
  padding-right: 1rem;
}

.settings-list {
  display: grid;
  gap: 0.25rem;
  margin-top: 1rem;
}

.settings-list__row {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 0.9rem;
  color: var(--ink);
  display: grid;
  gap: 0.7rem;
  grid-template-columns: auto minmax(0, 1fr);
  min-height: 4rem;
  padding: 0.6rem;
  text-align: left;
}

.settings-list__row:hover,
.settings-list__row.is-selected {
  background: rgba(236, 233, 251, 0.78);
}

.settings-list__row span:last-child {
  display: grid;
  gap: 0.16rem;
  min-width: 0;
}

.settings-list__row strong,
.settings-list__row small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.settings-list__row strong {
  font-size: 0.92rem;
}

.settings-list__row small {
  color: var(--muted);
  font-size: 0.78rem;
}

.catalog-avatar {
  align-items: center;
  background: var(--purple-soft);
  border-radius: 50%;
  color: var(--purple-deep);
  display: inline-flex;
  flex: 0 0 auto;
  font-size: 0.8rem;
  font-weight: 720;
  height: 2.35rem;
  justify-content: center;
  width: 2.35rem;
}

.catalog-avatar--large {
  font-size: 1rem;
  height: 3.9rem;
  margin-bottom: 1.3rem;
  width: 3.9rem;
}

.settings-detail-pane {
  min-width: 0;
}

.catalog-detail {
  max-width: 43rem;
}

.catalog-detail__back {
  display: none;
}

.catalog-detail h2 {
  font-size: clamp(1.7rem, 3vw, 2.35rem);
  letter-spacing: -0.05em;
  line-height: 1;
  margin: 0.3rem 0 1rem;
}

.catalog-detail__duration {
  color: var(--purple-deep);
  font-size: 0.95rem;
  font-weight: 680;
  margin: 0;
}

.catalog-detail__note {
  color: var(--muted);
  line-height: 1.5;
  margin: 0.85rem 0 1.7rem;
  max-width: 31rem;
}

.catalog-detail__procedures {
  border-top: 1px solid var(--line);
  margin: 1.8rem 0;
  padding-top: 1.25rem;
}

.catalog-detail__procedures h3 {
  font-size: 0.9rem;
  margin: 0 0 0.8rem;
}

.catalog-detail__procedures ul {
  display: grid;
  gap: 0.55rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.catalog-detail__procedures li,
.catalog-detail__procedures p {
  color: var(--muted);
  font-size: 0.9rem;
  margin: 0;
}

.catalog-detail__procedures li::before {
  color: var(--purple);
  content: "•";
  margin-right: 0.55rem;
}

.catalog-editor-layer {
  align-items: center;
  backdrop-filter: blur(13px);
  background: rgba(42, 35, 57, 0.18);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: 1rem;
  position: fixed;
  z-index: 5;
}

.catalog-form {
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid rgba(255, 255, 255, 0.85);
  border-radius: 1.35rem;
  box-shadow: var(--shadow);
  max-height: min(47rem, calc(100dvh - 2rem));
  overflow: auto;
  padding: 1.35rem;
  width: min(100%, 32rem);
}

.catalog-form__header {
  align-items: start;
  display: flex;
  justify-content: space-between;
}

.catalog-form h2 {
  font-size: 1.45rem;
  letter-spacing: -0.04em;
  line-height: 1.1;
  margin: 0.3rem 0 0;
}

.catalog-form__body {
  display: grid;
  gap: 1rem;
  margin-top: 1.25rem;
}

.catalog-form label:not(.procedure-checklist label) {
  display: grid;
  font-size: 0.86rem;
  font-weight: 650;
  gap: 0.45rem;
}

.catalog-form input:not([type="checkbox"]) {
  background: rgba(247, 246, 248, 0.72);
  border: 1px solid var(--line);
  border-radius: 0.8rem;
  color: var(--ink);
  min-height: 2.85rem;
  padding: 0.65rem 0.8rem;
  width: 100%;
}

.money-input {
  align-items: center;
  background: rgba(247, 246, 248, 0.72);
  border: 1px solid var(--line);
  border-radius: 0.8rem;
  color: var(--muted);
  display: grid;
  font-size: 0.82rem;
  font-weight: 650;
  grid-template-columns: auto minmax(0, 1fr);
  min-height: 2.85rem;
  padding-left: 0.8rem;
  width: 100%;
}

.money-input:focus-within {
  border-color: #a793e5;
  box-shadow: 0 0 0 3px rgba(105, 72, 213, 0.1);
}

.money-input input {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: var(--ink);
  font: inherit;
  min-height: 2.75rem;
  outline: 0;
  padding: 0.65rem 0.8rem 0.65rem 0.35rem;
  text-align: right;
  width: 100%;
}

.money-input input::placeholder { color: #aaa3b7; }

.duration-input {
  align-items: center;
  display: grid;
  gap: 0.5rem;
  grid-template-columns: minmax(0, 1fr) auto;
}

.duration-input span,
.catalog-form small {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 500;
  line-height: 1.45;
}

.procedure-checklist {
  border: 0;
  border-top: 1px solid var(--line);
  margin: 0.3rem 0 0;
  padding: 1rem 0 0;
}

.procedure-checklist legend {
  font-size: 0.86rem;
  font-weight: 700;
  padding: 0;
}

.procedure-checklist > p {
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.45;
  margin: 0.4rem 0 0.8rem;
}

.procedure-checklist > div {
  display: grid;
  gap: 0.38rem;
}

.procedure-checklist label {
  align-items: center;
  border-radius: 0.7rem;
  display: grid;
  gap: 0.55rem;
  grid-template-columns: auto minmax(0, 1fr) auto;
  min-height: 2.75rem;
  padding: 0.35rem 0.45rem;
}

.procedure-checklist label:has(input:checked) {
  background: rgba(236, 233, 251, 0.58);
}

.procedure-checklist input {
  accent-color: var(--purple);
  height: 1rem;
  width: 1rem;
}

.procedure-checklist label span {
  font-size: 0.88rem;
  font-weight: 620;
}

.procedure-checklist label small {
  white-space: nowrap;
}

.procedure-checklist__empty {
  background: rgba(236, 233, 251, 0.5);
  border-radius: 0.75rem;
  padding: 0.75rem;
}

.catalog-form__actions {
  display: flex;
  gap: 0.65rem;
  justify-content: flex-end;
  padding-top: 0.3rem;
}

.app-shell__mobile-settings {
  background: transparent;
  border: 0;
  color: var(--muted);
  font: inherit;
  font-size: 0.7rem;
  grid-column: 1 / -1;
  min-height: 2.25rem;
}

.app-shell__mobile-settings.is-active,
.app-shell__sidebar-footer .text-button.is-active {
  color: var(--purple-deep);
  font-weight: 700;
}

.agenda-experience { display: grid; gap: 1.2rem; grid-template-columns: minmax(0, 1fr); position: relative; width: 100%; }
.agenda-header { align-items: end; display: flex; justify-content: space-between; padding: 0.45rem 0 0.15rem; }
.agenda-header__title h1 { font-size: clamp(2.15rem, 4vw, 3.15rem); letter-spacing: -0.065em; line-height: 0.98; margin: 0.35rem 0 0; }
.agenda-header__title > p:last-child { color: var(--muted); font-size: 0.82rem; margin: 0.65rem 0 0; }
.agenda-create { border-radius: 1rem; box-shadow: 0 9px 20px rgba(81, 64, 149, 0.16); min-height: 2.75rem; white-space: nowrap; }
.agenda-toolbar { align-items: center; backdrop-filter: blur(16px); background: rgba(255, 255, 255, 0.6); border: 1px solid rgba(255, 255, 255, 0.78); border-radius: 1.05rem; box-shadow: 0 12px 28px rgba(49, 41, 69, 0.06); display: flex; gap: 1rem; justify-content: space-between; padding: 0.48rem; }
.agenda-toolbar__period { align-items: center; display: flex; gap: 0.7rem; min-width: 0; }
.agenda-toolbar__period strong { font-size: 0.92rem; font-weight: 680; overflow: hidden; text-transform: capitalize; white-space: nowrap; }
.agenda-period-nav { display: inline-flex; gap: 0.15rem; }
.agenda-period-nav button, .agenda-today { background: rgba(255, 255, 255, 0.7); border: 1px solid rgba(55, 47, 72, 0.08); border-radius: 0.68rem; color: var(--ink); font: inherit; font-size: 0.82rem; min-height: 2.2rem; padding: 0.35rem 0.65rem; }
.agenda-period-nav button { font-size: 1.3rem; line-height: 1; padding: 0.2rem; width: 2.2rem; }
.agenda-segmented { background: rgba(236, 233, 251, 0.68); border-radius: 0.8rem; display: inline-grid; gap: 0.15rem; grid-template-columns: repeat(3, auto); padding: 0.2rem; }
.agenda-segmented button { background: transparent; border: 0; border-radius: 0.6rem; color: var(--muted); font: inherit; font-size: 0.82rem; font-weight: 650; min-height: 2.15rem; padding: 0.3rem 0.7rem; }
.agenda-segmented button.is-active { background: rgba(255, 255, 255, 0.94); box-shadow: 0 3px 10px rgba(61, 47, 91, 0.1); color: var(--purple-deep); }
.agenda-filters { display: flex; gap: 0.55rem; }
.agenda-filters select, .agenda-search input { appearance: none; background: rgba(255, 255, 255, 0.68); border: 1px solid rgba(55, 47, 72, 0.09); border-radius: 0.78rem; color: var(--ink); font: inherit; font-size: 0.83rem; min-height: 2.5rem; padding: 0.5rem 0.8rem; }
.agenda-filters select { min-width: 10.5rem; }
.agenda-search { flex: 1; max-width: 16rem; }
.agenda-search input { width: 100%; }
.agenda-month { background: rgba(255, 255, 255, 0.7); border: 1px solid rgba(255, 255, 255, 0.86); border-radius: 1.25rem; box-shadow: 0 16px 38px rgba(49, 41, 69, 0.055); overflow: hidden; }
.agenda-month__weekdays, .agenda-month__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.agenda-month__weekdays { border-bottom: 1px solid rgba(55, 47, 72, 0.07); color: var(--muted); font-size: 0.68rem; font-weight: 700; letter-spacing: 0.07em; padding: 0.78rem 0; text-align: center; }
.agenda-month-day { background: rgba(255, 255, 255, 0.37); border: 0; border-bottom: 1px solid rgba(55, 47, 72, 0.055); border-right: 1px solid rgba(55, 47, 72, 0.055); color: var(--ink); display: grid; gap: 0.35rem; min-height: 7.3rem; padding: 0.5rem; text-align: left; vertical-align: top; }
.agenda-month-day:hover { background: rgba(243, 241, 251, 0.78); }
.agenda-month-day.is-outside { background: rgba(248, 248, 250, 0.42); color: #aaa6b2; }
.agenda-month-day.is-today .agenda-month-day__number { background: var(--purple); color: white; }
.agenda-month-day__number { align-items: center; border-radius: 50%; display: inline-flex; font-size: 0.76rem; font-weight: 700; height: 1.55rem; justify-content: center; width: 1.55rem; }
.agenda-month-day__entries { display: grid; gap: 0.18rem; min-width: 0; }
.agenda-month-entry { border-left: 2px solid #c8c2de; color: #45404d; font-size: 0.69rem; overflow: hidden; padding-left: 0.32rem; text-overflow: ellipsis; white-space: nowrap; }
.agenda-month-entry--confirmado, .agenda-month-entry--concluido { border-color: #86b89a; }
.agenda-month-entry--chegou, .agenda-month-entry--faltou { border-color: #d3ab68; }
.agenda-month-day small { color: var(--muted); font-size: 0.67rem; padding-left: 0.32rem; }
.agenda-week { display: grid; gap: 0.55rem; grid-template-columns: repeat(7, minmax(7.7rem, 1fr)); overflow-x: auto; padding-bottom: 0.25rem; }
.agenda-week-day { background: rgba(255, 255, 255, 0.62); border: 1px solid rgba(255, 255, 255, 0.82); border-radius: 1rem; display: grid; gap: 0.45rem; min-height: 23rem; padding: 0.55rem; }
.agenda-week-day__heading { align-items: center; background: transparent; border: 0; color: var(--ink); display: flex; justify-content: space-between; padding: 0.2rem; }
.agenda-week-day__heading span { color: var(--muted); font-size: 0.68rem; font-weight: 700; }
.agenda-week-day__heading strong { font-size: 1rem; }
.agenda-week-day > p { color: var(--muted); font-size: 0.76rem; margin: 0.45rem 0 0; text-align: center; }
.agenda-appointment { background: #f3f1f7; border: 0; border-left: 3px solid #bcb3d8; border-radius: 0.55rem; color: var(--ink); display: grid; gap: 0.1rem; min-width: 0; padding: 0.45rem 0.5rem; text-align: left; }
.agenda-appointment:hover { filter: brightness(0.98); transform: translateY(-1px); }
.agenda-appointment span, .agenda-appointment small, .agenda-appointment em { color: var(--muted); font-size: 0.67rem; font-style: normal; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.agenda-appointment strong { font-size: 0.78rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.agenda-appointment--confirmado, .agenda-appointment--concluido { background: #eef6f0; border-left-color: #77a98c; }
.agenda-appointment--chegou, .agenda-appointment--faltou { background: #fbf4e8; border-left-color: #c7984e; }
.agenda-appointment--cancelado { background: #f5f4f6; border-left-color: #b7b2be; opacity: 0.72; }
.agenda-day { background: rgba(255, 255, 255, 0.7); border: 1px solid rgba(255, 255, 255, 0.86); border-radius: 1.25rem; box-shadow: 0 16px 38px rgba(49, 41, 69, 0.055); overflow: auto; }
.agenda-day__header { background: rgba(255, 255, 255, 0.64); border-bottom: 1px solid rgba(55, 47, 72, 0.07); display: grid; grid-template-columns: 4.2rem repeat(3, minmax(12rem, 1fr)); min-width: 42rem; }
.agenda-day__header > span { color: var(--muted); font-size: 0.68rem; font-weight: 650; padding: 0.9rem; }
.agenda-day__header > div { align-items: center; border-left: 1px solid rgba(55, 47, 72, 0.06); display: flex; gap: 0.45rem; padding: 0.68rem 0.85rem; }
.agenda-day__header strong { font-size: 0.8rem; }
.agenda-professional-avatar { align-items: center; background: var(--purple-soft); border-radius: 50%; color: var(--purple-deep); display: inline-flex; font-size: 0.62rem; font-weight: 700; height: 1.7rem; justify-content: center; width: 1.7rem; }
.agenda-day__body { display: grid; grid-template-columns: 4.2rem repeat(3, minmax(12rem, 1fr)); min-width: 42rem; }
.agenda-day__times { display: grid; grid-template-rows: repeat(10, 64px); }
.agenda-day__times span { color: var(--muted); font-size: 0.68rem; padding: 0.35rem 0.75rem; text-align: right; transform: translateY(-0.5rem); }
.agenda-day-column { border-left: 1px solid rgba(55, 47, 72, 0.06); min-height: 640px; position: relative; }
.agenda-free-slot { background: transparent; border: 0; border-bottom: 1px solid rgba(55, 47, 72, 0.055); display: block; height: 64px; padding: 0; width: 100%; }
.agenda-free-slot:hover { background: rgba(236, 233, 251, 0.38); }
.agenda-day-column .agenda-appointment { left: 0.45rem; overflow: hidden; position: absolute; right: 0.45rem; z-index: 1; }
.agenda-mobile-professional { display: none; }
.agenda-context { backdrop-filter: blur(18px); background: rgba(255, 255, 255, 0.88); border: 1px solid rgba(255, 255, 255, 0.95); border-radius: 1.1rem; box-shadow: 0 18px 45px rgba(49, 41, 69, 0.16); display: grid; gap: 0.75rem; padding: 1.15rem; position: absolute; right: 1rem; top: 7.2rem; width: min(21rem, calc(100% - 2rem)); z-index: 4; }
.agenda-context h2 { font-size: 1.35rem; letter-spacing: -0.04em; margin: 0; }
.agenda-context__procedure, .agenda-context__hint { color: var(--muted); font-size: 0.83rem; line-height: 1.5; margin: 0; }
.agenda-context dl { border-top: 1px solid var(--line); display: grid; gap: 0.55rem; margin: 0.25rem 0 0; padding-top: 0.75rem; }
.agenda-context dl div { display: flex; font-size: 0.78rem; justify-content: space-between; }
.agenda-context dt { color: var(--muted); }.agenda-context dd { font-weight: 650; margin: 0; }
.agenda-context__close { background: transparent; border: 0; color: var(--muted); font-size: 1.3rem; justify-self: end; line-height: 1; padding: 0; }

/* Agenda: a single-professional operational day, intentionally calm and dense. */
.agenda-experience { gap: 0.85rem; max-width: 100%; }
.agenda-header { align-items: center; padding: 0.15rem 0 0.2rem; }
.agenda-header h1 { font-size: 1.35rem; letter-spacing: -0.045em; line-height: 1; margin: 0; }
.agenda-create { border-radius: 0.55rem; box-shadow: 0 7px 15px rgba(81, 64, 149, 0.16); font-size: 0.76rem; min-height: 2.15rem; padding: 0.4rem 0.8rem; }
.agenda-control-row { align-items: center; display: flex; gap: 0.8rem; justify-content: space-between; min-width: 0; }
.agenda-period-control { align-items: center; display: flex; gap: 0.45rem; min-width: 0; }
.agenda-period-nav { gap: 0.12rem; }
.agenda-period-nav button, .agenda-today { background: #fff; border: 1px solid #eceaf2; border-radius: 0.48rem; color: #5b5666; font-size: 0.72rem; min-height: 2rem; padding: 0.3rem 0.6rem; }
.agenda-period-nav button { font-size: 1.15rem; padding: 0; width: 2rem; }
.agenda-period-label { color: #24212c; font-size: 0.78rem; font-weight: 670; overflow: hidden; padding-inline: 0.15rem; text-transform: capitalize; text-overflow: ellipsis; white-space: nowrap; }
.agenda-segmented { background: #f5f3fc; border-radius: 0.55rem; gap: 0; padding: 0.16rem; }
.agenda-segmented button { border-radius: 0.42rem; font-size: 0.68rem; min-height: 1.75rem; padding: 0.2rem 0.5rem; }
.agenda-segmented button.is-active { background: #fff; box-shadow: 0 2px 7px rgba(52, 43, 78, 0.08); }
.agenda-segmented button:disabled { cursor: default; opacity: 0.58; }
.agenda-filter-row { align-items: center; display: flex; gap: 0.45rem; }
.agenda-professional-select, .agenda-search, .agenda-filter-button { align-items: center; background: rgba(255, 255, 255, 0.88); border: 1px solid #eeecf3; border-radius: 0.58rem; color: #696474; display: inline-flex; font-size: 0.71rem; min-height: 2.15rem; }
.agenda-professional-select { min-width: 11.25rem; padding: 0.18rem 0.42rem; position: relative; }
.agenda-professional-select select { appearance: none; background: transparent; border: 0; color: #373241; font: inherit; font-weight: 630; min-width: 0; outline: 0; padding: 0 1.1rem 0 0.34rem; width: 100%; }
.agenda-professional-select__avatar, .agenda-professional-avatar { align-items: center; background: #eeeafd; border-radius: 50%; color: #6352b2; display: inline-flex; flex: 0 0 auto; font-size: 0.55rem; font-weight: 750; height: 1.25rem; justify-content: center; width: 1.25rem; }
.agenda-select-chevron { color: #898294; font-size: 0.9rem; pointer-events: none; position: absolute; right: 0.45rem; top: 0.45rem; }
.agenda-search { flex: 1; gap: 0.38rem; max-width: none; padding: 0 0.64rem; }
.agenda-search > span { color: #968fa2; font-size: 1rem; line-height: 1; transform: rotate(-18deg); }
.agenda-search input { appearance: none; background: transparent; border: 0; border-radius: 0; color: var(--ink); font-size: 0.73rem; min-height: 2rem; outline: 0; padding: 0; width: 100%; }
.agenda-search input::placeholder { color: #9e99a6; }
.agenda-filter-button { background: #fff; font: inherit; gap: 0.3rem; padding: 0 0.65rem; }
.agenda-filter-button span { color: #746a90; font-size: 0.9rem; line-height: 0; }
.agenda-workspace { align-items: start; display: grid; gap: 0.65rem; grid-template-columns: minmax(0, 1fr) 14.2rem; }
.agenda-timeline-surface { background: rgba(255, 255, 255, 0.72); border: 1px solid rgba(230, 227, 238, 0.82); border-radius: 0.85rem; overflow: hidden; }
.agenda-professional-heading { align-items: center; border-bottom: 1px solid #efedf3; display: flex; gap: 0.48rem; min-height: 3.15rem; padding: 0.52rem 1.25rem 0.5rem 3.7rem; }
.agenda-professional-heading > span:last-child { display: grid; gap: 0.05rem; }
.agenda-professional-heading strong { color: #383241; font-size: 0.72rem; font-weight: 700; }
.agenda-professional-heading small { color: #98919e; font-size: 0.63rem; }
.agenda-day { background: transparent; border: 0; border-radius: 0; box-shadow: none; display: grid; grid-template-columns: 3.15rem minmax(0, 1fr); overflow: visible; }
.agenda-day__time-axis { display: grid; grid-template-rows: repeat(13, 68px); position: relative; }
.agenda-day__time-axis span { color: #aaa4b0; font-size: 0.61rem; justify-self: end; padding-right: 0.65rem; transform: translateY(-0.37rem); }
.agenda-day__grid { min-height: 816px; position: relative; }
.agenda-free-slot { background: transparent; border: 0; border-bottom: 1px solid rgba(74, 62, 94, 0.065); display: block; height: 68px; padding: 0; transition: background 140ms ease; width: 100%; }
.agenda-free-slot:hover { background: rgba(240, 237, 252, 0.46); }
.agenda-day-card { background: #f1eeff; border: 1px solid rgba(120, 98, 201, 0.08); border-left: 2px solid #8e7ae1; border-radius: 0.42rem; color: #302a3b; display: grid; gap: 0.08rem; left: 0.45rem; overflow: hidden; padding: 0.37rem 0.55rem; position: absolute; right: 0.45rem; text-align: left; z-index: 2; }
.agenda-day-card:hover { filter: brightness(0.985); transform: none; }
.agenda-day-card__time, .agenda-day-card__procedure, .agenda-day-card em { color: #787183; font-size: 0.61rem; font-style: normal; line-height: 1.15; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.agenda-day-card strong { font-size: 0.71rem; letter-spacing: -0.01em; line-height: 1.15; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.agenda-day-card em { color: #605b6b; font-weight: 630; margin-top: 0.03rem; }
.agenda-day-card.is-compact { align-content: center; }
.agenda-day-card.is-compact .agenda-day-card__procedure, .agenda-day-card.is-compact em { display: none; }
.agenda-day-card--confirmado { background: #edf8f0; border-left-color: #65b987; }
.agenda-day-card--chegou { background: #fff6e5; border-left-color: #e1a940; }
.agenda-day-card--agendado { background: #f0edff; border-left-color: #947ae6; }
.agenda-current-time { align-items: center; display: flex; left: -3.15rem; pointer-events: none; position: absolute; right: 0; transform: translateY(-1px); z-index: 3; }
.agenda-current-time span { background: #fff; color: #735bd2; font-size: 0.6rem; font-weight: 750; padding: 0 0.55rem 0 0.35rem; }
.agenda-current-time i { background: #7961d7; flex: 1; height: 1px; opacity: 0.72; }
.agenda-no-results { color: #918b99; font-size: 0.75rem; left: 1rem; margin: 0; position: absolute; top: 1rem; }
.agenda-context { backdrop-filter: blur(18px); background: rgba(255, 255, 255, 0.84); border: 1px solid rgba(236, 233, 244, 0.94); border-radius: 0.85rem; box-shadow: 0 12px 30px rgba(49, 41, 69, 0.075); display: grid; gap: 0.7rem; padding: 0.9rem; position: sticky; right: auto; top: 1rem; width: auto; }
.agenda-context__close { align-self: start; font-size: 1.15rem; justify-self: end; margin: -0.15rem -0.15rem -0.35rem 0; }
.agenda-context__eyebrow { color: #8275bd; font-size: 0.56rem; font-weight: 750; letter-spacing: 0.1em; margin: 0; text-transform: uppercase; }
.agenda-context h2 { font-size: 1rem; letter-spacing: -0.035em; margin: -0.2rem 0 0; }
.agenda-status { align-self: start; border-radius: 999px; font-size: 0.6rem; font-weight: 700; padding: 0.23rem 0.42rem; }
.agenda-status.agenda-day-card--confirmado { background: #ebf8ef; color: #288354; }.agenda-status.agenda-day-card--chegou { background: #fff4df; color: #a66a10; }.agenda-status.agenda-day-card--agendado { background: #f0edff; color: #6955bd; }
.agenda-context dl { border-top: 1px solid #efedf3; display: grid; gap: 0.58rem; margin: 0.05rem 0 0; padding-top: 0.7rem; }
.agenda-context dl div { align-items: start; display: grid; font-size: 0.68rem; gap: 0.5rem; grid-template-columns: 4.5rem minmax(0, 1fr); justify-content: normal; }
.agenda-context dt { color: #9a94a0; }.agenda-context dd { color: #4a4453; font-weight: 630; line-height: 1.3; margin: 0; text-align: right; }
.agenda-context__note { color: #837d8a; font-size: 0.67rem; line-height: 1.4; margin: 0.1rem 0; }
.agenda-context__actions { border-top: 1px solid #efedf3; display: grid; gap: 0.4rem; grid-template-columns: 1fr 1.25fr; padding-top: 0.7rem; }
.agenda-context__actions button:not(.button) { background: #fff; border: 1px solid #e5e1ed; border-radius: 0.5rem; color: #5c5667; font: inherit; font-size: 0.66rem; font-weight: 650; min-height: 2rem; }
.agenda-context__actions .button, .agenda-context__primary { border-radius: 0.5rem; font-size: 0.65rem; min-height: 2rem; padding: 0.35rem 0.45rem; }
.agenda-context__primary { width: 100%; }

@media (max-width: 720px) {
  .auth-page { align-items: flex-start; padding: 1rem; }
  .auth-card { border-radius: 1rem; margin: 0 auto; padding: 1.5rem; }
  .auth-card__heading h1 { font-size: 1.48rem; }

  .login-page {
    display: block;
  }

  .login-page__atmosphere {
    display: none;
  }

  .login-page__form-area {
    align-items: flex-start;
    min-height: 100dvh;
    padding: 2rem 1.5rem;
  }

  .login-page__heading {
    margin: 4.8rem 0 2rem;
  }

  .app-shell {
    display: block;
    padding-bottom: 8rem;
  }

  .app-shell__sidebar {
    display: none;
  }

  .app-shell__content {
    padding: 1.3rem 1.15rem;
  }

  .app-shell__topbar {
    background: transparent;
    border-color: transparent;
    border-radius: 0;
    padding: 0.3rem 0;
  }

  .app-shell__clinic-context {
    font-size: 0.76rem;
    max-width: 9.5rem;
  }

  .app-shell__placeholder {
    margin-top: 6rem;
  }

  .app-shell__mobile-nav {
    backdrop-filter: blur(18px);
    background: rgba(255, 255, 255, 0.78);
    border: 1px solid rgba(255, 255, 255, 0.78);
    border-radius: 1.15rem;
    bottom: 0.75rem;
    box-shadow: 0 12px 30px rgba(49, 41, 69, 0.12);
    display: grid;
    gap: 0.15rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    left: 0.75rem;
    padding: 0.3rem;
    position: fixed;
    right: 0.75rem;
  }

  .app-shell__mobile-nav button {
    font-size: 0.7rem;
    min-height: 2.85rem;
    padding: 0.35rem 0.2rem;
    text-align: center;
  }

  .app-shell__mobile-settings {
    min-height: 2rem !important;
    padding: 0.1rem !important;
  }

  .clients-experience {
    gap: 1.2rem;
  }

  .clients-experience__header {
    align-items: flex-end;
  }

  .clients-experience__header .button {
    font-size: 0.82rem;
    min-height: 2.7rem;
    padding-inline: 0.8rem;
  }

  .clients-workspace {
    display: block;
    min-height: 0;
  }

  .clients-list-pane {
    border-right: 0;
    padding-right: 0;
  }

  .clients-experience--detail .clients-list-pane {
    display: none;
  }

  .clients-profile-pane {
    padding-top: 0.3rem;
  }

  .clients-profile-empty {
    margin: 5rem auto;
  }

  .client-profile__back {
    display: inline-flex;
    margin-bottom: 1.4rem;
  }

  .client-profile__header {
    align-items: start;
    grid-template-columns: auto minmax(0, 1fr);
  }

  .client-profile__header .button {
    grid-column: 1 / -1;
    justify-self: start;
    margin-top: 0.3rem;
  }

  .client-editor-layer {
    align-items: flex-end;
    padding: 0;
  }

  .client-form {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    max-height: min(44rem, calc(100dvh - 1rem));
    padding: 1.2rem;
    width: 100%;
  }

  .settings-experience {
    gap: 1.2rem;
  }

  .settings-experience__header {
    align-items: flex-end;
  }

  .settings-experience__header .button {
    font-size: 0.82rem;
    min-height: 2.7rem;
    padding-inline: 0.8rem;
  }

  .settings-workspace {
    display: block;
    min-height: 0;
  }

  .settings-list-pane {
    border-right: 0;
    padding-right: 0;
  }

  .settings-experience:has(.catalog-detail) .settings-list-pane {
    display: none;
  }

  .settings-detail-pane {
    padding-top: 0.3rem;
  }

  .catalog-detail__back {
    display: inline-flex;
    margin-bottom: 1.4rem;
  }

  .catalog-editor-layer {
    align-items: flex-end;
    padding: 0;
  }

  .catalog-form {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    max-height: min(44rem, calc(100dvh - 1rem));
    padding: 1.2rem;
    width: 100%;
  }

  .agenda-experience { gap: 0.9rem; }
  .agenda-header { align-items: flex-start; gap: 0.85rem; }
  .agenda-header__title h1 { font-size: 2.2rem; }
  .agenda-header__title > p:last-child { display: none; }
  .agenda-create { min-height: 2.55rem; padding-inline: 0.8rem; }
  .agenda-toolbar { align-items: stretch; display: grid; gap: 0.55rem; }
  .agenda-toolbar__period { justify-content: space-between; }
  .agenda-toolbar__period strong { font-size: 0.78rem; }
  .agenda-segmented { justify-self: stretch; }
  .agenda-segmented button { flex: 1; padding-inline: 0.25rem; }
  .agenda-filters { gap: 0.4rem; }
  .agenda-filters select { min-width: 0; width: 42%; }
  .agenda-search { max-width: none; }
  .agenda-month { border-radius: 1rem; }
  .agenda-month__weekdays { font-size: 0.56rem; padding: 0.58rem 0; }
  .agenda-month-day { gap: 0.2rem; min-height: 4.9rem; padding: 0.3rem; }
  .agenda-month-day__number { font-size: 0.68rem; height: 1.35rem; width: 1.35rem; }
  .agenda-month-entry { border-left-width: 2px; font-size: 0; height: 0.22rem; padding: 0; }
  .agenda-month-entry b { display: none; }
  .agenda-month-day small { display: none; }
  .agenda-week { gap: 0.35rem; grid-template-columns: repeat(7, minmax(3.8rem, 1fr)); }
  .agenda-week-day { border-radius: 0.75rem; min-height: 12rem; padding: 0.35rem; }
  .agenda-week-day__heading { display: grid; gap: 0.08rem; justify-items: center; }
  .agenda-week-day > .agenda-appointment { min-height: 0.4rem; padding: 0; }
  .agenda-week-day > .agenda-appointment > * { display: none; }
  .agenda-week-day > p { font-size: 0.63rem; }
  .agenda-day { border-radius: 1rem; }
  .agenda-mobile-professional { background: rgba(236, 233, 251, 0.55); color: var(--purple-deep); display: block; font-size: 0.78rem; font-weight: 680; padding: 0.65rem 0.85rem; }
  .agenda-day__header, .agenda-day__body { grid-template-columns: 3.55rem minmax(0, 1fr); min-width: 0; }
  .agenda-day__header > div:not(:nth-child(2)), .agenda-day-column--additional { display: none; }
  .agenda-day__header > div { padding: 0.58rem 0.65rem; }
  .agenda-day__times span { font-size: 0.62rem; padding-right: 0.45rem; }
  .agenda-day-column .agenda-appointment { left: 0.25rem; right: 0.25rem; }
  .agenda-context { border-bottom-left-radius: 0; border-bottom-right-radius: 0; bottom: 0; left: 0; position: fixed; right: 0; top: auto; width: 100%; }
}

@media (max-width: 720px) {
  .agenda-experience { gap: 0.7rem; }
  .agenda-header { align-items: center; }
  .agenda-header h1 { font-size: 1.25rem; }
  .agenda-create { font-size: 0.72rem; min-height: 2.1rem; }
  .agenda-control-row { align-items: stretch; display: grid; gap: 0.55rem; }
  .agenda-period-control { justify-content: space-between; }
  .agenda-period-label { font-size: 0.68rem; max-width: 11rem; }
  .agenda-segmented { justify-self: stretch; }
  .agenda-segmented button { flex: 1; }
  .agenda-filter-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
  .agenda-professional-select { min-width: 0; }
  .agenda-search { grid-column: 1 / -1; grid-row: 2; }
  .agenda-filter-button { display: none; }
  .agenda-workspace { display: block; }
  .agenda-professional-heading { padding-left: 3.3rem; }
  .agenda-day { border-radius: 0; grid-template-columns: 2.8rem minmax(0, 1fr); }
  .agenda-day__time-axis span { padding-right: 0.5rem; }
  .agenda-current-time { left: -2.8rem; }
  .agenda-day-card { left: 0.25rem; right: 0.25rem; }
  .agenda-context { border-bottom-left-radius: 0; border-bottom-right-radius: 0; bottom: 0; left: 0; max-height: 75dvh; overflow: auto; position: fixed; right: 0; top: auto; width: auto; z-index: 10; }
}

/* Desktop shell — reconstructed from the approved sidebar reference. */
@media (min-width: 721px) {
  .app-shell {
    grid-template-columns: 11rem minmax(0, 1fr);
    min-height: 100dvh;
    width: 100%;
  }

  .app-shell__sidebar {
    background: linear-gradient(160deg, rgba(253, 253, 255, 0.96), rgba(247, 246, 255, 0.9));
    border-right: 1px solid rgba(78, 62, 121, 0.07);
    height: 100vh;
    padding: 1.65rem 0.36rem 1.8rem;
    position: sticky;
    top: 0;
    justify-content: flex-start;
  }

  .sidebar-logo {
    align-items: center;
    color: #5749d8;
    display: grid;
    justify-items: center;
    line-height: 1;
    margin-inline: auto;
    width: 7rem;
  }

  .sidebar-logo svg { display: block; height: 3.15rem; width: 3.8rem; }
  .sidebar-logo span, .sidebar-logo small { font-family: "Helvetica Neue", Arial, sans-serif; text-align: center; }
  .sidebar-logo span { color: #17172d; font-size: 1.34rem; font-weight: 300; letter-spacing: 0.22em; margin-left: 0.22em; margin-top: 0.72rem; }
  .sidebar-logo small { color: #29283d; font-size: 0.66rem; font-weight: 400; letter-spacing: 0.42em; margin-left: 0.42em; margin-top: 0.4rem; }

  .app-shell__nav {
    gap: 0.35rem;
    margin-top: 1.15rem;
    padding: 0 0.35rem;
  }

  .sidebar-clinic-identity {
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(95, 75, 147, 0.11);
    border-radius: 0.82rem;
    margin: 0.75rem 0.48rem 0;
    padding: 0.45rem 0.5rem;
  }

  .sidebar-clinic-identity .clinic-identity { gap: 0.28rem; }
  .sidebar-clinic-identity .clinic-identity__logo { height: 1.8rem; width: 5.6rem; }
  .sidebar-clinic-identity .clinic-identity__logo:has(> span) { height: 1.9rem; width: 1.9rem; }
  .sidebar-clinic-identity .clinic-identity__name { color: #3c3650; font-size: 0.68rem; font-weight: 670; line-height: 1.35; }

  .app-shell__nav button {
    align-items: center;
    border-radius: 1.1rem;
    color: #5c5a86;
    display: grid;
    font-size: 0.77rem;
    font-weight: 500;
    gap: 0.66rem;
    grid-template-columns: 1.72rem minmax(0, 1fr) auto;
    min-height: 3.2rem;
    padding: 0.5rem 0.72rem;
    position: relative;
  }

  .app-shell__nav button svg,
  .app-shell__sidebar-actions button svg,
  .app-shell__profile-card > svg {
    color: #625f94;
    height: 1.22rem;
    stroke-width: 1.4;
    width: 1.22rem;
  }

  .app-shell__nav button:hover { background: rgba(242, 239, 254, 0.52); color: #6245d7; }
  .app-shell__nav button.is-active {
    background: linear-gradient(100deg, rgba(253, 252, 255, 0.92), rgba(233, 225, 255, 0.7));
    box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.9), 0 6px 16px rgba(99, 76, 173, 0.045);
    color: #6344d8;
    font-weight: 550;
  }

  .app-shell__nav button.is-active::before {
    background: #7658f1;
    border-radius: 0 999px 999px 0;
    content: "";
    height: 1.45rem;
    left: -0.71rem;
    position: absolute;
    width: 0.17rem;
  }

  .app-shell__nav button.is-active::after {
    background: rgba(255, 255, 255, 0.72);
    border-radius: 0.78rem;
    box-shadow: 0 3px 8px rgba(81, 58, 180, 0.065);
    content: "";
    height: 2.15rem;
    left: 0.45rem;
    position: absolute;
    width: 2.25rem;
    z-index: -0;
  }

  .app-shell__nav button.is-active svg { color: #6748dd; position: relative; z-index: 1; }
  .app-shell__nav button > span { position: relative; z-index: 1; }
  .app-shell__conversation-badge { align-items: center; background: #ddd2ff; border-radius: 50%; color: #5034c5; display: inline-flex; font-size: 0.65rem; font-weight: 700; height: 1.32rem; justify-content: center; width: 1.32rem; }

  .app-shell__sidebar-footer { border-top: 0; gap: 0; margin-top: auto; padding: 0 0.16rem; }
  .app-shell__account-menu { position: relative; }
  .app-shell__profile-card {
    align-items: center;
    backdrop-filter: blur(13px);
    background: rgba(255, 255, 255, 0.42);
    border: 1px solid rgba(255, 255, 255, 0.82);
    border-radius: 1.12rem;
    box-shadow: 0 7px 18px rgba(56, 43, 95, 0.032), inset 0 1px rgba(255, 255, 255, 0.74);
    color: #50507d;
    display: grid;
    gap: 0.38rem;
    grid-template-columns: 1.95rem minmax(0, 1fr) 0.72rem;
    min-height: 5.15rem;
    padding: 0.6rem 0.62rem;
    text-align: left;
    width: 100%;
  }

  .app-shell__profile-avatar { align-items: center; background: linear-gradient(145deg, #ded8f7, #a897df); border: 2px solid rgba(255, 255, 255, 0.86); border-radius: 50%; color: white; display: inline-flex; font-size: 0.58rem; font-weight: 650; height: 1.95rem; justify-content: center; width: 1.95rem; }
  .app-shell__profile-copy { display: grid; gap: 0.18rem; min-width: 0; }
  .app-shell__profile-copy strong, .app-shell__profile-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .app-shell__profile-copy strong { color: #4f4c7d; font-size: 0.69rem; font-weight: 560; }
  .app-shell__profile-copy small { color: #8580a6; font-size: 0.6rem; }
  .app-shell__profile-card > svg { color: #66618f; height: 0.88rem; width: 0.88rem; }

  .app-shell__account-popover { background: #fff; border: 1px solid #e1deea; border-radius: 0.95rem; bottom: calc(100% + 0.55rem); box-shadow: 0 18px 36px rgba(49, 41, 69, 0.16); display: grid; gap: 0.72rem; left: -0.16rem; min-width: 17.2rem; padding: 0.8rem 0.72rem 0.72rem; position: absolute; z-index: 20; }
  .app-shell__account-identity { align-items: center; border-bottom: 1px solid #eeeaf4; display: grid; gap: 0.7rem; grid-template-columns: 3.1rem minmax(0, 1fr); padding: 0.1rem 0.35rem 0.82rem; }
  .app-shell__account-avatar { align-items: center; background: linear-gradient(145deg, #ded8f7, #a897df); border: 2px solid #fff; border-radius: 50%; box-shadow: 0 2px 8px rgba(83, 62, 145, 0.14); color: #fff; display: inline-flex; font-size: 0.9rem; font-weight: 650; height: 3.1rem; justify-content: center; width: 3.1rem; }
  .app-shell__account-identity-copy { display: grid; gap: 0.38rem; min-width: 0; }
  .app-shell__account-identity-copy strong { color: #242139; font-size: 0.86rem; font-weight: 680; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .app-shell__account-identity-copy small { background: #f0f2f6; border-radius: 99rem; color: #68738a; font-size: 0.68rem; justify-self: start; padding: 0.26rem 0.62rem; }
  .app-shell__account-actions { display: grid; gap: 0.18rem; }
  .app-shell__account-actions button { align-items: center; background: transparent; border: 0; border-radius: 0.65rem; color: #5d5a87; display: grid; font: inherit; font-size: 0.8rem; font-weight: 520; gap: 0.7rem; grid-template-columns: 1.35rem minmax(0, 1fr); min-height: 2.62rem; padding: 0 0.55rem; text-align: left; }
  .app-shell__account-actions button svg { color: currentColor; height: 1.24rem; width: 1.24rem; }
  .app-shell__account-actions button:hover, .app-shell__account-actions button.is-active { background: #eeeafd; color: #6547d5; }

  .app-shell__sidebar-footer {
    border-top: 1px solid rgba(78, 62, 121, 0.12);
    gap: 0.72rem;
    padding: 0.9rem 0.52rem 0.12rem;
  }
  .app-shell__sidebar-profile {
    align-items: center;
    display: grid;
    gap: 0.56rem;
    grid-template-columns: 2rem minmax(0, 1fr);
    min-height: 2.35rem;
    padding: 0 0.18rem;
  }
  .app-shell__sidebar-profile .app-shell__profile-avatar {
    background: linear-gradient(145deg, #ece7ff, #d9cffb);
    border: 0;
    color: #6246d5;
    font-size: 0.64rem;
    height: 2rem;
    width: 2rem;
  }
  .app-shell__sidebar-profile .app-shell__profile-avatar img {
    border-radius: inherit;
    height: 100%;
    object-fit: cover;
    width: 100%;
  }
  .app-shell__sidebar-profile .app-shell__profile-copy { gap: 0.16rem; }
  .app-shell__sidebar-profile .app-shell__profile-copy strong {
    color: #302a40;
    font-size: 0.72rem;
    font-weight: 680;
  }
  .app-shell__sidebar-profile .app-shell__profile-copy small {
    align-self: start;
    background: #f0f2f7;
    border-radius: 99rem;
    color: #69758d;
    font-size: 0.56rem;
    line-height: 1.1;
    padding: 0.16rem 0.4rem;
  }
  .app-shell__sidebar-actions { display: grid; gap: 0.12rem; }
  .app-shell__sidebar-actions button {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: 0.62rem;
    color: #575472;
    display: grid;
    font: inherit;
    font-size: 0.74rem;
    font-weight: 560;
    gap: 0.6rem;
    grid-template-columns: 1.28rem minmax(0, 1fr);
    min-height: 2.38rem;
    padding: 0 0.42rem;
    text-align: left;
    transition: background 140ms ease, color 140ms ease;
    width: 100%;
  }
  .app-shell__sidebar-actions button svg {
    color: currentColor;
    height: 1.08rem;
    width: 1.08rem;
  }
  .app-shell__sidebar-actions button:hover,
  .app-shell__sidebar-actions button.is-active { background: #eeeafd; color: #6547d5; }
}

/* Configurações > Dados da clínica — identity, legal details and address. */
.settings-clinic { gap: 1.2rem; max-width: 80rem; }
.settings-clinic .settings-experience__header { align-items: flex-start; }
.settings-clinic .settings-experience__header h1 { font-size: clamp(1.8rem, 3vw, 2.45rem); }
.settings-clinic .settings-experience__header p:last-child { color: #7b7484; font-size: 0.84rem; margin: 0.55rem 0 0; }
.settings-clinic__form { display: grid; gap: 1rem; }
.settings-clinic .settings-card { margin-top: 0; }
.settings-clinic__identity { align-items: center; display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr) auto; min-height: 7.1rem; padding: 1.15rem 1.25rem; }
.settings-clinic__identity-main { display: grid; justify-items: center; min-width: 0; text-align: center; }
.settings-clinic__identity-brand { margin-top: 0.7rem; }
.settings-clinic__identity-brand .clinic-identity__logo { border-radius: 1rem; color: #6347cf; font-size: 1rem; height: 4.3rem; width: 8rem; }
.settings-clinic__identity h2, .settings-clinic__details h2 { color: #2b2537; font-size: 1.05rem; letter-spacing: -0.025em; margin: 0.22rem 0 0; }
.settings-clinic__identity .clinic-identity__name { margin: 0; }
.settings-clinic__identity-main > p:last-child { color: #7a7383; font-size: 0.75rem; margin: 0.28rem 0 0; }
.settings-clinic__logo-actions { align-items: flex-end; display: grid; gap: 0.34rem; justify-items: end; }
.settings-clinic__logo-actions .button { min-height: 2.3rem; }
.settings-clinic__remove-logo { background: transparent; border: 0; color: #9e3d55; font: inherit; font-size: 0.7rem; padding: 0.18rem 0.35rem; }
.settings-clinic__remove-logo:hover { text-decoration: underline; }
.settings-clinic__details { padding: 1.25rem; }
.settings-clinic__section-heading { align-items: flex-start; display: flex; gap: 1rem; justify-content: space-between; margin-bottom: 1.25rem; }
.settings-clinic__section-heading > p { color: #857e8d; font-size: 0.74rem; line-height: 1.45; margin: 0; max-width: 19rem; text-align: right; }
.settings-clinic__details fieldset { border: 0; margin: 0; min-inline-size: 0; padding: 0; }
.settings-clinic__details fieldset:disabled { opacity: 0.62; }
.settings-clinic .settings-form-grid { column-gap: 1.15rem; row-gap: 0.95rem; }
.settings-clinic .settings-form-grid label > span { color: #554f5f; font-size: 0.72rem; font-weight: 680; }
.settings-clinic .settings-form-grid input { border-color: #e0dce8; box-shadow: 0 1px 2px rgba(48, 37, 69, 0.02); min-height: 2.65rem; }
.settings-clinic .settings-form-grid input:focus { border-color: #ab98ee; box-shadow: 0 0 0 3px rgba(124, 92, 255, 0.12); outline: 0; }
.settings-clinic__pending-logo, .settings-clinic__notice { background: #f5f2ff; border-radius: 0.62rem; color: #65568c; font-size: 0.74rem; margin: 1rem 0 0; padding: 0.68rem 0.78rem; }
.settings-clinic__notice { background: #ecfaef; color: #287543; }
.settings-clinic__details .form-error { margin: 1rem 0 0; }
.settings-clinic__footer { display: flex; justify-content: flex-end; margin-top: 1.3rem; }
.settings-clinic__footer .button { min-height: 2.6rem; padding-inline: 1.1rem; }

@media (max-width: 760px) {
  .settings-clinic__identity { grid-template-columns: minmax(0, 1fr); }
  .settings-clinic__logo-actions { justify-items: center; }
  .settings-clinic__section-heading { display: grid; }
  .settings-clinic__section-heading > p { text-align: left; }
  .settings-clinic__footer .button { width: 100%; }
}

/* Agenda views — visual data is deliberately separate from the appointment domain. */
.agenda-experience { gap: 0.72rem; }
.agenda-header { align-items: center; padding: 0.05rem 0 0.15rem; }
.agenda-header > span { display: grid; gap: 0.22rem; }
.agenda-header h1 { font-size: 1.42rem; font-weight: 680; }
.agenda-header p { color: #8f8a98; font-size: 0.59rem; margin: 0; }
.agenda-create { border-radius: 0.54rem; font-size: 0.68rem; min-height: 2.05rem; padding: 0.35rem 0.8rem; }
.agenda-control-row { border-top: 1px solid #f0eef4; padding-top: 0.64rem; }
.agenda-period-label { font-size: 0.72rem; font-weight: 650; }
.agenda-filter-row { margin-bottom: 0.1rem; }
.agenda-service-select { align-items: center; background: #fff; border: 1px solid #eeecf3; border-radius: 0.58rem; display: inline-flex; font-size: 0.71rem; gap: 0.34rem; min-height: 2.15rem; padding: 0 0.55rem; }
.agenda-service-select span { color: #837a9f; font-size: 0.75rem; }
.agenda-service-select select { appearance: none; background: transparent; border: 0; color: #4a4554; font: inherit; min-width: 8rem; outline: 0; }
.agenda-main { align-items: start; display: grid; gap: 0.65rem; grid-template-columns: minmax(0, 1fr) 14.7rem; min-width: 0; }
.agenda-primary-view { min-width: 0; position: relative; }
.agenda-view-empty { align-items: center; background: rgba(255, 255, 255, .86); border: 1px solid rgba(102, 81, 131, .1); border-radius: .9rem; box-shadow: 0 12px 28px rgba(72, 53, 95, .06); color: #81778a; display: flex; flex-direction: column; gap: .3rem; left: 50%; padding: 1rem 1.35rem; pointer-events: none; position: absolute; text-align: center; top: 5.5rem; transform: translateX(-50%); z-index: 4; }.agenda-view-empty strong { color: #42394b; font-size: .8rem; }.agenda-view-empty span { font-size: .7rem; }
.agenda-loading-skeleton { display: grid; gap: .7rem; padding: 1rem; position: relative; z-index: 4; }.agenda-loading-skeleton i { animation: agenda-loading-pulse 1.2s ease-in-out infinite alternate; background: linear-gradient(90deg, #f1edf8, #faf8ff, #f1edf8); border-radius: .6rem; display: block; height: 3.8rem; }.agenda-loading-skeleton i:nth-child(2) { animation-delay: .15s; }.agenda-loading-skeleton i:nth-child(3) { animation-delay: .3s; }.agenda-loading-skeleton span { color: #776d82; font-size: .74rem; font-weight: 650; text-align: center; }@keyframes agenda-loading-pulse { from { opacity: .55; } to { opacity: 1; } }.agenda-refetch-indicator { color: #655578; font-size: .72rem; font-weight: 700; margin: .35rem 0 -.1rem; text-align: right; }.agenda-read-error { align-items: center; display: flex; flex-wrap: wrap; gap: .45rem .8rem; }.agenda-read-error p { margin: 0; }.agenda-read-error small { color: #736b7b; font-size: .7rem; }

.agenda-day-view { background: rgba(255, 255, 255, 0.7); border: 1px solid #efedf3; border-radius: 0.82rem; overflow: hidden; }
.agenda-day-professional { align-items: center; background: linear-gradient(100deg, rgba(248, 247, 252, 0.9), rgba(255,255,255,0.78)); border-bottom: 1px solid #efedf3; display: flex; gap: 0.45rem; min-height: 3.15rem; padding: 0.55rem 1rem 0.55rem 3.75rem; }
.agenda-avatar { align-items: center; background: linear-gradient(140deg, #e9e2fc, #bbafea); border-radius: 50%; color: #5d4bb0; display: inline-flex; font-size: 0.57rem; font-weight: 700; height: 1.45rem; justify-content: center; width: 1.45rem; }
.agenda-day-professional > span:last-child { display: grid; gap: 0.1rem; }
.agenda-day-professional strong { color: #3e3947; font-size: 0.68rem; }.agenda-day-professional small { color: #92909a; font-size: 0.58rem; }
.agenda-day-grid { display: grid; grid-template-columns: 3.25rem minmax(0, 1fr); }
.agenda-time-axis { display: grid; grid-template-rows: repeat(13, 64px); }
.agenda-time-axis span { color: #a29ca8; font-size: 0.6rem; justify-self: end; padding-right: 0.58rem; transform: translateY(-0.34rem); }
.agenda-day-slots { min-height: 768px; position: relative; }
.agenda-slot { background: transparent; border: 0; border-bottom: 1px solid rgba(68, 55, 84, 0.055); display: block; height: 64px; width: 100%; }
.agenda-slot:hover { background: rgba(239, 235, 253, 0.26); }
.agenda-appointment-block { align-items: start; background: #f0edff; border: 1px solid rgba(126, 105, 199, 0.08); border-radius: 0.44rem; color: #3a3443; display: flex; justify-content: space-between; left: 0.42rem; overflow: hidden; padding: 0.4rem 0.55rem; position: absolute; right: 0.42rem; text-align: left; z-index: 2; }
.agenda-appointment-block:hover { filter: brightness(0.985); }
.agenda-appointment-block__copy { display: grid; gap: 0.08rem; min-width: 0; }.agenda-appointment-block__copy strong { font-size: 0.68rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.agenda-appointment-block__copy small { color: #77717e; font-size: 0.58rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.agenda-appointment-block__copy em { align-self: start; border-radius: 999px; font-size: 0.52rem; font-style: normal; margin-top: 0.1rem; padding: 0.12rem 0.28rem; }.agenda-appointment-block__time { color: #615b6b; font-size: 0.56rem; font-weight: 640; text-align: right; }
.agenda-status--confirmado { background: #e9f8ed; color: #287b4c; }.agenda-status--chegou { background: #fff2da; color: #a3650d; }.agenda-status--agendado { background: #ebe7ff; color: #6751c3; }.agenda-status--concluido { background: #edf7ef; color: #378254; }.agenda-status--faltou, .agenda-status--cancelado { background: #f1eff3; color: #77707e; }
.agenda-appointment-block.agenda-status--confirmado { background: linear-gradient(100deg, #effaf2, #e9f6ed); }.agenda-appointment-block.agenda-status--chegou { background: linear-gradient(100deg, #fff7e8, #fff1d6); }.agenda-appointment-block.agenda-status--agendado { background: linear-gradient(100deg, #f1eeff, #ebe5ff); }
.agenda-now { align-items: center; display: flex; left: -3.25rem; pointer-events: none; position: absolute; right: 0; transform: translateY(-1px); z-index: 3; }.agenda-now span { background: #fff; color: #ed4f4b; font-size: 0.58rem; font-weight: 750; padding-right: 0.38rem; }.agenda-now b { background: #f0635f; border-radius: 50%; height: 0.32rem; margin-left: -0.02rem; width: 0.32rem; }.agenda-now i { background: #f0635f; flex: 1; height: 1px; opacity: 0.72; }

.agenda-details { background: rgba(255,255,255,0.8); border: 1px solid #efedf4; border-radius: 0.82rem; box-shadow: 0 10px 28px rgba(47,39,71,0.055); display: grid; gap: 0.65rem; min-height: 25rem; padding: 0.86rem; position: sticky; top: 0.8rem; }.agenda-details__close { background: transparent; border: 0; color: #9993a0; font-size: 1rem; justify-self: end; margin: -0.22rem -0.18rem -0.36rem 0; }.agenda-details__eyebrow { color: #766ab5; font-size: 0.53rem; font-weight: 720; letter-spacing: .1em; margin: 0; text-transform: uppercase; }.agenda-details__title { display: grid; gap: .38rem; }.agenda-details h2 { font-size: 1.02rem; letter-spacing: -.035em; margin: 0; }.agenda-details__title > span { align-self: start; border-radius: 999px; font-size: .57rem; font-weight: 650; padding: .17rem .34rem; }.agenda-details dl { border-top: 1px solid #efedf3; display: grid; gap: .62rem; margin: .1rem 0 0; padding-top: .7rem; }.agenda-details dl div { display: grid; gap: .18rem; }.agenda-details dt { color: #a09aa5; font-size: .57rem; }.agenda-details dd { color: #4e4856; font-size: .66rem; font-weight: 620; margin: 0; }.agenda-details dd small { color: #918a97; display: block; font-size: .55rem; font-weight: 500; margin-top: .1rem; }.agenda-details__actions { border-top: 1px solid #efedf3; margin-top: .12rem; padding-top: .7rem; }.agenda-details__actions h3 { color: #534d5b; font-size: .65rem; margin: 0 0 .28rem; }.agenda-details__actions p { color: #97919c; font-size: .58rem; line-height: 1.45; margin: 0; }

.agenda-week-view { background: #fff; border: 1px solid #efedf3; border-radius: .82rem; display: grid; grid-template-columns: 3.15rem repeat(7, minmax(5.4rem, 1fr)); min-height: 37rem; overflow-x: auto; }.agenda-week-time-axis { border-right: 1px solid #f0eef4; display: grid; grid-template-rows: 3.2rem repeat(6, 5.4rem); }.agenda-week-time-axis span, .agenda-week-time-axis small { color: #9993a1; font-size: .56rem; justify-self: end; padding: .62rem .45rem 0 0; }.agenda-week-column { border-right: 1px solid #f0eef4; min-width: 5.4rem; }.agenda-week-column__heading { background: #fcfbff; border: 0; border-bottom: 1px solid #efedf3; color: #524c59; display: grid; gap: .08rem; justify-items: center; min-height: 3.2rem; padding: .35rem; width: 100%; }.agenda-week-column__heading span { color: #98919e; font-size: .54rem; font-weight: 700; }.agenda-week-column__heading strong { font-size: .75rem; }.agenda-week-column__body { display: grid; gap: .34rem; min-height: 33.8rem; padding: .35rem; }.agenda-week-card { background: #f0edff; border: 0; border-radius: .35rem; color: #403a49; display: grid; gap: .08rem; padding: .35rem; text-align: left; }.agenda-week-card small { color: #776f84; font-size: .5rem; }.agenda-week-card strong { font-size: .58rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.agenda-week-card span { color: #807987; font-size: .5rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.agenda-week-card.agenda-status--confirmado { background: #edf8f0; }.agenda-week-card.agenda-status--chegou { background: #fff4df; }.agenda-week-column__empty { color: #c1bcc5; font-size: .57rem; padding-top: 1rem; text-align: center; }

.agenda-month-view { background: #fff; border: 1px solid #efedf3; border-radius: .82rem; overflow: hidden; }.agenda-month-weekdays, .agenda-month-grid { display: grid; grid-template-columns: repeat(var(--agenda-month-columns, 7), minmax(0,1fr)); }.agenda-month-weekdays { border-bottom: 1px solid #efedf3; }.agenda-month-weekdays span { color: #898394; font-size: .55rem; font-weight: 700; padding: .65rem 0; text-align: center; }.agenda-month-cell { border-bottom: 1px solid #f2f0f5; border-right: 1px solid #f2f0f5; min-height: 6.35rem; padding: .38rem .42rem; }.agenda-month-cell.is-last-in-row { border-right: 0; }.agenda-month-cell.is-outside { background: #fdfcff; }.agenda-month-cell.is-outside .agenda-month-cell__date { color: #c9c4cd; }.agenda-month-cell.is-selected { background: linear-gradient(135deg, rgba(249,248,255,.82), rgba(240,235,255,.62)); }.agenda-month-cell__date { background: transparent; border: 0; color: #4c4653; font-size: .66rem; font-weight: 650; padding: 0 0 .32rem; }.agenda-month-entry { align-items: center; background: #f2effe; border: 0; border-radius: .22rem; color: #4d4656; display: grid; font-size: .48rem; gap: .2rem; grid-template-columns: auto minmax(0,1fr); margin-bottom: .15rem; overflow: hidden; padding: .17rem .22rem; text-align: left; width: 100%; }.agenda-month-entry span { color: #716b7b; font-size: .45rem; }.agenda-month-entry strong { font-size: .48rem; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.agenda-month-entry.agenda-status--confirmado { background: #ebf7ef; }.agenda-month-entry.agenda-status--chegou { background: #fff3df; }.agenda-month-cell__more { background: transparent; border: 0; color: #6549cf; font-size: .5rem; font-weight: 650; padding: .13rem 0; }

/* Shared overflow behavior; floating chips only belong to temporal views. */
.agenda-overflow { position: relative; }
.agenda-overflow__trigger { background: #f2edff; border: 1px solid #dfd5f4; border-radius: 999px; color: #6444b2; cursor: pointer; font: inherit; font-size: .68rem; font-weight: 650; line-height: 1.2; padding: .18rem .55rem; white-space: nowrap; }
.agenda-overflow__trigger:hover { background: #e9dffd; }
.agenda-overflow__trigger:focus-visible, .agenda-overflow__item:focus-visible { outline: 2px solid #8763d9; outline-offset: 2px; }
.agenda-overflow-chip { position: absolute; right: .4rem; width: max-content; max-width: calc(100% - .8rem); z-index: 7; }
.agenda-overflow-chip .agenda-overflow__trigger { box-shadow: 0 0 0 2px #fff; display: block; font-size: .65rem; height: 18px; line-height: 16px; padding: 0 .5rem; }
.agenda-month-cell > .agenda-overflow { margin-top: .15rem; }
.agenda-overflow__popover { background: #fff; border: 1px solid #e4deee; border-radius: .8rem; box-shadow: 0 12px 34px #34254d26; color: #4b4354; display: flex; flex-direction: column; max-height: min(380px, calc(100dvh - 24px)); padding: .65rem; position: fixed; width: 340px; z-index: 80; }
.agenda-overflow__popover header { align-items: start; display: flex; gap: .5rem; justify-content: space-between; padding: .1rem .15rem .5rem; }
.agenda-overflow__popover header span { display: grid; gap: .18rem; }
.agenda-overflow__popover header strong { font-size: .85rem; }
.agenda-overflow__popover header small { color: #81778d; font-size: .68rem; }
.agenda-overflow__popover header button { background: transparent; border: 0; border-radius: .35rem; color: #81778d; cursor: pointer; font-size: 1.15rem; height: 1.6rem; width: 1.6rem; }
.agenda-overflow__list { display: grid; gap: .35rem; min-height: 0; overflow: auto; padding: .15rem; overscroll-behavior: contain; }
.agenda-overflow__item { background: #faf9fd; border: 1px solid #eee9f4; border-radius: .5rem; color: #4b4354; cursor: pointer; display: grid; gap: .22rem; padding: .55rem .65rem; text-align: left; width: 100%; }
.agenda-overflow__item:hover { background: #f0ebff; }
.agenda-overflow__item strong { font-size: .82rem; overflow-wrap: anywhere; }
.agenda-overflow__item > span { color: #665b72; font-size: .74rem; }
.agenda-overflow__item small { color: #81778d; font-size: .69rem; }
.agenda-overflow__item em { border-radius: 999px; font-size: .62rem; font-style: normal; justify-self: start; padding: .15rem .4rem; }
.agenda-overflow__item em.agenda-status--confirmado { background: #edf6ff; color: #3586e8; }

.agenda-month-aside { display: grid; gap: .65rem; }.agenda-month-aside > section { background: rgba(255,255,255,.72); border: 1px solid #efedf4; border-radius: .75rem; padding: .72rem; }.agenda-month-aside header { align-items: center; display: flex; justify-content: space-between; }.agenda-month-aside header strong { color: #514a58; font-size: .62rem; text-transform: capitalize; }.agenda-month-aside header span { color: #735fd0; font-size: .75rem; }.agenda-mini-weekdays, .agenda-mini-calendar { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; }.agenda-mini-weekdays { margin-top: .6rem; }.agenda-mini-weekdays span { color: #aaa4af; font-size: .47rem; }.agenda-mini-calendar { gap: .1rem; margin-top: .35rem; }.agenda-mini-calendar span { color: #625b6b; font-size: .5rem; padding: .14rem 0; }.agenda-mini-calendar span.is-outside { color: #c9c4cd; }.agenda-mini-calendar span.is-selected { background: #6f50db; border-radius: 50%; color: white; margin-inline: auto; width: 1rem; }.agenda-visible-professionals h3, .agenda-month-summary h3 { color: #504957; font-size: .64rem; margin: 0 0 .55rem; }.agenda-visible-professionals > div { align-items: center; display: grid; gap: .42rem; grid-template-columns: 1.35rem minmax(0,1fr) auto; margin-top: .42rem; }.agenda-visible-professionals > div > span { align-items: center; background: #ede9fb; border-radius: 50%; color: #6455a0; display: inline-flex; font-size: .43rem; font-weight: 700; height: 1.25rem; justify-content: center; width: 1.25rem; }.agenda-visible-professionals p { display: grid; gap: .04rem; margin: 0; min-width: 0; }.agenda-visible-professionals strong { color: #564f5d; font-size: .55rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.agenda-visible-professionals small { color: #9c96a1; font-size: .48rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.agenda-visible-professionals i { background: #63bd89; border-radius: 50%; height: .5rem; width: .5rem; }.agenda-month-summary p { color: #96909b; font-size: .55rem; line-height: 1.45; margin: 0; }
.agenda-mobile-selection, .agenda-mobile-sheet { display: none; }

@media (max-width: 900px) {
  .agenda-main { grid-template-columns: minmax(0, 1fr) 12.5rem; }
  .agenda-details { padding: .75rem; }
  .agenda-month-aside { display: none; }
  .agenda-experience--month .agenda-main { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 720px) {
  .agenda-experience { gap: .6rem; padding-bottom: 4.3rem; }
  .agenda-header { align-items: flex-start; }.agenda-header h1 { font-size: 1.18rem; }.agenda-header p { display: none; }
  .agenda-create { font-size: .66rem; min-height: 2rem; padding-inline: .65rem; }
  .agenda-control-row { gap: .48rem; padding-top: .52rem; }.agenda-period-control { gap: .28rem; }.agenda-period-label { font-size: .62rem; max-width: 10rem; }.agenda-period-nav button { height: 1.9rem; min-height: 1.9rem; width: 1.9rem; }.agenda-today { font-size: .62rem; min-height: 1.9rem; padding-inline: .48rem; }
  .agenda-segmented { width: 100%; }.agenda-segmented button { font-size: .64rem; min-height: 1.9rem; }
  .agenda-filter-row { gap: .38rem; grid-template-columns: minmax(0, 1fr) auto; }.agenda-professional-select { min-height: 2rem; }.agenda-search { grid-column: 1 / -1; grid-row: 2; min-height: 2rem; }.agenda-filter-button, .agenda-service-select { display: none; }
  .agenda-main { display: block; }.agenda-details { display: none; }.agenda-day-view { border-radius: .72rem; }.agenda-day-professional { min-height: 2.85rem; padding-left: 3rem; }.agenda-day-grid { grid-template-columns: 2.72rem minmax(0, 1fr); }.agenda-time-axis span { font-size: .57rem; padding-right: .42rem; }.agenda-day-slots { min-height: 768px; }.agenda-appointment-block { left: .25rem; right: .25rem; }.agenda-now { left: -2.72rem; }.agenda-week-view { border-radius: .72rem; grid-template-columns: 2.6rem repeat(7, 5.2rem); }.agenda-week-time-axis { grid-template-rows: 2.9rem repeat(6, 5.4rem); }.agenda-week-column__heading { min-height: 2.9rem; }.agenda-month-cell { min-height: 5.35rem; padding: .26rem; }.agenda-month-weekdays span { font-size: .48rem; }.agenda-month-cell__date { font-size: .6rem; }.agenda-month-entry { display: block; height: .28rem; padding: 0; }.agenda-month-entry > * { display: none; }.agenda-month-cell__more { font-size: 0; }.agenda-month-cell__more::after { content: "• • •"; font-size: .42rem; letter-spacing: .08rem; }
  .agenda-mobile-selection { align-items: center; background: rgba(255,255,255,.96); border: 1px solid #ece9f1; border-radius: .8rem; box-shadow: 0 9px 24px rgba(47,38,68,.12); bottom: 5.1rem; color: #494250; display: grid; gap: .48rem; grid-template-columns: minmax(0,1fr) auto auto; left: .8rem; padding: .62rem .7rem; position: fixed; right: .8rem; text-align: left; z-index: 8; }.agenda-mobile-selection > span { display: grid; gap: .13rem; min-width: 0; }.agenda-mobile-selection strong { font-size: .68rem; }.agenda-mobile-selection small { color: #8c8592; font-size: .55rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.agenda-mobile-selection em { border-radius: 999px; font-size: .52rem; font-style: normal; padding: .15rem .3rem; }.agenda-mobile-selection b { color: #765bd2; font-size: 1rem; font-weight: 400; }.agenda-mobile-sheet { backdrop-filter: blur(3px); background: rgba(37,31,51,.14); bottom: 0; display: flex; inset: 0; justify-content: center; padding: 1rem; position: fixed; z-index: 12; }.agenda-mobile-sheet .agenda-details { align-self: flex-end; border-bottom-left-radius: 0; border-bottom-right-radius: 0; display: grid; max-height: 74dvh; overflow: auto; width: 100%; }
}

/* Month mode intentionally overrides the earlier day/week density rules. */
.agenda-experience--month { margin-inline: auto; max-width: 76rem; width: 100%; }
.agenda-experience--month .agenda-header { align-items: flex-end; gap: 1rem; padding: .5rem 0 .35rem; }
.agenda-experience--month .agenda-header > span { gap: .34rem; }
.agenda-experience--month .agenda-header h1 { color: #25212d; font-size: 1.8rem; font-weight: 710; letter-spacing: -.055em; }
.agenda-experience--month .agenda-header p { color: #77717f; font-size: .76rem; }
.agenda-header__actions { align-items: center; display: flex; gap: .8rem; }
.agenda-experience--month .agenda-create { border-radius: .7rem; font-size: .82rem; min-height: 2.6rem; padding: .55rem 1rem; }
.agenda-create-notice { align-items: center; background: #f4f1ff; border: 1px solid #e6e0fb; border-radius: .78rem; color: #5d5287; display: flex; font-size: .75rem; justify-content: space-between; padding: .55rem .75rem; }.agenda-create-notice button { background: transparent; border: 0; color: inherit; font-size: 1.1rem; line-height: 1; }
.agenda-experience--month .agenda-segmented { background: #f1effa; border: 1px solid #e9e5f7; border-radius: .74rem; gap: .15rem; padding: .18rem; }.agenda-experience--month .agenda-segmented button { border-radius: .56rem; font-size: .75rem; min-height: 2.2rem; padding: .35rem .9rem; }.agenda-experience--month .agenda-segmented button.is-active { background: linear-gradient(145deg,#ebe6ff,#fff); box-shadow: 0 3px 10px rgba(83,64,151,.12); color: #6048c7; }
.agenda-experience--month .agenda-toolbar { align-items: center; background: rgba(255,255,255,.82); border: 1px solid #ece9f2; border-radius: .95rem; box-shadow: 0 9px 24px rgba(52,41,78,.045); display: flex; gap: 1rem; justify-content: space-between; padding: .55rem; }.agenda-toolbar__period, .agenda-toolbar__filters { align-items: center; display: flex; gap: .5rem; min-width: 0; }.agenda-experience--month .agenda-period-nav { gap: .2rem; }.agenda-experience--month .agenda-period-nav button, .agenda-experience--month .agenda-today { border-color: #e7e3ed; border-radius: .62rem; color: #4f4959; font-size: .78rem; min-height: 2.45rem; }.agenda-experience--month .agenda-period-nav button { font-size: 1.35rem; width: 2.45rem; }.agenda-experience--month .agenda-today { padding-inline: .85rem; }.agenda-experience--month .agenda-period-label { color: #2d2735; font-size: .98rem; font-weight: 700; letter-spacing: -.025em; max-width: none; padding-inline: .5rem; text-transform: capitalize; }
.agenda-experience--month .agenda-professional-select, .agenda-experience--month .agenda-service-select, .agenda-experience--month .agenda-filter-button { border-color: #e7e3ed; border-radius: .65rem; font-size: .78rem; min-height: 2.45rem; }.agenda-experience--month .agenda-professional-select { min-width: 12.85rem; padding: .2rem .58rem; }.agenda-experience--month .agenda-service-select { gap: .45rem; padding-inline: .7rem; }.agenda-experience--month .agenda-service-select select { font-size: .78rem; min-width: 9.6rem; }.agenda-filter-menu { position: relative; }.agenda-experience--month .agenda-filter-button { background: #fff; color: #514a5a; display: inline-flex; font-weight: 650; padding-inline: .85rem; }.agenda-filter-popover { background: #fff; border: 1px solid #e7e3ee; border-radius: .8rem; box-shadow: 0 14px 32px rgba(49,39,75,.14); display: grid; gap: .6rem; padding: .75rem; position: absolute; right: 0; top: calc(100% + .45rem); width: 15rem; z-index: 8; }.agenda-filter-popover p { color: #767080; font-size: .7rem; font-weight: 650; margin: 0; }.agenda-filter-popover [role="group"] { display: flex; flex-wrap: wrap; gap: .35rem; }.agenda-filter-popover [role="group"] button { background: #f8f7fb; border: 1px solid #ebe8f1; border-radius: 999px; color: #625c6b; font-size: .69rem; padding: .36rem .54rem; }.agenda-filter-popover [role="group"] button.is-active { background: #eee9ff; border-color: #dcd2ff; color: #5e47bd; }.agenda-filter-popover__clear { background: transparent; border: 0; color: #6549cf; font-size: .72rem; justify-self: start; padding: 0; }
.agenda-experience--month .agenda-main { gap: 1rem; grid-template-columns: minmax(0,1fr) 17.25rem; }.agenda-experience--month .agenda-month-view { border: 1px solid #ebe8ef; border-radius: 1rem; box-shadow: 0 13px 32px rgba(49,41,69,.045); }.agenda-experience--month .agenda-month-weekdays { background: #fdfcff; border-bottom-color: #ebe8ef; }.agenda-experience--month .agenda-month-weekdays span { color: #766f80; font-size: .68rem; font-weight: 750; letter-spacing: .045em; padding: .9rem 0; }.agenda-experience--month .agenda-month-cell { background: rgba(255,255,255,.82); border-bottom-color: rgba(92,78,112,.075); border-right-color: rgba(92,78,112,.06); min-height: 8.35rem; padding: .62rem; transition: background 160ms ease; }.agenda-experience--month .agenda-month-cell:hover { background: #fcfbff; }.agenda-experience--month .agenda-month-cell.is-outside { background: #fcfbfd; }.agenda-experience--month .agenda-month-cell.is-selected { background: linear-gradient(145deg,rgba(250,249,255,.92),rgba(243,238,255,.86)); }.agenda-experience--month .agenda-month-cell__date { border-radius: 50%; font-size: .82rem; font-weight: 720; min-height: 1.7rem; min-width: 1.7rem; padding: 0; }.agenda-experience--month .agenda-month-cell.is-selected .agenda-month-cell__date { background: #6948d1; color: #fff; }.agenda-experience--month .agenda-month-entry { align-items: center; border: 1px solid transparent; border-radius: .42rem; font-size: .7rem; gap: .38rem; grid-template-columns: 2.5rem minmax(0,1fr); margin-bottom: .28rem; min-height: 1.62rem; padding: .27rem .34rem; }.agenda-experience--month .agenda-month-entry span { font-size: .63rem; font-weight: 650; }.agenda-experience--month .agenda-month-entry strong { font-size: .69rem; font-weight: 650; }.agenda-experience--month .agenda-month-cell__more { font-size: .67rem; font-weight: 700; padding: .25rem .08rem; }
.agenda-experience--month .agenda-month-aside { display: grid; gap: .85rem; position: sticky; top: .8rem; }.agenda-experience--month .agenda-month-aside > section { background: rgba(255,255,255,.84); border-color: #ebe8ef; border-radius: .95rem; box-shadow: 0 9px 24px rgba(49,41,69,.035); padding: 1rem; }.agenda-experience--month .agenda-month-aside header strong { color: #38323f; font-size: .86rem; font-weight: 720; }.agenda-experience--month .agenda-month-aside header span { display: inline-flex; gap: .2rem; }.agenda-experience--month .agenda-month-aside header button { background: transparent; border: 0; border-radius: .4rem; color: #694dd1; font-size: 1.25rem; height: 1.7rem; line-height: 1; padding: 0; width: 1.7rem; }.agenda-experience--month .agenda-mini-weekdays { margin-top: .9rem; }.agenda-experience--month .agenda-mini-weekdays span { font-size: .58rem; font-weight: 650; }.agenda-experience--month .agenda-mini-calendar { gap: .22rem; margin-top: .55rem; }.agenda-experience--month .agenda-mini-calendar span { font-size: .63rem; padding: .2rem 0; }.agenda-experience--month .agenda-mini-calendar span.is-selected { height: 1.35rem; line-height: .95rem; width: 1.35rem; }.agenda-experience--month .agenda-visible-professionals h3 { font-size: .66rem; letter-spacing: .08em; margin-bottom: .8rem; text-transform: uppercase; }.agenda-experience--month .agenda-visible-professionals > div { gap: .62rem; grid-template-columns: 2rem minmax(0,1fr) auto; margin-top: .68rem; }.agenda-experience--month .agenda-visible-professionals > div > span { font-size: .58rem; height: 2rem; width: 2rem; }.agenda-experience--month .agenda-visible-professionals strong { font-size: .75rem; font-weight: 680; }.agenda-experience--month .agenda-visible-professionals small { font-size: .64rem; margin-top: .08rem; }.agenda-visible-professionals__all { background: transparent; border: 0; color: #6247c7; font-size: .73rem; font-weight: 680; margin-top: .95rem; padding: 0; }
@media (max-width: 1080px) { .agenda-experience--month .agenda-main { grid-template-columns: minmax(0,1fr) 15.5rem; }.agenda-experience--month .agenda-month-cell { min-height: 7.6rem; padding: .5rem; }.agenda-experience--month .agenda-month-entry { grid-template-columns: 2.2rem minmax(0,1fr); }.agenda-experience--month .agenda-service-select select { min-width: 7.6rem; } }
@media (max-width: 900px) { .agenda-experience--month .agenda-main { grid-template-columns: minmax(0,1fr); }.agenda-experience--month .agenda-month-aside { display: none; } }
@media (min-width: 721px) and (max-width: 1120px) {
  .agenda-experience--month .agenda-main { grid-template-columns: minmax(0, 1fr); }
  .agenda-experience--month .agenda-month-aside { display: none; }
  .agenda-experience--month .agenda-toolbar { align-items: stretch; display: grid; gap: .55rem; }
  .agenda-experience--month .agenda-toolbar__period { justify-content: space-between; }
  .agenda-experience--month .agenda-toolbar__filters { justify-content: flex-end; }
  .agenda-experience--month .agenda-period-label { overflow: visible; }
}
@media (max-width: 720px) { .agenda-experience--month .agenda-header { align-items: flex-start; padding-top: .1rem; }.agenda-experience--month .agenda-header h1 { font-size: 1.28rem; }.agenda-experience--month .agenda-header p { display: none; }.agenda-header__actions { gap: .4rem; }.agenda-experience--month .agenda-create { font-size: .68rem; min-height: 2.15rem; padding-inline: .68rem; }.agenda-experience--month .agenda-segmented button { font-size: .65rem; min-height: 2.15rem; padding-inline: .48rem; }.agenda-experience--month .agenda-toolbar { align-items: stretch; display: grid; gap: .55rem; }.agenda-experience--month .agenda-toolbar__period { display: grid; grid-template-columns: auto auto minmax(0,1fr); }.agenda-experience--month .agenda-toolbar__period .agenda-today { justify-self: start; }.agenda-experience--month .agenda-period-label { align-self: center; font-size: .76rem; overflow: hidden; padding: 0; text-overflow: ellipsis; white-space: nowrap; }.agenda-experience--month .agenda-toolbar__filters { display: grid; grid-template-columns: minmax(0,1fr) auto; }.agenda-experience--month .agenda-professional-select { min-width: 0; }.agenda-experience--month .agenda-service-select { display: inline-flex; min-width: 0; }.agenda-experience--month .agenda-service-select select { min-width: 0; width: 100%; }.agenda-experience--month .agenda-filter-button { display: inline-flex; font-size: .7rem; }.agenda-experience--month .agenda-filter-popover { right: 0; width: min(15rem,calc(100vw - 2rem)); }.agenda-experience--month .agenda-month-cell { min-height: 5.65rem; padding: .32rem; }.agenda-experience--month .agenda-month-weekdays span { font-size: .52rem; padding: .62rem 0; }.agenda-experience--month .agenda-month-cell__date { font-size: .68rem; min-height: 1.35rem; min-width: 1.35rem; }.agenda-experience--month .agenda-month-entry { display: block; height: .32rem; margin: .15rem 0; min-height: 0; padding: 0; }.agenda-experience--month .agenda-month-entry > * { display: none; }.agenda-experience--month .agenda-month-cell__more { font-size: 0; }.agenda-experience--month .agenda-month-cell__more::after { content: "•••"; font-size: .62rem; letter-spacing: .08rem; } }

.agenda-experience--month .agenda-period-label,
.agenda-experience--month .agenda-month-aside header strong { text-transform: none; }
.agenda-experience--month .agenda-toolbar { position: relative; z-index: 3; }
.agenda-experience--month .agenda-month-entry { grid-template-columns: minmax(0, 1fr); min-height: 2.05rem; }
.agenda-experience--month .agenda-month-entry span { line-height: 1; }
.agenda-experience--month .agenda-month-entry strong { line-height: 1.12; overflow: visible; overflow-wrap: anywhere; text-overflow: clip; white-space: normal; word-break: break-word; }
@media (max-width: 720px) { .agenda-experience--month .agenda-month-entry { display: block; min-height: 0; } }

/* Configurações > Procedimentos — catálogo operacional em tabela. */
.procedures-experience__header { align-items: end; gap: 1rem; }
.procedures-experience__header h1 { margin-bottom: .42rem; }
.procedures-experience__header > div > p:last-child { color: var(--muted); font-size: .82rem; margin: 0; }
.procedures-table-card { background: rgba(255,255,255,.84); border: 1px solid rgba(94,73,122,.1); border-radius: 1rem; box-shadow: 0 14px 35px rgba(63,45,84,.05); min-width: 0; overflow: visible; }
.procedures-table-card__header { align-items: center; border-bottom: 1px solid var(--line); display: flex; gap: 1rem; justify-content: space-between; min-height: 4.2rem; padding: .75rem 1rem; }
.procedures-table-card__header > div { align-items: baseline; display: flex; gap: 1.1rem; }
.procedures-table-card__header h2 { color: #29253b; font-size: 1.05rem; letter-spacing: -.025em; margin: 0; }
.procedures-table-card__header > div > span { color: #8b84a8; font-size: .76rem; }
.procedures-search { align-items: center; background: #fff; border: 1px solid #dfdbe7; border-radius: .58rem; color: #746a8e; display: flex; gap: .35rem; min-height: 2.35rem; padding: 0 .65rem; width: min(18rem, 42vw); }
.procedures-search:focus-within { border-color: #a793e5; box-shadow: 0 0 0 3px rgba(105,72,213,.1); }
.procedures-search > span:first-child { font-size: 1.2rem; line-height: 1; }
.procedures-search input { background: transparent; border: 0; color: var(--ink); font: inherit; font-size: .74rem; min-width: 0; outline: 0; width: 100%; }
.procedures-search input::placeholder { color: #aaa3b7; }
.procedures-table-scroll { overflow-x: auto; }
.procedures-table { border-collapse: collapse; table-layout: fixed; width: 100%; }
.procedures-table th:nth-child(1) { width: 34%; }.procedures-table th:nth-child(2) { width: 14%; }.procedures-table th:nth-child(3) { width: 15%; }.procedures-table th:nth-child(4) { width: 15%; }.procedures-table th:nth-child(5) { width: 13%; }.procedures-table th:nth-child(6) { width: 9%; }
.procedures-table th { border-bottom: 1px solid var(--line); color: #5d566d; font-size: .68rem; font-weight: 750; letter-spacing: .015em; padding: .78rem 1rem; text-align: left; text-transform: uppercase; }
.procedures-table td { border-bottom: 1px solid rgba(101,83,128,.09); color: #6e667b; font-size: .76rem; padding: .7rem 1rem; vertical-align: middle; }
.procedures-table tbody tr { transition: background 140ms ease; }
.procedures-table tbody tr:hover { background: rgba(246,243,253,.72); }
.procedures-table tbody tr:last-child td { border-bottom: 0; }
.procedures-table td strong { color: #302b45; font-size: .8rem; font-weight: 710; }
.procedure-name-cell { align-items: center; display: flex; gap: .65rem; min-width: 0; }
.procedure-name-cell .client-avatar { flex: 0 0 2.25rem; font-size: .73rem; height: 2.25rem; width: 2.25rem; }
.procedure-name-cell strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.procedure-status-toggle { background: #eef0f3; border: 0; border-radius: 99rem; cursor: pointer; display: inline-flex; height: 1.55rem; padding: .18rem; transition: background 150ms ease, box-shadow 150ms ease; width: 2.8rem; }
.procedure-status-toggle > span { background: #9da6b9; border-radius: 50%; box-shadow: 0 1px 3px rgba(46,38,67,.18); height: 1.19rem; transform: translateX(1.25rem); transition: transform 150ms ease, background 150ms ease; width: 1.19rem; }
.procedure-status-toggle.is-active { background: #63dd91; }.procedure-status-toggle.is-active > span { background: #fff; }.procedure-status-toggle.is-inactive > span { transform: translateX(0); }
.procedure-status-toggle:hover { box-shadow: 0 0 0 3px rgba(99,221,145,.14); }.procedure-status-toggle.is-inactive:hover { box-shadow: 0 0 0 3px rgba(121,130,151,.14); }.procedure-status-toggle:focus-visible { outline: 2px solid #7250dc; outline-offset: 2px; }.procedure-status-toggle:disabled { cursor: wait; opacity: .58; }
.procedures-actions { position: relative; text-align: center !important; }
.procedures-actions-heading { text-align: center !important; }
.procedures-menu-trigger { background: transparent; border: 0; border-radius: .45rem; color: #6b6380; display: block; font-size: 1.2rem; height: 2rem; line-height: 1; margin-inline: auto; width: 2rem; }
.procedures-menu-trigger:hover, .procedures-menu-trigger[aria-expanded="true"] { background: #f0ecfb; color: #6245c8; }
.procedures-row-menu { background: #fff; border: 1px solid #e3deeb; border-radius: .65rem; box-shadow: 0 12px 30px rgba(49,39,75,.14); display: grid; min-width: 9rem; padding: .3rem; position: absolute; right: 50%; top: 2.65rem; transform: translateX(50%); z-index: 30; }
.procedures-table tbody tr:first-child .procedures-row-menu { bottom: 2.65rem; top: auto; }
.procedures-row-menu button { background: transparent; border: 0; border-radius: .42rem; color: #4d465d; font-size: .72rem; padding: .55rem .6rem; text-align: left; }
.procedures-row-menu button:hover { background: #f5f1ff; color: #6245c8; }
.procedures-row-menu button.is-danger { color: #c83d59; }
.procedures-row-menu button.is-danger:hover { background: #fff1f3; color: #b72d4b; }
.procedures-row-menu button:disabled { color: #b5aebe; }
.procedures-row-menu span { border-top: 1px solid #eeeaf2; margin: .2rem 0; }
.catalog-row-menu-portal { max-height: min(16rem, calc(100vh - 1rem)); overflow-y: auto; position: fixed !important; right: auto; top: auto; transform: none; z-index: 1000 !important; }
.procedure-delete-overlay { align-items: center; display: flex; inset: 0; justify-content: center; padding: 1rem; position: fixed; z-index: 85; }
.procedure-delete-overlay__backdrop { background: rgba(38,29,53,.34); backdrop-filter: blur(3px); border: 0; inset: 0; position: absolute; width: 100%; }
.procedure-delete-dialog { align-items: center; background: #fff; border: 1px solid rgba(105,75,112,.14); border-radius: 1rem; box-shadow: 0 28px 80px rgba(35,25,50,.25); display: flex; flex-direction: column; max-width: 27rem; padding: 1.35rem; position: relative; text-align: center; width: 100%; }
.procedure-delete-dialog__icon { align-items: center; background: #fff0f3; border-radius: 50%; color: #df365b; display: flex; font-size: 1.15rem; font-weight: 800; height: 3rem; justify-content: center; width: 3rem; }
.procedure-delete-dialog h2 { color: #302735; font-size: 1.05rem; margin: .72rem 0 .3rem; }
.procedure-delete-dialog > p { color: #77707e; font-size: .75rem; line-height: 1.5; margin: 0; }
.procedure-delete-dialog > p strong { color: #41374e; }
.procedure-delete-dialog__error { color: #b33d57 !important; margin-top: .55rem !important; }
.procedure-delete-dialog footer { display: flex; gap: .55rem; justify-content: center; margin-top: 1rem; width: 100%; }
.procedure-delete-dialog footer .button { border-radius: .62rem; font-size: .72rem; min-height: 2.4rem; }
.procedure-delete-dialog__confirm { background: #df365b; color: #fff; }
.procedure-delete-dialog__confirm:hover:not(:disabled) { background: #c62f50; }
.procedures-state { align-items: center; color: #7d768b; display: grid; gap: .55rem; justify-items: center; min-height: 15rem; padding: 2rem; text-align: center; }
.procedures-state p { font-size: .8rem; margin: 0; }
.procedures-pagination { align-items: center; display: grid; gap: 1rem; grid-template-columns: 1fr auto 1fr; padding: .9rem 1rem 1rem; }
.procedures-pagination label { position: relative; }
.procedures-pagination select { appearance: none; background: #fff; border: 1px solid #dfdbe7; border-radius: .55rem; color: #595271; font-size: .72rem; min-height: 2.4rem; padding: .45rem 2rem .45rem .7rem; }
.procedures-pagination label::after { color: #716a8b; content: "⌄"; font-size: .8rem; pointer-events: none; position: absolute; right: .7rem; top: .65rem; }
.procedures-pagination p { color: #88819e; font-size: .76rem; margin: 0; }
.procedures-pagination nav { display: flex; gap: .42rem; justify-self: end; }
.procedures-pagination nav button { background: #f7f6fa; border: 1px solid transparent; border-radius: .52rem; color: #555069; font-size: .73rem; height: 2.45rem; min-width: 2.45rem; padding: .25rem; }
.procedures-pagination nav button:hover:not(:disabled) { border-color: #d9d1ef; color: #6041ca; }.procedures-pagination nav button.is-active { background: linear-gradient(135deg,#6945e5,#8a42ec); box-shadow: 0 6px 15px rgba(109,69,223,.22); color: #fff; }.procedures-pagination nav button:disabled { color: #c3bfcb; cursor: default; }
.procedures-skeleton td i { animation: clients-pulse 1.25s ease-in-out infinite; background: #efedf4; border-radius: .35rem; display: block; height: .85rem; max-width: 8rem; }
.catalog-form select, .catalog-form textarea { background: rgba(247,246,248,.72); border: 1px solid var(--line); border-radius: .8rem; color: var(--ink); font: inherit; min-height: 2.85rem; padding: .65rem .8rem; width: 100%; }
.catalog-form textarea { min-height: 5.8rem; resize: vertical; }
.procedure-form-total { align-items: center; background: #f8f5ff; border-radius: .7rem; display: flex; justify-content: space-between; padding: .7rem .8rem; }
.procedure-photo-field { border: 1px solid var(--line); border-radius: .8rem; box-sizing: border-box; display: grid; gap: .75rem; min-width: 0; padding: .9rem; width: 100%; }
.procedure-photo-field h3 { color: var(--ink); font-size: .86rem; font-weight: 700; margin: 0; }
.procedure-photo-field > p { color: var(--muted); font-size: .76rem; line-height: 1.4; margin: 0; }
.catalog-form input.procedure-photo-field__input { background: transparent; border: 0; clip-path: inset(50%); height: 1px; margin: -1px; min-height: 0; overflow: hidden; padding: 0; position: absolute; white-space: nowrap; width: 1px; }
.procedure-photo-field__upload { align-items: center; background: #f9f7fc; border: 1px dashed #c7bdd9; border-radius: .7rem; box-sizing: border-box; color: var(--muted); display: grid; gap: .25rem; justify-items: center; min-height: 8rem; min-width: 0; padding: .8rem; width: 100%; }
.procedure-photo-field__upload svg { color: #795bc5; height: 1.5rem; margin-bottom: .15rem; width: 1.5rem; }
.procedure-photo-field__upload:hover:not(:disabled) { background: #f3effc; border-color: #ab99d6; }
.procedure-photo-field__upload:focus-visible { outline: 2px solid #7250dc; outline-offset: 2px; }
.procedure-photo-field__upload strong { color: var(--purple-deep); font-size: .82rem; }
.procedure-photo-field__upload span { font-size: .72rem; }
.procedure-photo-field__preview { display: grid; gap: .75rem; min-width: 0; }
.procedure-photo-field__preview img { aspect-ratio: 4 / 3; border-radius: .65rem; height: auto; max-width: 100%; object-fit: cover; width: min(100%, 20rem); }
.procedure-photo-field__actions { align-items: center; display: flex; flex-wrap: wrap; gap: .55rem .8rem; min-width: 0; }
.procedure-photo-field__actions button { max-width: 100%; }
.procedure-form-total span { color: var(--muted); font-size: .78rem; }.procedure-form-total strong { color: var(--purple-deep); font-size: .9rem; }
.procedures-experience .catalog-form { box-sizing: border-box; max-width: 42rem; width: min(100%, 38rem); }
.procedures-experience .catalog-form__body { min-width: 0; }

/* Configurações > Pacotes — ofertas reutilizáveis com valores calculados. */
.packages-experience .catalog-form { max-width: 68rem; width: min(100%, 68rem); }
.packages-table th:nth-child(1) { width: 34%; }.packages-table th:nth-child(2) { width: 18%; }.packages-table th:nth-child(3) { width: 18%; }.packages-table th:nth-child(4) { width: 18%; }.packages-table th:nth-child(5) { width: 12%; }
.packages-table td small { display: block; font-size: .67rem; margin-top: .23rem; }
.packages-table__note { color: #938c9b; max-width: 21rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.packages-table__discount { color: #7a64c7; }
.packages-table-actions { align-items: center; display: flex; gap: .55rem; }
.packages-table-actions .professionals-filter select { appearance: none; background: #fff; border: 1px solid #dfdbe7; border-radius: .58rem; color: #5d556c; font: inherit; font-size: .73rem; min-height: 2.35rem; padding: 0 2rem 0 .7rem; }
.package-form { gap: 1.1rem; }.package-form__top-grid { grid-template-columns: minmax(15rem, 1.5fr) minmax(10rem, .6fr); }
.package-items { border: 0; border-top: 1px solid var(--line); margin: .1rem 0 0; padding: 1.1rem 0 0; }.package-items legend { color: #373044; font-size: .92rem; font-weight: 750; padding: 0; }.package-items > p { color: var(--muted); font-size: .75rem; line-height: 1.45; margin: .35rem 0 .8rem; }
.package-items__head, .package-item { align-items: center; display: grid; gap: .55rem; grid-template-columns: minmax(11rem, 1.35fr) 4.2rem 6.5rem minmax(12rem, 1.25fr) 6.7rem 2rem; }.package-items__head { color: #797185; font-size: .64rem; font-weight: 750; letter-spacing: .045em; padding: 0 .15rem .38rem; text-transform: uppercase; }.package-items__list { display: grid; gap: .45rem; }
.package-item { background: #fbfaff; border: 1px solid #e6e1ee; border-radius: .72rem; min-height: 3.35rem; padding: .38rem; }.package-item select, .package-item > input { background: #fff; border: 1px solid #ddd7e8; border-radius: .55rem; color: #40394c; font: inherit; font-size: .74rem; min-height: 2.35rem; padding: .4rem .55rem; width: 100%; }.package-item > input { text-align: center; }
.package-item__price, .package-item__total { color: #4b425c; font-size: .73rem; font-weight: 650; text-align: right; white-space: nowrap; }.package-item__total { color: #332b45; }
.package-discount-input { align-items: center; display: grid; gap: .32rem; grid-template-columns: minmax(7.6rem, auto) minmax(0, 1fr); }.package-discount-input > select, .package-discount-input > input { background: #fff; border: 1px solid #ddd7e8; border-radius: .55rem; color: #4f475b; font: inherit; font-size: .69rem; min-height: 2.35rem; padding: .4rem .45rem; width: 100%; }.package-discount-input > select { min-width: 7.6rem; white-space: nowrap; }.package-discount-input > .money-input { border-radius: .55rem; font-size: .69rem; min-height: 2.35rem; padding-left: .48rem; }.package-discount-input > .money-input input { min-height: 2.2rem; padding: .35rem .5rem .35rem .2rem; }
.package-item__remove { background: transparent; border: 0; border-radius: .45rem; color: #a27688; font-size: 1.35rem; height: 2.25rem; line-height: 1; width: 2rem; }.package-item__remove:hover:not(:disabled) { background: #fff0f3; color: #c33b59; }.package-item__remove:disabled { color: #d5cfda; cursor: not-allowed; }
.package-items__add { background: transparent; border: 0; color: #6744d6; font-size: .76rem; font-weight: 700; margin-top: .72rem; padding: .32rem .1rem; }.package-items__add:hover:not(:disabled) { color: #4e2ebd; text-decoration: underline; }
.package-form__summary { border-top: 1px solid var(--line); display: grid; gap: .15rem; padding-top: .85rem; }.package-form__summary > div { align-items: center; color: #70687b; display: grid; font-size: .77rem; gap: .65rem; grid-template-columns: 1fr auto; min-height: 2.5rem; }.package-form__summary > div > strong { color: #3d354b; font-size: .84rem; text-align: right; }.package-form__discount { grid-template-columns: 1fr minmax(13rem, 18rem) 6.5rem !important; }.package-form__discount .package-discount-input { width: 100%; }.package-form__total { background: #f5f1ff; border-radius: .7rem; margin-top: .35rem; padding: .45rem .7rem; }.package-form__total span, .package-form__total strong { color: #5631c6 !important; font-size: .9rem !important; font-weight: 760; }
.packages-experience .catalog-form__actions { background: rgba(255,255,255,.96); border-top: 1px solid #ece8f1; bottom: -1.35rem; margin: 0 -1.35rem -1.35rem; padding: .85rem 1.35rem; position: sticky; z-index: 2; }

/* Configurações > Usuários — acesso, convites e permissões. */
.users-access-experience { padding-bottom: 2rem; }
.users-access-header { align-items: end; display: flex; gap: 1rem; justify-content: space-between; }
.users-access-header h1 { margin-bottom: .42rem; }
.users-access-header p:last-child { color: var(--muted); font-size: .82rem; margin: 0; }
.users-access-search { align-items: center; background: rgba(255,255,255,.82); border: 1px solid #ded9e8; border-radius: .55rem; display: flex; gap: .45rem; min-height: 2.45rem; padding: 0 .72rem; width: min(20rem, 38%); }
.users-access-search:focus-within { border-color: #987fe5; box-shadow: 0 0 0 3px rgba(105,72,213,.1); }
.users-access-search > span:first-child { color: #726a8c; font-size: 1.25rem; line-height: 1; }
.users-access-search input { background: transparent; border: 0; color: var(--ink); font: inherit; font-size: .75rem; outline: 0; width: 100%; }
.users-access-stats { display: grid; gap: .75rem; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 1.2rem; }
.users-access-stats > div { align-items: center; background: rgba(255,255,255,.8); border: 1px solid rgba(94,73,122,.1); border-radius: .78rem; box-shadow: 0 8px 24px rgba(63,45,84,.04); display: flex; gap: .75rem; min-height: 5.3rem; padding: .85rem 1rem; }
.users-access-stats p { color: #626078; display: grid; font-size: .72rem; gap: .22rem; margin: 0; }.users-access-stats strong { color: #201d39; font-size: 1.25rem; line-height: 1; }.users-access-stats > div:last-child strong { font-size: .92rem; }
.users-access-stat-icon { align-items: center; border-radius: 50%; display: inline-flex; height: 2.35rem; justify-content: center; width: 2.35rem; }.users-access-stat-icon svg { height: 1.18rem; width: 1.18rem; }.users-access-stat-icon.is-green { background: #dcf8e9; color: #19a969; }.users-access-stat-icon.is-yellow { background: #fff2d8; color: #edaa26; }.users-access-stat-icon.is-red { background: #ffe3e6; color: #e05262; }.users-access-stat-icon.is-purple { background: #ede8ff; color: #6745dc; }
.users-access-layout { align-items: start; display: grid; gap: 1rem; grid-template-columns: minmax(0, 2.55fr) minmax(17rem, 1fr); margin-top: 1rem; }
.users-access-sidebar { display: grid; gap: 1rem; min-width: 0; }
.users-access-card { background: rgba(255,255,255,.82); border: 1px solid rgba(94,73,122,.1); border-radius: .82rem; box-shadow: 0 14px 35px rgba(63,45,84,.05); min-width: 0; overflow: hidden; }
.users-access-card > header { border-bottom: 1px solid #eeeaf3; padding: .95rem 1rem .78rem; }.users-access-card > header h2 { color: #26233c; font-size: 1rem; margin: 0; }.users-access-card > header p { color: #827b91; font-size: .72rem; margin: .25rem 0 0; }
.users-access-table-wrap { min-width: 0; overflow-x: auto; }.users-access-table { border-collapse: collapse; min-width: 0; table-layout: fixed; width: 100%; }.users-access-table th { background: #faf9fd; border-bottom: 1px solid #eeeaf3; color: #77708a; font-size: .62rem; font-weight: 750; letter-spacing: .04em; padding: .68rem .8rem; text-align: left; text-transform: uppercase; }.users-access-table td { border-bottom: 1px solid #f0edf4; color: #595269; font-size: .73rem; padding: .65rem .8rem; vertical-align: middle; }.users-access-table tbody tr:last-child td { border-bottom: 0; }.users-access-table tbody tr:hover { background: #fbfaff; }.users-access-table th:nth-child(1) { width: 33%; }.users-access-table th:nth-child(2) { width: 17%; }.users-access-table th:nth-child(3) { width: 14%; }.users-access-table th:nth-child(4) { width: 23%; }.users-access-table th:nth-child(5) { text-align: center; width: 13%; }.users-access-table td:last-child { text-align: center; }
.users-access-identity { align-items: center; display: flex; gap: .58rem; min-width: 0; }.users-access-identity > span:last-child { display: grid; gap: .18rem; min-width: 0; }.users-access-identity strong, .users-access-identity small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.users-access-identity strong { color: #302b45; font-size: .76rem; }.users-access-identity small { color: #8a8291; font-size: .65rem; }.users-access-identity .catalog-avatar { flex: 0 0 auto; }
.users-access-role { border-radius: 99rem; display: inline-flex; font-size: .63rem; font-weight: 700; padding: .28rem .55rem; white-space: nowrap; }.users-access-role.is-owner { background: #e9e2ff; color: #5d3dd0; }.users-access-role.is-admin { background: #dff1ff; color: #1475c6; }.users-access-role.is-receptionist { background: #dff8ea; color: #168b56; }.users-access-role.is-professional { background: #f9e0f2; color: #b32d89; }.users-access-role.is-viewer { background: #f0eef4; color: #71697b; }
.users-access-status { align-items: center; display: inline-flex; gap: .35rem; white-space: nowrap; }.users-access-status i { background: #13b66b; border-radius: 50%; height: .45rem; width: .45rem; }.users-access-status.is-bloqueado i { background: #edaa26; }.users-access-status.is-pendente i { background: #edaa26; }.users-access-status.is-expirado i, .users-access-status.is-falha-no-envio i { background: #e05262; }.users-access-date { color: #7c748d !important; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.users-access-actions { align-items: center; display: flex; gap: .35rem; justify-content: center; }.users-access-actions select { background: #fff; border: 1px solid #ded9e8; border-radius: .45rem; color: #4b435a; font: inherit; font-size: .68rem; min-height: 2rem; max-width: 7.8rem; padding: .2rem .35rem; }.users-access-menu-trigger { background: transparent; border: 0; border-radius: .45rem; color: #6b6380; font-size: 1.15rem; height: 2rem; line-height: 1; width: 2rem; }.users-access-menu-trigger:hover, .users-access-menu-trigger[aria-expanded="true"] { background: #f0ecfb; color: #6245c8; }.users-access-menu { background: #fff; border: 1px solid #e3deeb; border-radius: .62rem; box-shadow: 0 12px 30px rgba(49,39,75,.14); display: grid; min-width: 10rem; padding: .28rem; z-index: 90; }.users-access-menu button { background: transparent; border: 0; border-radius: .42rem; color: #4d465d; font-size: .7rem; padding: .55rem .6rem; text-align: left; white-space: nowrap; }.users-access-menu button:hover { background: #f5f1ff; color: #6245c8; }.users-access-menu button.is-danger { color: #c3445e; }.users-access-menu button.is-danger:hover { background: #fff1f3; color: #b72d4b; }.users-access-menu-note { color: #9b94a6; font-size: .65rem; padding: .55rem .6rem; white-space: nowrap; }.users-access-message { margin: .75rem 1rem; }
.users-access-confirm-overlay { align-items: center; display: flex; inset: 0; justify-content: center; padding: 1rem; position: fixed; z-index: 85; }.users-access-confirm-backdrop { background: rgba(38,29,53,.34); backdrop-filter: blur(3px); border: 0; inset: 0; position: absolute; width: 100%; }.users-access-confirm { background: #fff; border: 1px solid rgba(105,75,112,.14); border-radius: 1rem; box-shadow: 0 28px 80px rgba(35,25,50,.25); max-width: 27rem; padding: 1.35rem; position: relative; width: 100%; }.users-access-confirm h2 { color: #302735; font-size: 1.05rem; margin: 0 0 .45rem; }.users-access-confirm p { color: #77707e; font-size: .75rem; line-height: 1.5; margin: 0; }.users-access-confirm p strong { color: #41374e; }.users-access-confirm footer { display: flex; gap: .55rem; justify-content: flex-end; margin-top: 1rem; }.users-access-remove-confirm { background: #df365b; color: #fff; }
.users-access-empty { color: #81798d; font-size: .78rem; padding: 2.5rem 1rem; text-align: center; }.users-access-invite-card form { display: grid; gap: .75rem; padding: 1rem; }.users-access-invite-card label { display: grid; gap: .32rem; }.users-access-invite-card label > span { color: #514a62; font-size: .7rem; font-weight: 650; }.users-access-invite-card input, .users-access-invite-card select, .users-access-permission-selector select { background: #fff; border: 1px solid #ded9e8; border-radius: .52rem; color: #39334b; font: inherit; font-size: .73rem; min-height: 2.35rem; padding: .55rem .65rem; width: 100%; }.users-access-invite-card .button { font-size: .72rem; min-height: 2.35rem; }
.users-access-permissions-card { margin: 0; }.users-access-permission-selector { padding: .85rem 1rem .5rem; }.users-access-permission-selector select { font-weight: 650; }.users-access-permission-list { display: grid; list-style: none; margin: 0; padding: .15rem 1rem .85rem; }.users-access-permission-list li { align-items: center; border-bottom: 1px solid #f0edf4; display: flex; gap: .75rem; justify-content: space-between; min-height: 3.05rem; padding: .55rem 0; }.users-access-permission-list li:last-child { border-bottom: 0; }.users-access-permission-copy { display: grid; gap: .12rem; min-width: 0; }.users-access-permission-copy strong { color: #39334b; font-size: .72rem; }.users-access-permission-copy small { color: #877f94; font-size: .65rem; line-height: 1.25; }.users-access-permission-state { align-items: center; border-radius: 50%; display: inline-flex; flex: 0 0 auto; font-size: .72rem; font-weight: 800; height: 1.1rem; justify-content: center; width: 1.1rem; }.users-access-permission-state.is-access { background: #16b66d; color: #fff; }.users-access-permission-state.is-view { background: #f0eff4; color: #8a8491; }.users-access-permission-state.is-none { color: #d24b62; }
@media (max-width: 1050px) { .users-access-layout { grid-template-columns: minmax(0, 1.8fr) minmax(16rem, 1fr); }.users-access-table th, .users-access-table td { padding-inline: .58rem; }.users-access-table th:nth-child(1) { width: 31%; }.users-access-table th:nth-child(4) { width: 24%; } }
@media (max-width: 860px) { .users-access-layout { grid-template-columns: 1fr; }.users-access-sidebar { grid-template-columns: repeat(2, minmax(0, 1fr)); }.users-access-stats { grid-template-columns: repeat(2, minmax(0,1fr)); }.users-access-table { min-width: 42rem; } }
@media (max-width: 620px) { .users-access-header { align-items: stretch; display: grid; }.users-access-search { width: 100%; }.users-access-stats { gap: .5rem; }.users-access-stats > div { min-height: 4.6rem; padding: .65rem; }.users-access-sidebar { grid-template-columns: 1fr; }.users-access-card > header { padding-inline: .8rem; }.users-access-table { min-width: 38rem; } }

/* Configurações > Profissionais — listagem alinhada ao padrão de Clientes. */
.professionals-experience__header { align-items: end; gap: 1rem; }
.professionals-experience__header h1 { margin-bottom: .42rem; }
.professionals-experience__header > div > p:last-child { color: var(--muted); font-size: .82rem; margin: 0; }
.professionals-table-card { background: rgba(255,255,255,.86); border: 1px solid rgba(94,73,122,.1); border-radius: 1rem; box-shadow: 0 14px 35px rgba(63,45,84,.05); min-width: 0; overflow: visible; }
.professionals-table-card__header { align-items: center; border-bottom: 1px solid var(--line); display: flex; gap: 1rem; justify-content: space-between; min-height: 4.2rem; padding: .75rem 1rem; }
.professionals-table-card__header > div:first-child { align-items: baseline; display: flex; gap: 1.1rem; }
.professionals-table-card__header h2 { color: #29253b; font-size: 1.05rem; letter-spacing: -.025em; margin: 0; }
.professionals-table-card__header > div:first-child > span { color: #8b84a8; font-size: .76rem; }
.professionals-table-actions { align-items: center; display: flex; gap: .65rem; }
.professionals-search { align-items: center; background: #fff; border: 1px solid #dfdbe7; border-radius: .58rem; color: #746a8e; display: flex; gap: .35rem; min-height: 2.35rem; padding: 0 .65rem; width: min(18rem, 36vw); }
.professionals-search:focus-within { border-color: #a793e5; box-shadow: 0 0 0 3px rgba(105,72,213,.1); }
.professionals-search > span:first-child { font-size: 1.2rem; line-height: 1; }
.professionals-search input { background: transparent; border: 0; color: var(--ink); font: inherit; font-size: .74rem; min-width: 0; outline: 0; width: 100%; }
.professionals-search input::placeholder { color: #aaa3b7; }
.professionals-filter { position: relative; }
.professionals-filter > button { align-items: center; background: #f8f5ff; border: 1px solid transparent; border-radius: .58rem; color: #6845d3; display: inline-flex; font: inherit; font-size: .74rem; font-weight: 700; gap: .45rem; min-height: 2.35rem; padding: 0 .75rem; }
.professionals-filter > button:hover, .professionals-filter > button.is-active { background: #eee8ff; border-color: #ded3fb; }
.professionals-filter__popover { background: #fff; border: 1px solid #e5dff0; border-radius: .7rem; box-shadow: 0 13px 28px rgba(50,40,74,.14); display: grid; gap: .1rem; min-width: 10.5rem; padding: .42rem; position: absolute; right: 0; top: 2.7rem; z-index: 15; }
.professionals-filter__popover strong { color: #615a71; font-size: .67rem; letter-spacing: .05em; padding: .28rem .45rem; text-transform: uppercase; }
.professionals-filter__popover button { align-items: center; background: transparent; border: 0; border-radius: .45rem; color: #585166; display: flex; font: inherit; font-size: .73rem; gap: .45rem; padding: .5rem .45rem; text-align: left; }
.professionals-filter__popover button:hover, .professionals-filter__popover button.is-active { background: #f4f0ff; color: #6245c8; }
.professionals-filter__popover i { background: #a8a2b2; border-radius: 50%; display: inline-block; height: .42rem; width: .42rem; }.professionals-filter__popover button.is-active i { background: #6743dc; }
.professionals-table-scroll { min-width: 0; overflow-x: auto; }
.professionals-table { border-collapse: collapse; table-layout: fixed; width: 100%; }
.professionals-table th:nth-child(1) { width: 42%; }.professionals-table th:nth-child(2) { width: 25%; }.professionals-table th:nth-child(3) { width: 23%; }.professionals-table th:nth-child(4) { text-align: center; width: 10%; }
.professionals-table th { border-bottom: 1px solid #ebe8f0; color: #363149; font-size: .68rem; font-weight: 750; letter-spacing: .015em; padding: .78rem 1rem; text-align: left; text-transform: uppercase; }
.professionals-table td { border-bottom: 1px solid #efecf3; color: #514b69; font-size: .76rem; padding: .7rem 1rem; vertical-align: middle; }
.professionals-table tbody tr { transition: background 140ms ease; }.professionals-table tbody tr:hover { background: rgba(246,243,253,.78); }.professionals-table tbody tr:last-child td { border-bottom: 0; }
.professionals-table__identity { align-items: center; display: flex; gap: .75rem; min-width: 0; }.professionals-table__identity .catalog-avatar { flex: 0 0 auto; font-size: .67rem; height: 2.25rem; width: 2.25rem; }.professionals-table__identity strong { color: #302b45; font-size: .8rem; font-weight: 710; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.professionals-table__phone { align-items: center; display: flex; gap: .45rem; }.professionals-table__phone i { color: #0fbd58; font-size: .9rem; font-style: normal; }.professionals-table__empty { color: #a19baa; font-size: .69rem; }
.professionals-row-menu { display: inline-flex; justify-content: center; position: relative; width: 100%; }.professionals-menu-trigger { background: transparent; border: 0; border-radius: .45rem; color: #6b6380; font-size: 1.2rem; height: 2rem; line-height: 1; width: 2rem; }.professionals-menu-trigger:hover, .professionals-menu-trigger[aria-expanded="true"] { background: #f0ecfb; color: #6245c8; }
.professionals-row-menu__popover { background: #fff; border: 1px solid #e3deeb; border-radius: .65rem; box-shadow: 0 12px 30px rgba(49,39,75,.14); display: grid; min-width: 8.5rem; padding: .3rem; position: absolute; right: 50%; top: 2.4rem; transform: translateX(50%); z-index: 12; }.professionals-row-menu__popover button { background: transparent; border: 0; border-radius: .42rem; color: #4d465d; font-size: .72rem; padding: .55rem .6rem; text-align: left; }.professionals-row-menu__popover button:hover { background: #f5f1ff; color: #6245c8; }.professionals-row-menu__popover button.is-danger { color: #c83d59; }.professionals-row-menu__popover button.is-danger:hover { background: #fff1f3; color: #b72d4b; }.professionals-row-menu__popover hr { border: 0; border-top: 1px solid #eeeaf2; margin: .2rem 0; }
.professionals-table-state { align-items: center; color: #7d768b; display: grid; gap: .55rem; justify-items: center; min-height: 15rem; padding: 2rem; text-align: center; }.professionals-table-state p { font-size: .8rem; margin: 0; }.professionals-table__skeleton td i { animation: clients-pulse 1.25s ease-in-out infinite; background: #efedf4; border-radius: .35rem; display: block; height: .85rem; max-width: 8rem; }.professionals-table__skeleton td:first-child i { height: 2rem; }
.professionals-pagination { align-items: center; display: grid; gap: 1rem; grid-template-columns: 1fr auto 1fr; padding: .9rem 1rem 1rem; }.professionals-pagination label { position: relative; }.professionals-pagination select { appearance: none; background: #fff; border: 1px solid #dfdbe7; border-radius: .55rem; color: #595271; font-size: .72rem; min-height: 2.4rem; padding: .45rem 2rem .45rem .7rem; }.professionals-pagination label::after { color: #716a8b; content: "⌄"; font-size: .8rem; pointer-events: none; position: absolute; right: .7rem; top: .65rem; }.professionals-pagination p { color: #88819e; font-size: .76rem; margin: 0; }.professionals-pagination nav { display: flex; gap: .42rem; justify-self: end; }.professionals-pagination nav button { background: #f7f6fa; border: 1px solid transparent; border-radius: .52rem; color: #555069; font-size: .73rem; height: 2.45rem; min-width: 2.45rem; padding: .25rem; }.professionals-pagination nav button:hover:not(:disabled) { border-color: #d9d1ef; color: #6041ca; }.professionals-pagination nav button.is-active { background: linear-gradient(135deg,#6945e5,#8a42ec); box-shadow: 0 6px 15px rgba(109,69,223,.22); color: #fff; }.professionals-pagination nav button:disabled { color: #c3bfcb; cursor: default; }
.professionals-experience .catalog-form { max-width: 47rem; }.catalog-form__description { color: var(--muted); font-size: .78rem; line-height: 1.45; margin: .35rem 0 0; }.catalog-form label.has-error input { border-color: #df5275; }.catalog-field-error { color: #c43b5d !important; }.catalog-form label > span b { color: #ca3d5e; }.professionals-experience .procedure-checklist > div { gap: .28rem .6rem; grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: 15.5rem; overflow-y: auto; padding-right: .25rem; }.professionals-experience .procedure-checklist label { grid-template-columns: auto minmax(0, 1fr); }.professionals-experience .procedure-checklist label span { align-items: center; display: flex; justify-content: space-between; gap: .45rem; }.procedure-checklist__search { display: block !important; margin-bottom: .55rem; }.procedure-checklist__search input { font-size: .78rem; min-height: 2.45rem !important; }
.rooms-table th:nth-child(1) { width: 28%; }.rooms-table th:nth-child(2) { width: 48%; }.rooms-table th:nth-child(3) { width: 14%; }.rooms-table th:nth-child(4) { text-align: center; width: 10%; }.rooms-experience .catalog-form { max-width: 38rem; }
@media (max-width: 760px) {
  .procedures-experience__header { align-items: start; flex-direction: column; }.procedures-experience__header .button { align-self: stretch; }
  .procedures-table-card__header { align-items: stretch; flex-direction: column; }.procedures-search { width: 100%; }
  .procedures-table-card__header > div { justify-content: space-between; }.procedures-table { min-width: 55rem; }.procedures-table-card { overflow: hidden; }
  .procedures-pagination { grid-template-columns: 1fr auto; padding: .75rem; }.procedures-pagination p { text-align: right; }.procedures-pagination nav { grid-column: 1 / -1; justify-self: center; }
  .packages-table-actions { align-items: stretch; flex-direction: column; }.packages-table-actions .professionals-filter select { width: 100%; }.packages-experience .catalog-form { padding: 1rem; }.package-form__top-grid { grid-template-columns: 1fr; }.package-items__head { display: none; }.package-item { align-items: stretch; grid-template-columns: 1fr 4.2rem 2rem; }.package-item > select { grid-column: 1 / -1; }.package-item__price, .package-item__total { align-self: center; text-align: left; }.package-item__total { text-align: right; }.package-item .package-discount-input { grid-column: 1 / -1; }.package-form__discount { grid-template-columns: 1fr 6.5rem !important; }.package-form__discount .package-discount-input { grid-column: 1 / -1; grid-row: 2; }.package-form__discount > strong { grid-column: 2; grid-row: 1; }
  .professionals-experience__header { align-items: start; flex-direction: column; }.professionals-experience__header .button { align-self: stretch; }.professionals-table-card__header { align-items: stretch; flex-direction: column; }.professionals-table-actions { width: 100%; }.professionals-search { flex: 1; width: auto; }.professionals-table { min-width: 38rem; }.professionals-table-card { overflow: hidden; }.professionals-pagination { grid-template-columns: 1fr auto; padding: .75rem; }.professionals-pagination p { text-align: right; }.professionals-pagination nav { grid-column: 1 / -1; justify-self: center; }.professionals-experience .procedure-checklist > div { grid-template-columns: 1fr; }
}

/* Agenda Mês — official desktop composition: two operational rows and an 80/20 body. */
.agenda-month-desktop-top { display: none; }
.agenda-month-mobile-top { display: block; }

@media (min-width: 721px) {
  .agenda-experience--month {
    gap: .78rem;
    margin: 0;
    max-width: none;
    width: 100%;
  }

  .agenda-month-desktop-top { display: grid; gap: .68rem; }
  .agenda-month-mobile-top { display: none; }

  .agenda-month-topbar {
    align-items: center;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    min-height: 3.25rem;
  }

  .agenda-month-title-group,
  .agenda-month-topbar__right,
  .agenda-month-period,
  .agenda-month-toolbar__actions {
    align-items: center;
    display: flex;
    min-width: 0;
  }

  .agenda-month-title-group { gap: 1rem; }
  .agenda-month-title-group h1 {
    color: #211c2a;
    font-size: 1.72rem;
    font-weight: 740;
    letter-spacing: -.055em;
    line-height: 1;
    margin: 0;
  }

  .agenda-experience--month .agenda-segmented {
    background: #f0ecfb;
    border: 1px solid #e6e0f6;
    border-radius: .75rem;
    display: inline-grid;
    grid-template-columns: repeat(3, auto);
    padding: .2rem;
  }

  .agenda-experience--month .agenda-segmented button {
    border-radius: .56rem;
    color: #655f70;
    font-size: .76rem;
    font-weight: 650;
    min-height: 2.15rem;
    padding: .35rem .92rem;
  }

  .agenda-experience--month .agenda-segmented button.is-active {
    background: #fff;
    box-shadow: 0 4px 12px rgba(76, 54, 142, .13);
    color: #5d3fd0;
  }

  .agenda-month-topbar__right { gap: .55rem; }
  .agenda-month-search {
    align-items: center;
    background: rgba(255, 255, 255, .88);
    border: 1px solid #e6e2eb;
    border-radius: .7rem;
    display: flex;
    gap: .5rem;
    height: 2.5rem;
    padding: 0 .78rem;
    width: clamp(14rem, 24vw, 21rem);
  }

  .agenda-month-search svg,
  .agenda-month-select svg,
  .agenda-filter-button svg {
    fill: none;
    flex: 0 0 auto;
    height: 1rem;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
    width: 1rem;
  }

  .agenda-month-search svg { color: #8d849e; }
  .agenda-month-search input {
    background: transparent;
    border: 0;
    color: #38313f;
    font-size: .78rem;
    min-width: 0;
    outline: 0;
    width: 100%;
  }

  .agenda-month-search input::placeholder { color: #a49eac; }
  .agenda-month-search:focus-within { border-color: #a999df; box-shadow: 0 0 0 3px rgba(100, 72, 210, .1); }

  .agenda-notifications { position: relative; }
  .agenda-notifications > button {
    align-items: center;
    background: rgba(255, 255, 255, .88);
    border: 1px solid #e6e2eb;
    border-radius: .7rem;
    color: #65578b;
    display: inline-flex;
    height: 2.5rem;
    justify-content: center;
    position: relative;
    width: 2.5rem;
  }

  .agenda-notifications svg { fill: none; height: 1.15rem; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; width: 1.15rem; }
  .agenda-notifications i { background: #704ee0; border: 2px solid white; border-radius: 50%; height: .48rem; position: absolute; right: .35rem; top: .34rem; width: .48rem; }
  .agenda-notifications__popover { background: #fff; border: 1px solid #e5e0ec; border-radius: .8rem; box-shadow: 0 16px 36px rgba(42, 31, 66, .16); display: grid; gap: .22rem; padding: .78rem; position: absolute; right: 0; top: calc(100% + .42rem); width: 13rem; z-index: 12; }
  .agenda-notifications__popover strong { color: #3d3547; font-size: .75rem; }.agenda-notifications__popover span { color: #847c8c; font-size: .68rem; }

  .agenda-month-toolbar {
    align-items: center;
    background: rgba(255, 255, 255, .9);
    border: 1px solid #e7e3ec;
    border-radius: .9rem;
    box-shadow: 0 8px 22px rgba(52, 40, 76, .045);
    display: flex;
    gap: .85rem;
    justify-content: space-between;
    min-height: 3.35rem;
    padding: .42rem;
    position: relative;
    z-index: 6;
  }

  .agenda-month-period { gap: .38rem; }
  .agenda-month-toolbar__actions { gap: .42rem; justify-content: flex-end; }
  .agenda-experience--month .agenda-period-nav button,
  .agenda-experience--month .agenda-today,
  .agenda-month-select,
  .agenda-experience--month .agenda-filter-button,
  .agenda-experience--month .agenda-create { height: 2.42rem; min-height: 2.42rem; }

  .agenda-experience--month .agenda-period-nav button,
  .agenda-experience--month .agenda-today {
    background: #fff;
    border: 1px solid #e5e0e9;
    border-radius: .62rem;
  }

  .agenda-experience--month .agenda-period-nav button { font-size: 1.25rem; width: 2.42rem; }
  .agenda-experience--month .agenda-today { color: #4a4351; font-size: .76rem; padding-inline: .78rem; }
  .agenda-experience--month .agenda-period-label { color: #29222f; font-size: .92rem; font-weight: 730; letter-spacing: -.02em; padding: 0 .45rem; text-transform: none; white-space: nowrap; }

  .agenda-month-select {
    align-items: center;
    background: #fff;
    border: 1px solid #e5e0e9;
    border-radius: .64rem;
    color: #71677f;
    display: flex;
    gap: .42rem;
    padding: 0 .62rem;
  }

  .agenda-month-select select {
    appearance: none;
    background: transparent;
    border: 0;
    color: #48404f;
    font: inherit;
    font-size: .73rem;
    min-width: 0;
    outline: 0;
    width: 8.5rem;
  }

  .agenda-month-select:nth-of-type(2) select { width: 9rem; }
  .agenda-month-select > span { color: #7b7188; font-size: .8rem; }
  .agenda-experience--month .agenda-filter-button { align-items: center; border-color: #e5e0e9; display: inline-flex; font-size: .73rem; gap: .38rem; padding-inline: .72rem; }
  .agenda-experience--month .agenda-create { background: linear-gradient(135deg, #7655e3, #5d3cc5); border-radius: .65rem; box-shadow: 0 7px 15px rgba(91, 59, 191, .2); font-size: .76rem; padding-inline: .92rem; }
  .agenda-month-select:hover,
  .agenda-notifications > button:hover,
  .agenda-experience--month .agenda-filter-button:hover { border-color: #c8bce8; }

  .agenda-experience--month .agenda-main {
    align-items: start;
    display: grid;
    gap: .9rem;
    grid-template-columns: minmax(0, 4fr) minmax(13.5rem, 1fr);
    width: 100%;
  }

  .agenda-experience--month .agenda-primary-view { width: 100%; }
  .agenda-experience--month .agenda-month-view { border-color: #e7e2eb; border-radius: .95rem; box-shadow: 0 13px 34px rgba(47, 37, 68, .055); width: 100%; }
  .agenda-experience--month .agenda-month-weekdays { background: #fbfaff; border-bottom-color: #e9e5ed; }
  .agenda-experience--month .agenda-month-weekdays span { color: #746b7d; font-size: .67rem; font-weight: 760; letter-spacing: .055em; padding: .88rem 0; }
  .agenda-experience--month .agenda-month-cell { background: rgba(255, 255, 255, .94); border-bottom-color: rgba(79, 63, 96, .075); border-right-color: rgba(79, 63, 96, .06); min-height: 8.65rem; padding: .58rem; }
  .agenda-experience--month .agenda-month-cell.is-outside { background: #fbfafd; }
  .agenda-experience--month .agenda-month-cell.is-selected { background: linear-gradient(145deg, #faf8ff, #eee8ff); }
  .agenda-experience--month .agenda-month-cell__date { color: #39313f; font-size: .8rem; min-height: 1.65rem; min-width: 1.65rem; }
  .agenda-experience--month .agenda-month-cell.is-selected .agenda-month-cell__date { background: #6845d2; box-shadow: 0 4px 10px rgba(92, 57, 196, .24); }
  .agenda-experience--month .agenda-month-entry { border: 1px solid rgba(100, 73, 174, .08); border-radius: .46rem; display: grid; gap: .15rem; grid-template-columns: minmax(0, 1fr); margin-bottom: .28rem; min-height: 2.15rem; overflow: hidden; padding: .3rem .38rem; }
  .agenda-experience--month .agenda-month-entry span { color: #696170; font-size: .61rem; font-weight: 680; line-height: 1; }
  .agenda-experience--month .agenda-month-entry strong { color: #403747; font-size: .68rem; font-weight: 680; line-height: 1.13; overflow: hidden; overflow-wrap: normal; text-overflow: ellipsis; white-space: nowrap; word-break: keep-all; }
  .agenda-experience--month .agenda-month-entry.agenda-status--confirmado { background: #e5f5eb; }.agenda-experience--month .agenda-month-entry.agenda-status--chegou { background: #fff0d6; }.agenda-experience--month .agenda-month-entry.agenda-status--agendado { background: #eee9ff; }
  .agenda-experience--month .agenda-month-cell__more { color: #5e3fc6; font-size: .67rem; font-weight: 740; padding: .22rem .05rem; }

  .agenda-experience--month .agenda-month-aside { display: grid; gap: .72rem; position: sticky; top: .8rem; }
  .agenda-experience--month .agenda-month-aside > section { background: rgba(255, 255, 255, .91); border: 1px solid #e6e1eb; border-radius: .9rem; box-shadow: 0 9px 24px rgba(49, 39, 69, .045); padding: .9rem; }
  .agenda-experience--month .agenda-month-aside header strong { color: #342d3b; font-size: .82rem; text-transform: none; }
  .agenda-experience--month .agenda-month-aside header button { color: #6345cc; }
  .agenda-experience--month .agenda-mini-weekdays { margin-top: .7rem; }.agenda-experience--month .agenda-mini-weekdays span { font-size: .54rem; font-weight: 700; }
  .agenda-experience--month .agenda-mini-calendar { gap: .14rem; margin-top: .38rem; }
  .agenda-experience--month .agenda-mini-calendar button { background: transparent; border: 0; border-radius: 50%; color: #514959; font-size: .59rem; height: 1.35rem; padding: 0; width: 100%; }
  .agenda-experience--month .agenda-mini-calendar button:hover { background: #f0ecfb; color: #5d42c1; }
  .agenda-experience--month .agenda-mini-calendar button.is-outside { color: #c1bbc5; }
  .agenda-experience--month .agenda-mini-calendar button.is-selected { background: #6847d1; color: #fff; margin-inline: auto; width: 1.35rem; }

  .agenda-experience--month .agenda-visible-professionals h3,
  .agenda-experience--month .agenda-month-summary h3 { color: #635a6b; font-size: .64rem; font-weight: 760; letter-spacing: .08em; margin: 0 0 .72rem; text-transform: uppercase; }
  .agenda-professional-row { align-items: center; background: transparent; border: 0; border-radius: .62rem; color: inherit; display: grid; gap: .52rem; grid-template-columns: 1.85rem minmax(0, 1fr) 1rem; margin-top: .26rem; padding: .38rem; text-align: left; width: 100%; }
  .agenda-professional-row:hover { background: #f6f3fc; }
  .agenda-professional-row > span { align-items: center; background: linear-gradient(145deg, #eee8ff, #cabcf0); border: 2px solid #fff; border-radius: 50%; color: #59458e; display: flex; font-size: .52rem; font-weight: 760; height: 1.85rem; justify-content: center; width: 1.85rem; }
  .agenda-professional-row p { display: grid; gap: .06rem; margin: 0; min-width: 0; }.agenda-professional-row strong { color: #443b4a; font-size: .69rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.agenda-professional-row small { color: #8b8491; font-size: .58rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .agenda-professional-row i { align-items: center; background: #fff; border: 1px solid #cfc7d7; border-radius: .25rem; color: #fff; display: flex; font-size: .55rem; font-style: normal; height: .9rem; justify-content: center; width: .9rem; }.agenda-professional-row.is-selected i { background: #6948d2; border-color: #6948d2; }
  .agenda-experience--month .agenda-visible-professionals__all { color: #5c3fc4; display: block; font-size: .68rem; margin-top: .65rem; }

  .agenda-month-summary dl { display: grid; gap: .58rem; margin: 0; }.agenda-month-summary dl div { align-items: center; display: flex; justify-content: space-between; }.agenda-month-summary dt { color: #786f7f; font-size: .65rem; }.agenda-month-summary dd { color: #322a38; font-size: .72rem; font-weight: 730; margin: 0; }
  .agenda-month-preview { align-items: center; background: rgba(255, 255, 255, .97); border: 1px solid #dfd8e8; border-radius: .9rem; bottom: 1.25rem; box-shadow: 0 18px 42px rgba(40, 29, 63, .2); display: grid; gap: .7rem; grid-template-columns: auto minmax(0, 1fr) auto; max-width: 25rem; padding: .8rem; position: fixed; right: 1.25rem; width: calc(100% - 2.5rem); z-index: 20; }.agenda-month-preview > button:first-child { align-self: start; background: transparent; border: 0; color: #8e8694; font-size: 1rem; padding: 0; }.agenda-month-preview > span { display: grid; gap: .12rem; }.agenda-month-preview small { color: #6d59b4; font-size: .62rem; }.agenda-month-preview strong { color: #332b3b; font-size: .78rem; }.agenda-month-preview p { color: #817987; font-size: .67rem; margin: 0; }.agenda-month-preview > button:last-child { background: #eee9ff; border: 0; border-radius: .55rem; color: #5b3fc1; font-size: .68rem; font-weight: 700; padding: .55rem .65rem; }
}

@media (min-width: 721px) and (max-width: 1120px) {
  .agenda-experience--month .agenda-main { grid-template-columns: minmax(0, 1fr); }
  .agenda-experience--month .agenda-month-aside { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); position: static; }
  .agenda-month-toolbar { align-items: flex-start; flex-direction: column; }
  .agenda-month-period,
  .agenda-month-toolbar__actions { justify-content: space-between; width: 100%; }
}

/* Shared Agenda shell — Dia, Semana e Mês keep the same operational frame. */
.agenda-desktop-shell { display: none; }

@media (min-width: 721px) {
  .agenda-experience {
    gap: .78rem;
    margin: 0;
    max-width: none;
    width: 100%;
  }

  .agenda-desktop-shell { display: grid; gap: .68rem; }
  .agenda-month-mobile-top { display: none; }

  .agenda-shell-topbar {
    align-items: center;
    display: grid;
    grid-template-columns: minmax(8rem, 1fr) auto minmax(18rem, 1fr);
    min-height: 3.25rem;
  }

  .agenda-shell-topbar > h1 {
    color: #211c2a;
    font-size: 1.72rem;
    font-weight: 740;
    letter-spacing: -.055em;
    line-height: 1;
    margin: 0;
  }

  .agenda-shell-topbar > .agenda-segmented { justify-self: center; }
  .agenda-shell-topbar > .agenda-month-topbar__right { justify-self: end; }

  .agenda-experience .agenda-segmented {
    background: #f0ecfb;
    border: 1px solid #e6e0f6;
    border-radius: .75rem;
    display: inline-grid;
    grid-template-columns: repeat(3, auto);
    padding: .2rem;
  }

  .agenda-experience .agenda-segmented button {
    border-radius: .56rem;
    color: #655f70;
    font-size: .76rem;
    font-weight: 650;
    min-height: 2.15rem;
    padding: .35rem .92rem;
  }

  .agenda-experience .agenda-segmented button.is-active {
    background: #fff;
    box-shadow: 0 4px 12px rgba(76, 54, 142, .13);
    color: #5d3fd0;
  }

  .agenda-shell-toolbar { position: relative; z-index: 7; }
  .agenda-experience .agenda-period-nav button,
  .agenda-experience .agenda-today,
  .agenda-experience .agenda-filter-button,
  .agenda-experience .agenda-create,
  .agenda-experience .agenda-month-select {
    height: 2.42rem;
    min-height: 2.42rem;
  }

  .agenda-experience .agenda-period-nav button,
  .agenda-experience .agenda-today {
    background: #fff;
    border: 1px solid #e5e0e9;
    border-radius: .62rem;
  }

  .agenda-experience .agenda-period-nav button { font-size: 1.25rem; width: 2.42rem; }
  .agenda-experience .agenda-today { color: #4a4351; font-size: .76rem; padding-inline: .78rem; }
  .agenda-experience .agenda-period-label { color: #29222f; font-size: .92rem; font-weight: 730; letter-spacing: -.02em; padding: 0 .45rem; text-transform: none; white-space: nowrap; }
  .agenda-experience .agenda-filter-button { align-items: center; background: #fff; border-color: #e5e0e9; border-radius: .64rem; color: #514a5a; display: inline-flex; font-size: .73rem; font-weight: 650; gap: .38rem; padding-inline: .72rem; }
  .agenda-experience .agenda-create { background: linear-gradient(135deg, #7655e3, #5d3cc5); border-radius: .65rem; box-shadow: 0 7px 15px rgba(91, 59, 191, .2); font-size: .76rem; padding-inline: .92rem; }

  .agenda-experience--day .agenda-main,
  .agenda-experience--week .agenda-main {
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
  }

  .agenda-experience--day .agenda-main.has-context {
    grid-template-columns: minmax(0, 1fr) 15rem;
  }

  .agenda-experience--day .agenda-primary-view,
  .agenda-experience--week .agenda-primary-view { width: 100%; }

  .agenda-day-view {
    background: rgba(255, 255, 255, .9);
    border: 1px solid #e7e2eb;
    border-radius: .95rem;
    box-shadow: 0 13px 34px rgba(47, 37, 68, .05);
    overflow: auto;
  }

  .agenda-day-view__header,
  .agenda-day-grid {
    display: grid;
    grid-template-columns: var(--agenda-day-grid-columns);
    min-width: 100%;
  }

  .agenda-day-view__header {
    background: #fbfaff;
    border-bottom: 1px solid #e9e5ed;
    position: sticky;
    top: 0;
    z-index: 5;
  }

  .agenda-day-view__header > span {
    align-self: center;
    color: #8e8795;
    font-size: .62rem;
    font-weight: 700;
    justify-self: end;
    padding-right: .6rem;
  }

  .agenda-day-view__header > div {
    align-items: center;
    border-left: 1px solid rgba(79, 63, 96, .07);
    display: flex;
    gap: .48rem;
    min-height: 3.35rem;
    padding: .55rem .7rem;
  }

  .agenda-day-view__header > div > span:last-child { display: grid; gap: .08rem; min-width: 0; }
  .agenda-day-view__header strong { color: #3c3544; font-size: .72rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .agenda-day-view__header small { color: #928b98; font-size: .59rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .agenda-day-grid { grid-template-columns: 3.25rem minmax(0, 1fr); }
  .agenda-time-axis { height: 832px; position: relative; }
  .agenda-time-axis span { color: #99919f; font-size: .6rem; padding-right: .58rem; position: absolute; right: 0; transform: translateY(-.42rem); }
  .agenda-day-columns { display: grid; grid-template-columns: repeat(var(--agenda-day-column-count, 1), minmax(12rem, 1fr)); min-width: 0; position: relative; }
  .agenda-day-slots { border-left: 1px solid rgba(79, 63, 96, .065); height: 832px; min-height: 832px; position: relative; }
  .agenda-slot { height: 64px; }
  .agenda-appointment-block { border-left: 3px solid #8f77db; border-radius: .5rem; padding: .44rem .58rem; }
  .agenda-appointment-block.agenda-status--confirmado { border-left-color: #5eaf7e; }
  .agenda-appointment-block.agenda-status--chegou { border-left-color: #d99c34; }
  .agenda-appointment-block__copy strong { font-size: .73rem; }
  .agenda-appointment-block__copy small { font-size: .62rem; }
  .agenda-appointment-block__copy em { font-size: .54rem; }
  .agenda-appointment-block__time { font-size: .59rem; }
  .agenda-now { left: -3.25rem; }

  .agenda-week-view {
    background: #fff;
    border: 1px solid #e7e2eb;
    border-radius: .95rem;
    box-shadow: 0 13px 34px rgba(47, 37, 68, .05);
    display: grid;
    grid-template-columns: 3.25rem repeat(7, minmax(7rem, 1fr));
    min-height: 0;
    overflow-x: auto;
    position: relative;
  }

  .agenda-week-time-axis {
    border-right: 1px solid #ebe7ef;
    display: grid;
    grid-template-rows: 3.35rem var(--agenda-week-timeline-height);
  }

  .agenda-week-time-axis > span {
    align-self: center;
    color: #8e8795;
    font-size: .59rem;
    font-weight: 700;
    justify-self: end;
    padding-right: .48rem;
  }

  .agenda-week-time-axis__body { position: relative; }
  .agenda-week-time-axis__body small { color: #99919f; font-size: .56rem; padding-right: .48rem; position: absolute; right: 0; transform: translateY(-.38rem); }
  .agenda-week-column { border-right: 1px solid #ebe7ef; min-width: 7rem; }
  .agenda-week-column__heading { min-height: 3.35rem; }
  .agenda-week-column__heading span { font-size: .58rem; }
  .agenda-week-column__heading strong { font-size: .8rem; }
  .agenda-week-column__body { height: var(--agenda-week-timeline-height); min-height: var(--agenda-week-timeline-height); padding: 0; position: relative; }
  .agenda-week-gridline { border-bottom: 1px solid rgba(79, 63, 96, .065); display: block; height: 56px; }
  .agenda-week-card {
    background: #eeeaff;
    border: 1px solid rgba(105, 78, 183, .14);
    border-left: 3px solid #8f77db;
    border-radius: .45rem;
    box-shadow: 0 2px 6px rgba(58, 42, 92, .045);
    color: #403747;
    display: grid;
    gap: .12rem;
    left: .22rem;
    overflow: hidden;
    padding: .3rem .38rem;
    position: absolute;
    right: .22rem;
    text-align: left;
    z-index: 2;
  }

  .agenda-week-card.agenda-status--confirmado { background: #e8f6ed; border-left-color: #5eaf7e; }
  .agenda-week-card.agenda-status--chegou { background: #fff0d8; border-left-color: #d99c34; }
  .agenda-week-card strong { color: #312a39; font-size: .67rem; font-weight: 740; line-height: 1.1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .agenda-week-card span { color: #625a69; font-size: .57rem; font-weight: 560; line-height: 1.08; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .agenda-week-card small { color: #55505e; font-size: .54rem; font-weight: 620; line-height: 1.05; }
  .agenda-week-column__body .agenda-week-now { align-items: center; display: flex; left: .18rem; pointer-events: none; position: absolute; right: .18rem; transform: translateY(-1px); z-index: 4; }
  .agenda-week-now b { background: #f0635f; border-radius: 50%; height: .34rem; width: .34rem; }
  .agenda-week-now i { background: #f0635f; flex: 1; height: 1px; opacity: .72; }
}

@media (min-width: 721px) and (max-width: 1120px) {
  .agenda-shell-topbar { grid-template-columns: auto 1fr auto; }
  .agenda-shell-topbar > .agenda-segmented { justify-self: start; margin-left: 1rem; }
  .agenda-shell-toolbar { align-items: flex-start; flex-direction: column; }
  .agenda-month-period,
  .agenda-month-toolbar__actions { justify-content: space-between; width: 100%; }
  .agenda-experience--day .agenda-main.has-context { grid-template-columns: minmax(0, 1fr) 13.5rem; }
}

@media (max-width: 720px) {
  .agenda-desktop-shell { display: none; }
  .agenda-experience--month .agenda-month-mobile-top .agenda-toolbar__filters { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; }
  .agenda-experience--month .agenda-month-mobile-top .agenda-professional-select,
  .agenda-experience--month .agenda-month-mobile-top .agenda-service-select { min-width: 0; width: 100%; }
  .agenda-experience--month .agenda-month-mobile-top .agenda-service-select { padding-inline: .45rem; }
  .agenda-experience--month .agenda-month-mobile-top .agenda-service-select select { min-width: 0; overflow: hidden; text-overflow: ellipsis; width: 100%; }
  .agenda-experience--month .agenda-month-mobile-top .agenda-service-select svg { fill: none; flex: 0 0 auto; height: .9rem; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; width: .9rem; }
  .agenda-day-view__header { display: grid; grid-template-columns: 2.72rem minmax(0, 1fr); }
  .agenda-day-view__header > span { align-self: center; color: #9a94a1; font-size: .55rem; justify-self: end; padding-right: .4rem; }
  .agenda-day-view__header > div { align-items: center; display: flex; gap: .42rem; min-height: 2.85rem; padding: .45rem .55rem; }
  .agenda-day-view__header > div > span:last-child { display: grid; }
  .agenda-day-view__header strong { font-size: .66rem; }
  .agenda-day-view__header small { color: #928b98; font-size: .55rem; }
  .agenda-day-view__header .is-additional,
  .agenda-day-slots.is-additional { display: none; }
  .agenda-day-columns { display: block; position: relative; }
  .agenda-time-axis { height: 832px; position: relative; }
  .agenda-time-axis span { position: absolute; right: 0; transform: translateY(-.38rem); }
  .agenda-day-slots { height: 832px; min-height: 832px; }
  .agenda-week-view { grid-template-columns: 2.72rem repeat(7, 6rem); min-height: 0; }
  .agenda-week-time-axis { grid-template-rows: 2.9rem var(--agenda-week-timeline-height); }
  .agenda-week-time-axis__body { position: relative; }
  .agenda-week-time-axis__body small { position: absolute; right: .35rem; transform: translateY(-.35rem); }
  .agenda-week-column { min-width: 6rem; }
  .agenda-week-column__heading { min-height: 2.9rem; }
  .agenda-week-column__body { height: var(--agenda-week-timeline-height); min-height: var(--agenda-week-timeline-height); padding: 0; position: relative; }
  .agenda-week-gridline { display: block; height: 56px; }
  .agenda-week-card { left: .18rem; padding: .24rem .28rem; position: absolute; right: .18rem; }
  .agenda-week-now { display: none; }
  .agenda-month-mobile-top .agenda-filter-button { align-items: center; display: inline-flex; min-height: 2.45rem; }.agenda-filter-popover { bottom: max(.5rem, env(safe-area-inset-bottom)); left: .75rem; position: fixed; right: .75rem; top: auto; width: auto; z-index: 75; }.agenda-filter-popover::before { background: rgba(35, 29, 43, .32); content: ""; inset: 0; position: fixed; z-index: -1; }.agenda-filter-popover select, .agenda-filter-popover footer .button { min-height: 2.75rem; }.agenda-filter-popover footer { gap: .75rem; }.agenda-filter-popover footer .button { flex: 1; }.agenda-filter-popover__clear { min-height: 2.75rem; }
}

/* New appointment is a contextual, non-persistent visual flow. */
.appointment-create-section { border-bottom: 1px solid rgba(101, 83, 128, .09); display: grid; gap: .72rem; padding: 1.15rem 0; }
.appointment-create-section > header { align-items: baseline; display: flex; gap: .45rem; }
.appointment-create-section > header strong { color: #39313f; font-size: .9rem; font-weight: 730; letter-spacing: -.01em; }
.appointment-create-section > header small { color: #938a9a; font-size: .7rem; font-weight: 600; }
.appointment-search { align-items: center; background: rgba(255, 255, 255, .72); border: 1px solid rgba(99, 78, 130, .13); border-radius: .8rem; display: flex; min-height: 2.7rem; }
.appointment-search::before { color: #8b7c9e; content: "⌕"; font-size: 1.13rem; margin-left: .8rem; }
.appointment-search input { background: transparent; border: 0; color: #3f3747; font: inherit; font-size: .78rem; min-width: 0; outline: 0; padding: .65rem .72rem; width: 100%; }
.appointment-search input::placeholder { color: #aea8b2; }
.appointment-client-results { background: rgba(255, 255, 255, .94); border: 1px solid rgba(99, 78, 130, .11); border-radius: .8rem; box-shadow: 0 10px 25px rgba(62, 45, 87, .07); display: grid; margin-top: .45rem; overflow: hidden; }
.appointment-client-results button { align-items: center; background: transparent; border: 0; border-bottom: 1px solid rgba(95, 75, 122, .08); color: #403946; display: grid; gap: .6rem; grid-template-columns: 2rem minmax(0, 1fr); padding: .68rem .72rem; text-align: left; }
.appointment-client-results button:hover { background: #faf8ff; }.appointment-client-results button:last-child { border-bottom: 0; }
.appointment-client-results button > span, .appointment-client-selected > span { align-items: center; background: linear-gradient(145deg, #eee8ff, #cabcf2); border-radius: 50%; color: #56408d; display: flex; font-size: .6rem; font-weight: 760; height: 2rem; justify-content: center; width: 2rem; }
.appointment-client-results p, .appointment-client-selected p { display: grid; gap: .08rem; margin: 0; min-width: 0; }.appointment-client-results strong, .appointment-client-selected strong { font-size: .78rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.appointment-client-results small, .appointment-client-selected small { color: #837a89; font-size: .66rem; }
.appointment-client-results > p { color: #8d8593; font-size: .7rem; margin: 0; padding: .7rem; }
.appointment-client-selected { align-items: center; background: linear-gradient(110deg, rgba(241, 236, 255, .82), rgba(252, 251, 255, .66)); border-radius: .85rem; display: grid; gap: .68rem; grid-template-columns: 2.55rem minmax(0, 1fr) 1.85rem; padding: .7rem .78rem; }
.appointment-client-selected > span { font-size: .69rem; height: 2.55rem; width: 2.55rem; }.appointment-client-selected > button, .appointment-procedure-row > button[aria-label="Remover procedimento"] { background: transparent; border: 0; border-radius: .55rem; color: #81768d; font-size: 1.15rem; height: 1.8rem; line-height: 1; width: 1.8rem; }.appointment-client-selected > button:hover, .appointment-procedure-row > button[aria-label="Remover procedimento"]:hover { background: rgba(229, 221, 248, .8); color: #6045bd; }
.appointment-text-action { background: transparent; border: 0; color: #6044c1; font-size: .73rem; font-weight: 720; padding: .22rem 0 0; text-align: left; }.appointment-text-action:disabled { color: #b3adba; }
.appointment-quick-client { background: rgba(247, 244, 253, .78); border: 1px solid rgba(112, 91, 145, .1); border-radius: .8rem; display: grid; gap: .55rem; margin-top: .5rem; padding: .75rem; }
.appointment-quick-client label { display: grid; gap: .22rem; }.appointment-quick-client label > span { color: #756d7d; font-size: .65rem; font-weight: 660; }.appointment-quick-client label em { color: #aaa3ae; font-style: normal; font-weight: 500; }
.appointment-quick-client input { background: #fff; border: 1px solid #e7e2eb; border-radius: .58rem; color: #453d4b; font-size: .74rem; min-height: 2.2rem; outline-color: #7b5cda; padding: .4rem .55rem; }
.appointment-quick-client > div:last-child { display: flex; gap: .4rem; justify-content: flex-end; }.appointment-quick-client .button { font-size: .7rem; min-height: 2rem; padding: .4rem .65rem; }
.appointment-duplicate { background: #fff7ec; border: 1px solid #f5dfc3; border-radius: .55rem; color: #73583a; display: grid; gap: .28rem; padding: .55rem; }.appointment-duplicate strong { font-size: .65rem; }.appointment-duplicate button { background: transparent; border: 0; color: #9b5f22; font-size: .68rem; font-weight: 720; padding: 0; text-align: left; }
.appointment-form-error { color: #bd4e51; font-size: .72rem; line-height: 1.4; margin: 0; }
.appointment-procedure-selector { display: grid; gap: .2rem; }.appointment-procedure-row { align-items: center; border-bottom: 1px solid rgba(98, 77, 125, .09); display: grid; grid-template-columns: minmax(0, 1fr) 1.8rem; min-height: 2.75rem; padding: .18rem 0; position: relative; }.appointment-procedure-row:last-of-type { border-bottom: 0; }.appointment-procedure-choice, .appointment-procedure-empty { align-items: center; background: transparent; border: 0; color: #3f3747; display: grid; font: inherit; gap: .55rem; grid-column: 1; min-width: 0; padding: .4rem 0; text-align: left; }.appointment-procedure-choice { grid-template-columns: 1.1rem minmax(0, 1fr) auto; }.appointment-procedure-choice > span { color: #7453d2; font-size: .8rem; }.appointment-procedure-choice strong, .appointment-procedure-empty { font-size: .78rem; font-weight: 650; }.appointment-procedure-choice strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.appointment-procedure-choice small { color: #716779; font-size: .7rem; font-weight: 620; white-space: nowrap; }.appointment-procedure-empty { color: #6044c1; grid-template-columns: minmax(0, 1fr) auto; }.appointment-procedure-empty span { color: #8a789d; font-size: 1rem; }.appointment-procedure-row > button[aria-label="Remover procedimento"] { align-self: center; grid-column: 2; }.appointment-procedure-picker { background: rgba(255, 255, 255, .98); border: 1px solid rgba(102, 81, 131, .16); border-radius: .85rem; box-shadow: 0 14px 30px rgba(55, 39, 80, .13); display: grid; gap: .1rem; left: 0; padding: .5rem; position: absolute; right: 0; top: calc(100% + .3rem); z-index: 8; }.appointment-procedure-picker__search { align-items: center; background: #faf8ff; border: 1px solid rgba(102, 81, 131, .1); border-radius: .58rem; display: flex; min-height: 2.2rem; padding-inline: .55rem; }.appointment-procedure-picker__search::before { color: #927cae; content: "⌕"; font-size: 1rem; }.appointment-procedure-picker__search input { background: transparent; border: 0; color: #463d4d; font: inherit; font-size: .7rem; min-width: 0; outline: 0; padding: .35rem .45rem; width: 100%; }.appointment-procedure-picker__heading, .appointment-procedure-picker > button { align-items: center; display: grid; grid-template-columns: minmax(0, 1fr) auto; }.appointment-procedure-picker__heading { color: #8b8192; font-size: .59rem; font-weight: 700; padding: .55rem .45rem .3rem; }.appointment-procedure-picker > button { background: transparent; border: 0; border-radius: .55rem; color: #443b4c; gap: .55rem; padding: .55rem .45rem; text-align: left; }.appointment-procedure-picker > button:hover, .appointment-procedure-picker > button[aria-selected="true"] { background: #f3efff; }.appointment-procedure-picker > button strong { font-size: .72rem; font-weight: 680; }.appointment-procedure-picker > button small { color: #766b80; font-size: .65rem; font-weight: 620; }.appointment-procedure-picker > p { color: #82778a; font-size: .68rem; margin: .5rem .4rem; }
.appointment-procedure-choice, .appointment-procedure-empty { width: 100%; }
.appointment-procedure-choice > strong { color: #3f3747; justify-self: start; }
.appointment-procedure-choice { display: flex; width: 100%; }.appointment-procedure-choice > span { flex: 0 0 1.1rem; }.appointment-procedure-choice > strong { flex: 1 1 auto; min-width: 0; }.appointment-procedure-choice > small { flex: 0 0 auto; }
.appointment-inline-note { color: #7f7586; font-size: .7rem; line-height: 1.45; margin: 0; }
.appointment-professional-field { background: rgba(250, 248, 255, .7); border-radius: .85rem; min-height: 3.4rem; position: relative; }.appointment-professional-trigger { align-items: center; background: transparent; border: 0; color: inherit; display: grid; gap: .62rem; grid-template-columns: 2.45rem minmax(0, 1fr) 1.5rem; min-height: 3.4rem; padding: .45rem .55rem; text-align: left; width: 100%; }.appointment-professional-trigger > span:first-child, .appointment-professional-picker > button > span { align-items: center; background: linear-gradient(145deg, #eee8ff, #c7b8ef); border-radius: 50%; color: #58418e; display: flex; font-size: .68rem; font-weight: 760; height: 2.35rem; justify-content: center; width: 2.35rem; }.appointment-professional-field p { display: grid; gap: .1rem; margin: 0; min-width: 0; }.appointment-professional-field p strong { color: #403747; font-size: .78rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.appointment-professional-field p small { color: #807586; font-size: .66rem; }.appointment-professional-field__chevron { color: #786d85; font-size: 1rem; text-align: center; }.appointment-professional-trigger:focus-visible { border-radius: .85rem; box-shadow: inset 0 0 0 2px rgba(108, 76, 202, .38); outline: 0; }.appointment-professional-field.is-disabled { background: rgba(246, 244, 248, .72); }.appointment-professional-field.is-disabled .appointment-professional-trigger > span:first-child { background: #ece9ef; color: #a29aa9; }.appointment-professional-picker { background: rgba(255, 255, 255, .98); border: 1px solid rgba(102, 81, 131, .16); border-radius: .85rem; box-shadow: 0 14px 30px rgba(55, 39, 80, .13); display: grid; gap: .12rem; left: 0; padding: .45rem; position: absolute; right: 0; top: calc(100% + .3rem); z-index: 8; }.appointment-professional-picker > button { align-items: center; background: transparent; border: 0; border-radius: .6rem; display: grid; gap: .6rem; grid-template-columns: 2.2rem minmax(0, 1fr); padding: .5rem; text-align: left; }.appointment-professional-picker > button:hover, .appointment-professional-picker > button[aria-selected="true"] { background: #f3efff; }.appointment-professional-picker > button > span { font-size: .62rem; height: 2.05rem; width: 2.05rem; }.appointment-professional-picker > button p strong { font-size: .74rem; }
.appointment-date-field { align-items: center; background: rgba(250, 248, 255, .7); border-radius: .8rem; display: grid; gap: .1rem; min-height: 3.35rem; padding: .5rem .7rem; position: relative; }.appointment-date-field::after { color: #7055bd; content: "◷"; font-size: .95rem; position: absolute; right: .8rem; top: 1.1rem; }.appointment-date-field span { color: #8a8092; font-size: .66rem; }.appointment-date-field strong { color: #403747; font-size: .8rem; font-weight: 690; }.appointment-date-field input { cursor: pointer; height: 100%; inset: 0; opacity: 0; position: absolute; width: 100%; }
.appointment-time-heading { align-items: center; display: flex; justify-content: space-between; margin-top: .15rem; }.appointment-time-heading span { color: #433a4b; font-size: .8rem; font-weight: 710; }.appointment-time-heading small { color: #756a80; font-size: .7rem; font-weight: 600; }
.appointment-time-grid { display: grid; gap: .45rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }.appointment-time-grid button { background: rgba(255, 255, 255, .78); border: 1px solid rgba(102, 81, 131, .13); border-radius: .62rem; color: #564d5d; font-size: .72rem; font-weight: 670; min-height: 2.2rem; }.appointment-time-grid button:not(:disabled):hover { border-color: #a991e9; color: #6547c5; }.appointment-time-grid button.is-selected { background: linear-gradient(135deg, #7655e3, #6040ca); border-color: #6948d0; box-shadow: 0 6px 13px rgba(92, 61, 194, .22); color: #fff; }.appointment-time-grid button:disabled { background: rgba(241, 239, 243, .7); border-color: transparent; color: #bab3bf; text-decoration: line-through; }
.appointment-notes { background: rgba(255, 255, 255, .5); border-bottom: 1px solid rgba(99, 78, 130, .12); display: grid; position: relative; }.appointment-notes textarea { background: transparent; border: 0; color: #4a414f; font: inherit; font-size: .76rem; min-height: 4.2rem; outline: 0; padding: .3rem 0 1.1rem; resize: vertical; }.appointment-notes small { bottom: .35rem; color: #958b9b; font-size: .6rem; position: absolute; right: 0; }
.appointment-summary { background: linear-gradient(135deg, rgba(241, 235, 255, .9), rgba(252, 250, 255, .82)); border-radius: 1rem; display: grid; gap: .45rem; margin-top: 1.2rem; padding: 1rem 1.05rem; }.appointment-summary > header { align-items: center; display: flex; justify-content: space-between; }.appointment-summary > header span { color: #6046be; font-size: .7rem; font-weight: 760; letter-spacing: .015em; }.appointment-summary > header small { color: #786a9b; font-size: .65rem; font-weight: 620; }.appointment-summary__client { color: #342a40; font-size: .94rem; letter-spacing: -.015em; margin-top: .1rem; }.appointment-summary__procedures, .appointment-summary__professional, .appointment-summary__time { color: #5c5167; font-size: .73rem; line-height: 1.4; margin: 0; }.appointment-summary__procedures { display: grid; gap: .08rem; }.appointment-summary__procedures small { color: inherit; font-size: inherit; }.appointment-summary__professional { color: #4c4160; font-weight: 680; }.appointment-summary__time { color: #6e6278; }
.agenda-week-gridline { background: transparent; border: 0; border-bottom: 1px solid rgba(79, 63, 96, .065); cursor: pointer; display: block; height: 56px; padding: 0; width: 100%; }.agenda-week-gridline:hover { background: rgba(239, 235, 253, .26); }

/* Central appointment modal: an operational form that keeps the Agenda in context. */
.appointment-modal-overlay { align-items: center; display: flex; inset: 0; justify-content: center; padding: 1.5rem; position: fixed; z-index: 60; }
.appointment-modal-overlay__backdrop { background: rgba(39, 30, 55, .32); backdrop-filter: blur(2px); border: 0; cursor: default; inset: 0; position: absolute; width: 100%; }
.appointment-modal { background: linear-gradient(145deg, #fff, #fbfaff); border: 1px solid rgba(100, 78, 137, .13); border-radius: 1.2rem; box-shadow: 0 28px 90px rgba(35, 25, 50, .27); display: grid; grid-template-rows: auto minmax(0, 1fr) auto; max-height: min(88dvh, 52rem); max-width: 52rem; overflow: hidden; position: relative; width: min(calc(100vw - 3rem), 52rem); }
.appointment-modal__header { align-items: flex-start; border-bottom: 1px solid rgba(101, 83, 128, .1); display: flex; justify-content: space-between; padding: 1.35rem 1.65rem 1.1rem; }
.appointment-modal__header p { color: #292331; font-size: 1.16rem; font-weight: 750; letter-spacing: -.035em; margin: 0; text-transform: none; }
.appointment-modal__header small { color: #807887; display: block; font-size: .76rem; margin-top: .28rem; }
.appointment-modal__header > button { align-items: center; background: rgba(244, 240, 252, .86); border: 1px solid rgba(107, 87, 138, .08); border-radius: .7rem; color: #756d80; display: flex; font-size: 1.25rem; height: 2.2rem; justify-content: center; line-height: 1; width: 2.2rem; }
.appointment-modal__body { align-content: start; display: grid; overflow-y: auto; padding: 0 1.65rem 1.35rem; }
.appointment-create-section { gap: .85rem; padding: 1.2rem 0; }
.appointment-create-section > header strong { color: #4b3c5a; font-size: .68rem; font-weight: 780; letter-spacing: .09em; text-transform: uppercase; }
.appointment-field-label { color: #645a6d; display: grid; gap: .38rem; font-size: .7rem; font-weight: 700; min-width: 0; }
.appointment-field-label > span { display: flex; gap: .25rem; }
.appointment-field-label em { color: #9b93a4; font-size: .66rem; font-style: normal; font-weight: 550; }
.appointment-client-selector { display: grid; gap: .38rem; }
.appointment-form-split { display: grid; gap: .85rem; grid-template-columns: minmax(0, 1.65fr) minmax(9rem, .85fr); }
.appointment-native-input, .appointment-native-select { appearance: none; background: rgba(255, 255, 255, .86); border: 1px solid rgba(99, 78, 130, .15); border-radius: .7rem; box-sizing: border-box; color: #433a4b; font: inherit; font-size: .78rem; font-weight: 620; min-height: 2.75rem; outline-color: #7655d7; padding: .6rem .75rem; width: 100%; }
.appointment-native-select { background-image: linear-gradient(45deg, transparent 50%, #7d7088 50%), linear-gradient(135deg, #7d7088 50%, transparent 50%); background-position: calc(100% - .92rem) 1.16rem, calc(100% - .68rem) 1.16rem; background-repeat: no-repeat; background-size: .25rem .25rem, .25rem .25rem; padding-right: 2rem; }
.appointment-native-input:read-only, .appointment-native-select:disabled { background-color: #f6f3f9; color: #928a9a; cursor: default; }
.time-combobox { min-width: 0; position: relative; }
.time-combobox__control { align-items: stretch; background: rgba(255, 255, 255, .86); border: 1px solid rgba(99, 78, 130, .15); border-radius: .7rem; display: flex; min-height: 2.75rem; overflow: hidden; transition: border-color .16s ease, box-shadow .16s ease; }
.time-combobox.is-open .time-combobox__control { border-color: #7655d7; box-shadow: 0 0 0 2px rgba(118, 85, 215, .13); }.time-combobox.has-error .time-combobox__control { border-color: #d9485f; box-shadow: 0 0 0 2px rgba(217, 72, 95, .1); }
.time-combobox__control input { background: transparent; border: 0; color: #433a4b; flex: 1; font: inherit; font-size: .78rem; font-weight: 620; min-width: 0; outline: 0; padding: .6rem .2rem .6rem .75rem; }.time-combobox__control input::placeholder { color: #9c94a5; font-weight: 500; }
.time-combobox__control button { appearance: none; background: transparent; border: 0; color: #7356be; cursor: pointer; font: inherit; font-size: 1rem; padding: 0 .75rem 0 .35rem; }.time-combobox__control button:disabled, .time-combobox.is-disabled .time-combobox__control { background: #f6f3f9; color: #928a9a; cursor: default; }
.time-combobox__options { background: #fff; border: 1px solid #7655d7; border-radius: .78rem; box-shadow: 0 14px 30px rgba(55, 39, 80, .16); display: grid; gap: .12rem; left: 0; max-height: 15rem; overflow-y: auto; padding: .38rem; position: absolute; right: 0; top: calc(100% + .35rem); z-index: 30; }
.time-combobox__options button { appearance: none; background: transparent; border: 0; border-radius: .45rem; color: #4e4557; cursor: pointer; font: inherit; font-size: .72rem; font-weight: 650; min-height: 2rem; padding: .35rem .55rem; text-align: left; }.time-combobox__options button:hover, .time-combobox__options button.is-active { background: #f2edff; color: #6c47ce; }.time-combobox__options button[aria-selected="true"] { background: #7655d7; color: #fff; }.time-combobox__options p { color: #81788b; font-size: .7rem; margin: .4rem .5rem; }
.time-combobox__error { color: #bd3450; display: block; font-size: .64rem; font-weight: 600; margin-top: .32rem; }
.appointment-notes { background: rgba(255, 255, 255, .7); border: 1px solid rgba(99, 78, 130, .13); border-radius: .7rem; box-sizing: border-box; color: #4a414f; display: block; font: inherit; font-size: .76rem; min-height: 3.4rem; outline-color: #7655d7; padding: .68rem .75rem; position: static; resize: vertical; width: 100%; }
.appointment-professional-field { background: rgba(255, 255, 255, .86); border: 1px solid rgba(99, 78, 130, .15); border-radius: .7rem; min-height: 2.75rem; }
.appointment-professional-trigger { grid-template-columns: minmax(0, 1fr) 1.25rem; min-height: 2.75rem; padding: .35rem .45rem; }
.appointment-professional-field.is-selected .appointment-professional-trigger { grid-template-columns: 1.85rem minmax(0, 1fr) 1.25rem; }
.appointment-professional-avatar { align-items: center; background: linear-gradient(145deg, #eee8ff, #c7b8ef); border-radius: 50%; color: #58418e; display: flex; font-size: .57rem; font-weight: 760; height: 1.65rem; justify-content: center; width: 1.65rem; }
.appointment-professional-field p strong { font-size: .74rem; }.appointment-professional-field p small { display: none; }
.appointment-professional-picker { z-index: 12; }.appointment-professional-picker > button p small { display: block; }.appointment-professional-picker > button > .appointment-professional-avatar { font-size: .62rem; height: 2.05rem; width: 2.05rem; }
.appointment-professional-notice { background: #fff8e9; border: 1px solid #f3dfad; border-radius: .65rem; color: #765724; font-size: .71rem; line-height: 1.42; margin: 0; padding: .62rem .72rem; }
.appointment-status-field { position: relative; }.appointment-status-trigger { align-items: center; appearance: none; background: rgba(255, 255, 255, .86); border: 1px solid rgba(99, 78, 130, .15); border-radius: .7rem; color: #433a4b; display: grid; font: inherit; font-size: .78rem; font-weight: 620; gap: .48rem; grid-template-columns: .72rem minmax(0, 1fr) 1rem; min-height: 2.75rem; padding: .6rem .7rem; text-align: left; width: 100%; }.appointment-status-trigger > span:last-child { color: #7d7088; font-size: .85rem; text-align: right; }.appointment-status-field.is-selecting .appointment-status-trigger { border-color: #7655d7; box-shadow: 0 0 0 2px rgba(118, 85, 215, .13); }.appointment-status-indicator { align-items: center; border: 1px solid currentColor; border-radius: 50%; display: inline-flex; font-size: .45rem; height: .62rem; justify-content: center; line-height: 1; width: .62rem; }.appointment-status-indicator.is-scheduled { color: #7954d9; }.appointment-status-indicator.is-confirmed, .appointment-status-indicator.is-completed { color: #2ea86f; }.appointment-status-indicator.is-rescheduled { color: #d38a22; }.appointment-status-indicator.is-cancelled, .appointment-status-indicator.is-no-show { color: #d75171; }.appointment-status-indicator.is-waiting { color: #5086d8; }.appointment-status-indicator.is-in-progress { color: #6650c8; }.appointment-status-picker { background: #fff; border: 1px solid #7655d7; border-radius: .7rem; box-shadow: 0 14px 30px rgba(55, 39, 80, .15); display: grid; left: 0; max-height: 15.5rem; overflow-y: auto; padding: .3rem; position: absolute; right: 0; top: calc(100% + .25rem); z-index: 14; }.appointment-status-picker > button { align-items: center; background: transparent; border: 0; border-radius: .48rem; color: #4f4558; display: grid; font: inherit; font-size: .74rem; gap: .48rem; grid-template-columns: .72rem minmax(0, 1fr) 1rem; min-height: 2.1rem; padding: .38rem .42rem; text-align: left; }.appointment-status-picker > button:hover, .appointment-status-picker > button[aria-selected="true"] { background: #f0e8ff; color: #7040d8; }.appointment-status-picker > button b { color: #7040d8; font-size: .78rem; text-align: right; }
.appointment-procedure-selector { gap: .45rem; }
.appointment-procedure-row { background: rgba(251, 249, 254, .78); border: 1px solid rgba(99, 78, 130, .11); border-radius: .72rem; min-height: 2.85rem; padding: .16rem .28rem .16rem .55rem; }
.appointment-procedure-main { display: grid; gap: .2rem; grid-column: 1; min-width: 0; padding-block: .18rem; }.appointment-procedure-duration { align-items: center; color: #746b7c; display: flex; font-size: .64rem; gap: .35rem; padding: 0 0 .2rem 1.65rem; }.appointment-procedure-duration > span { margin-right: auto; }.appointment-procedure-duration input { background: #fff; border: 1px solid rgba(99, 78, 130, .16); border-radius: .45rem; color: #443b4c; font: inherit; font-weight: 680; padding: .3rem .4rem; text-align: right; width: 4.2rem; }.appointment-procedure-duration small { font-size: .62rem; }
.appointment-procedure-row:last-of-type { border-bottom: 1px solid rgba(99, 78, 130, .11); }
.appointment-procedure-choice, .appointment-procedure-empty { min-height: 2.4rem; }
.appointment-procedure-choice > span { display: none; }
.appointment-procedure-choice strong, .appointment-procedure-empty { font-size: .78rem; }.appointment-procedure-choice small { background: rgba(235, 228, 252, .9); border-radius: 99rem; color: #685187; font-size: .65rem; padding: .25rem .46rem; }
.appointment-procedure-picker { z-index: 12; }
.appointment-procedure-inputs { align-items: end; display: grid; gap: .38rem; grid-template-columns: 4.2rem 3.2rem 5.4rem auto; padding: 0 0 .22rem 1.65rem; }
.appointment-procedure-inputs label { align-items: center; color: #746b7c; display: flex; flex-direction: column; font-size: .58rem; gap: .18rem; }
.appointment-procedure-inputs input { background: #fff; border: 1px solid rgba(99, 78, 130, .16); border-radius: .42rem; color: #443b4c; font: inherit; font-size: .68rem; font-weight: 680; min-width: 0; padding: .28rem .32rem; text-align: right; width: 100%; }
.appointment-procedure-inputs .money-input { background: #fff; border: 1px solid rgba(99, 78, 130, .16); border-radius: .42rem; color: #746b7c; display: grid; font-size: .58rem; grid-template-columns: auto minmax(0, 1fr); min-height: 0; padding-left: .32rem; }
.appointment-procedure-inputs .money-input input { font-size: .68rem; min-height: 1.65rem; padding: .28rem .32rem .28rem .12rem; }
.appointment-procedure-line-total { color: #4e3b75; font-size: .68rem; padding-bottom: .3rem; white-space: nowrap; }
.appointment-finance-panel { align-items: center; background: #faf8ff; border: 1px solid rgba(99, 78, 130, .1); border-radius: .72rem; display: flex; justify-content: space-between; padding: .75rem .85rem; }
.appointment-finance-panel div { display: grid; gap: .18rem; }.appointment-finance-panel strong { color: #44364f; font-size: .76rem; }.appointment-finance-panel small { color: #81788b; font-size: .64rem; }.appointment-finance-total { color: #6945d2 !important; font-size: .92rem !important; }
.appointment-package-summary { background: #f7f4ff; border: 1px solid #e7e0fb; border-radius: .72rem; display: grid; gap: .25rem; padding: .7rem .8rem; }
.appointment-package-summary strong { color: #40355c; font-size: .8rem; }
.appointment-package-summary span { color: #756b88; font-size: .72rem; }
.appointment-billing-toggle { align-items: center; color: #4d4356; display: flex; font-size: .75rem; gap: .55rem; }.appointment-billing-toggle input { height: 0; opacity: 0; position: absolute; width: 0; }.appointment-billing-toggle span { background: #d8d4df; border-radius: 99rem; height: 1.35rem; position: relative; transition: .18s ease; width: 2.35rem; }.appointment-billing-toggle span::after { background: #fff; border-radius: 50%; box-shadow: 0 1px 3px rgba(40, 25, 60, .18); content: ""; height: 1.05rem; left: .15rem; position: absolute; top: .15rem; transition: .18s ease; width: 1.05rem; }.appointment-billing-toggle input:checked + span { background: #7650ea; }.appointment-billing-toggle input:checked + span::after { transform: translateX(1rem); }.appointment-billing-toggle input:focus-visible + span { outline: 2px solid #7650ea; outline-offset: 2px; }
.appointment-total-duration { color: #675c71; font-size: .74rem; margin: .1rem 0 0; text-align: right; }.appointment-total-duration strong { color: #4e386b; }
.appointment-date-time-fields { display: grid; gap: .75rem; grid-template-columns: 1.25fr .9fr .9fr; }
.appointment-inline-note { color: #887e91; font-size: .68rem; }.appointment-recurrence { max-width: 15rem; }.appointment-recurrence-custom { display: grid; gap: .72rem; grid-template-columns: minmax(0, 1.35fr) minmax(0, .75fr) minmax(0, .75fr); }.appointment-recurrence-custom__frequency { display: grid; gap: .45rem; grid-template-columns: .7fr 1fr; }
.appointment-summary { background: linear-gradient(135deg, rgba(242, 237, 255, .92), rgba(252, 250, 255, .9)); border: 1px solid rgba(107, 82, 158, .1); border-radius: .95rem; gap: .4rem; margin: 1.15rem 0 .25rem; padding: 1rem 1.1rem; }.appointment-summary > header span { font-size: .66rem; letter-spacing: .07em; text-transform: uppercase; }.appointment-summary__client { font-size: .9rem; }.appointment-summary__procedures, .appointment-summary__professional, .appointment-summary__time { font-size: .73rem; }
.appointment-modal__footer { align-items: center; background: rgba(255, 255, 255, .88); border-top: 1px solid rgba(101, 83, 128, .1); box-shadow: 0 -10px 25px rgba(67, 48, 89, .04); display: flex; gap: .6rem; justify-content: flex-end; padding: .9rem 1.65rem; }.appointment-modal__footer .button { font-size: .76rem; min-height: 2.6rem; min-width: 6.7rem; padding-inline: 1.05rem; }.appointment-modal__footer .button--primary:disabled { background: #d9d2e5; box-shadow: none; color: #8f879c; cursor: not-allowed; }
.appointment-modal__save-state { color: #786f82; flex: 1; font-size: .68rem; line-height: 1.35; min-width: 0; }.appointment-modal__save-state span { display: block; max-width: 19rem; }

@media (max-width: 700px) {
  .appointment-modal-overlay { align-items: flex-end; padding: 0; }
  .appointment-modal { border-radius: 1.15rem 1.15rem 0 0; max-height: min(94dvh, 58rem); max-width: none; width: 100%; }
  .appointment-modal__header { padding: 1rem 1rem .9rem; }.appointment-modal__body { padding: 0 1rem 1rem; }
  .appointment-form-split, .appointment-date-time-fields, .appointment-recurrence-custom { grid-template-columns: 1fr; }
  .appointment-recurrence { max-width: none; }.appointment-modal__footer { border-radius: 0; flex-wrap: wrap; padding: .75rem 1rem; }.appointment-modal__footer .button { flex: 1; }.appointment-modal__save-state { flex-basis: 100%; }
}

/* Patient registration stays in context as a single, complete central form. */
.patient-modal-overlay { align-items: center; display: flex; inset: 0; justify-content: center; padding: 1.5rem; position: fixed; z-index: 70; }
.patient-modal-overlay__backdrop { background: rgba(38, 29, 53, .34); backdrop-filter: blur(3px); border: 0; cursor: default; inset: 0; position: absolute; width: 100%; }
.patient-modal { background: linear-gradient(145deg, #fff, #fcfbff); border: 1px solid rgba(100, 78, 137, .14); border-radius: 1.2rem; box-shadow: 0 28px 90px rgba(35, 25, 50, .28); display: grid; grid-template-rows: auto minmax(0, 1fr) auto; max-height: min(88dvh, 56rem); max-width: 56rem; overflow: hidden; position: relative; width: min(calc(100vw - 3rem), 56rem); }
.patient-modal__header { align-items: center; border-bottom: 1px solid rgba(101, 83, 128, .1); display: flex; justify-content: space-between; padding: 1.1rem 1.55rem; }
.patient-modal__header h2 { color: #2e2734; font-size: 1rem; font-weight: 760; letter-spacing: -.025em; margin: 0; }
.patient-modal__header .icon-close { align-items: center; background: #f7f4fb; border: 1px solid rgba(100, 78, 137, .09); border-radius: .65rem; color: #756d80; display: flex; font-size: 1.2rem; height: 2rem; justify-content: center; line-height: 1; width: 2rem; }
.patient-modal__body { align-content: start; display: grid; gap: 1.35rem; overflow-y: auto; padding: 1.35rem 1.55rem 1.5rem; }
.patient-modal__primary-fields { align-items: start; display: grid; gap: 1rem; grid-template-columns: minmax(16rem, .95fr) repeat(2, minmax(0, 1fr)); }
.patient-photo-field { display: grid; gap: .5rem; grid-column: 1; grid-row: span 2; }
.patient-photo-field > span, .patient-field > span, .patient-modal__additional-fields > header { color: #625a6b; font-size: .69rem; font-weight: 730; }
.patient-photo-field > span { align-items: baseline; display: flex; gap: .25rem; }
.patient-photo-field > span em { color: #9b93a4; font-size: .62rem; font-style: normal; font-weight: 550; }
.patient-photo-field__surface { align-items: center; border: 1px dashed rgba(99, 78, 130, .23); border-radius: .76rem; display: grid; gap: .75rem; grid-template-columns: 4.25rem minmax(0, 1fr); min-height: 6.1rem; padding: .7rem; }
.patient-photo-field__preview { align-items: center; background: linear-gradient(145deg, #f1eef9, #ddd8e9); border-radius: 50%; display: flex; height: 4.25rem; justify-content: center; overflow: hidden; width: 4.25rem; }
.patient-photo-field__preview img { height: 100%; object-fit: cover; width: 100%; }
.patient-photo-field__preview b { align-items: center; background: linear-gradient(145deg, #dacefb, #a98be5); border-radius: 50%; color: #4d337f; display: flex; font-size: 1rem; height: 100%; justify-content: center; width: 100%; }
.patient-photo-field__copy { display: grid; gap: .52rem; min-width: 0; }
.patient-photo-field__actions { align-items: center; display: flex; gap: .5rem; }
.patient-photo-field__copy > small { color: #777080; font-size: .62rem; line-height: 1.35; }
.patient-photo-field__choose { background: #eee4ff; border: 0; border-radius: .5rem; color: #7443df; flex: 1; font: inherit; font-size: .68rem; font-weight: 750; min-height: 2rem; padding: .42rem .55rem; }
.patient-photo-field__choose:hover { background: #e7d9ff; }
.patient-photo-field__error { color: #b7435d; font-size: .63rem; line-height: 1.35; }
.patient-text-button { background: transparent; border: 0; color: #6849c3; font-size: .67rem; font-weight: 700; padding: .25rem; }
.patient-modal__identity-fields { display: grid; gap: 1rem; grid-column: 2 / -1; }
.patient-field { display: grid; gap: .42rem; min-width: 0; }
.patient-field > span { align-items: baseline; display: flex; gap: .25rem; }
.patient-field em { color: #9b93a4; font-size: .62rem; font-style: normal; font-weight: 550; }
.patient-field em:not(:empty) { text-transform: none; }
.patient-field input, .patient-field select, .patient-field textarea { appearance: none; background: rgba(255, 255, 255, .9); border: 1px solid rgba(99, 78, 130, .16); border-radius: .68rem; box-sizing: border-box; color: #433a4b; font: inherit; font-size: .76rem; min-height: 2.6rem; outline: none; padding: .58rem .68rem; transition: border-color .15s ease, box-shadow .15s ease; width: 100%; }
.patient-field input:focus, .patient-field select:focus, .patient-field textarea:focus, .patient-phone-input:focus-within, .patient-tags-control:focus-within { border-color: #7655d7; box-shadow: 0 0 0 3px rgba(118, 85, 215, .1); }
.patient-field textarea { line-height: 1.45; min-height: 5.1rem; resize: vertical; }
.patient-field select { background-image: linear-gradient(45deg, transparent 50%, #7d7088 50%), linear-gradient(135deg, #7d7088 50%, transparent 50%); background-position: calc(100% - .88rem) 1.05rem, calc(100% - .64rem) 1.05rem; background-repeat: no-repeat; background-size: .25rem .25rem, .25rem .25rem; padding-right: 2rem; }
.patient-phone-input { align-items: center; background: rgba(255, 255, 255, .9); border: 1px solid rgba(99, 78, 130, .16); border-radius: .68rem; display: flex; min-height: 2.6rem; overflow: hidden; }
.patient-phone-input b { border-right: 1px solid rgba(99, 78, 130, .1); color: #5f556a; font-size: .69rem; font-weight: 690; padding: .66rem; white-space: nowrap; }
.patient-phone-input input { background: transparent; border: 0; border-radius: 0; min-height: auto; outline: 0; padding-left: .6rem; }
.patient-tags-control { background: rgba(255, 255, 255, .9); border: 1px solid rgba(99, 78, 130, .16); border-radius: .68rem; display: grid; gap: .5rem; min-height: 2.6rem; padding: .42rem; }
.patient-tags-control__chips { display: flex; flex-wrap: wrap; gap: .3rem; }
.patient-tags-control__chips > span { align-items: center; background: #f0eaff; border-radius: 99rem; color: #6543bb; display: inline-flex; font-size: .65rem; font-weight: 650; gap: .24rem; padding: .27rem .34rem .27rem .5rem; }
.patient-tags-control__chips button { align-items: center; background: rgba(255, 255, 255, .72); border: 0; border-radius: 50%; color: inherit; display: inline-flex; font: inherit; height: 1rem; justify-content: center; line-height: 1; padding: 0; width: 1rem; }
.patient-tags-control__entry { align-items: center; display: grid; gap: .35rem; grid-template-columns: minmax(0, 1fr) auto; }
.patient-tags-control__entry input { border: 0; min-height: 1.8rem; padding: .25rem; }
.patient-tags-control__entry input:focus { box-shadow: none; }
.patient-tags-control__entry button { background: transparent; border: 0; color: #7047d5; font: inherit; font-size: .65rem; font-weight: 720; padding: .35rem; white-space: nowrap; }
.patient-tags-control__entry button:disabled { color: #aaa2b3; }
.patient-active-toggle { align-items: center; cursor: pointer; display: grid; gap: .42rem .55rem; grid-column: 1 / -1; grid-template-columns: 2.1rem auto; justify-self: start; padding-top: .1rem; }
.patient-active-toggle input { opacity: 0; position: absolute; }
.patient-active-toggle > span { background: #c9c3d0; border-radius: 99rem; height: 1.25rem; position: relative; transition: background .15s ease; width: 2.1rem; }
.patient-active-toggle > span::after { background: #fff; border-radius: 50%; box-shadow: 0 1px 3px rgba(43, 28, 72, .28); content: ""; height: .9rem; left: .16rem; position: absolute; top: .17rem; transition: transform .15s ease; width: .9rem; }
.patient-active-toggle input:checked + span { background: #7351d7; }
.patient-active-toggle input:checked + span::after { transform: translateX(.88rem); }
.patient-active-toggle input:focus-visible + span { box-shadow: 0 0 0 3px rgba(118, 85, 215, .16); }
.patient-active-toggle b { color: #4a414f; font-size: .74rem; }
.patient-modal__additional-fields { border-top: 1px solid rgba(101, 83, 128, .1); display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); padding-top: 1.3rem; }
.patient-modal__additional-fields > header, .patient-field--wide { grid-column: 1 / -1; }
.patient-modal__additional-fields > header { color: #4b3c5a; font-size: .69rem; letter-spacing: .08em; text-transform: uppercase; }
.patient-modal__footer { align-items: center; background: rgba(255, 255, 255, .9); border-top: 1px solid rgba(101, 83, 128, .1); box-shadow: 0 -10px 25px rgba(67, 48, 89, .04); display: flex; gap: .6rem; justify-content: flex-end; padding: .9rem 1.55rem; }
.patient-modal__footer .button { font-size: .76rem; min-height: 2.55rem; min-width: 6.7rem; }

@media (max-width: 700px) {
  .patient-modal-overlay { align-items: flex-end; padding: 0; }
  .patient-modal { border-radius: 1.15rem 1.15rem 0 0; max-height: min(94dvh, 58rem); max-width: none; width: 100%; }
  .patient-modal__header, .patient-modal__footer { padding-inline: 1rem; }
  .patient-modal__body { padding: 1.05rem 1rem 1.25rem; }
  .patient-modal__primary-fields, .patient-modal__additional-fields { grid-template-columns: 1fr; }
  .patient-photo-field, .patient-modal__identity-fields, .patient-field, .patient-active-toggle, .patient-modal__additional-fields > header, .patient-field--wide { grid-column: 1 / -1; }
  .patient-photo-field { grid-row: auto; }
  .patient-photo-field__surface { grid-template-columns: 4rem minmax(0, 1fr); }
  .patient-photo-field__preview { height: 4rem; width: 4rem; }
  .patient-modal__footer .button { flex: 1; }
}

/* Agenda geometry is temporal. Professionals describe a card; they never create columns. */
.agenda-day-view__header { display: grid; grid-template-columns: 3.25rem minmax(0, 1fr); }
.agenda-day-view__header > span { align-self: center; color: #9993a1; font-size: .58rem; justify-self: end; padding-right: .48rem; }
.agenda-day-view__header > div { align-content: center; display: grid; gap: .08rem; min-height: 3.15rem; padding: .45rem .75rem; }.agenda-day-view__header strong { color: #3d3545; font-size: .72rem; }.agenda-day-view__header small { color: #938b9a; font-size: .6rem; }
.agenda-day-grid { grid-template-columns: 3.25rem minmax(0, 1fr); }.agenda-day-slots { min-height: 832px; position: relative; }.agenda-slot { background: transparent; border: 0; border-bottom: 1px solid rgba(85, 69, 104, .075); cursor: pointer; display: block; height: 64px; padding: 0; width: 100%; }.agenda-slot:hover { background: rgba(239, 234, 253, .27); }
.agenda-appointment-block { align-items: flex-start; border-left: 3px solid #8f77db; border-radius: .55rem; box-sizing: border-box; display: flex; gap: .4rem; justify-content: space-between; overflow: hidden; padding: .42rem .56rem; right: auto; z-index: 3; }.agenda-appointment-block:hover { filter: brightness(.98); z-index: 4; }
.agenda-appointment-block__copy { display: grid; gap: .07rem; min-width: 0; }.agenda-appointment-block__copy strong { color: #302a39; font-size: .73rem; font-weight: 740; line-height: 1.12; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.agenda-appointment-block__copy small { color: #5e5668; font-size: .62rem; font-weight: 610; line-height: 1.1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.agenda-appointment-block__copy em { color: #756a7d; font-size: .56rem; font-style: normal; line-height: 1.08; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.agenda-appointment-block__copy i { color: #5f5568; font-size: .53rem; font-style: normal; font-weight: 670; line-height: 1.06; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.agenda-appointment-block__time { color: #554d5d; flex: 0 0 auto; font-size: .57rem; font-weight: 670; }
.agenda-appointment-block.agenda-status--agendado, .agenda-week-card.agenda-status--agendado { background: linear-gradient(100deg, #f1eeff, #ebe5ff); border-left-color: #8c75dd; }.agenda-appointment-block.agenda-status--confirmado, .agenda-week-card.agenda-status--confirmado { background: linear-gradient(100deg, #effaf2, #e9f6ed); border-left-color: #5eaf7e; }.agenda-appointment-block.agenda-status--chegou, .agenda-week-card.agenda-status--chegou { background: linear-gradient(100deg, #fff7e8, #fff0d6); border-left-color: #d99c34; }.agenda-appointment-block.agenda-status--concluido, .agenda-week-card.agenda-status--concluido { background: linear-gradient(100deg, #f0f7f1, #ebf3ed); border-left-color: #85a98d; }.agenda-appointment-block.agenda-status--faltou, .agenda-week-card.agenda-status--faltou { background: linear-gradient(100deg, #fff0f0, #fbe6e7); border-left-color: #d76d73; }.agenda-appointment-block.agenda-status--cancelado, .agenda-week-card.agenda-status--cancelado { background: #f3f1f4; border-left-color: #9b95a0; }
.agenda-week-column__body { display: block; height: var(--agenda-week-timeline-height); min-height: var(--agenda-week-timeline-height); padding: 0; position: relative; }.agenda-week-gridline { background: transparent; border: 0; border-bottom: 1px solid rgba(85, 69, 104, .07); display: block; height: 56px; padding: 0; width: 100%; }.agenda-week-gridline:hover { background: rgba(239, 234, 253, .27); }
.agenda-week-card { border-left: 3px solid #8f77db; box-sizing: border-box; display: grid; gap: .07rem; overflow: hidden; padding: .28rem .32rem; position: absolute; right: auto; z-index: 3; }.agenda-week-card:hover { filter: brightness(.98); z-index: 4; }.agenda-week-card strong { color: #312a39; font-size: .66rem; font-weight: 740; line-height: 1.1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.agenda-week-card span { color: #5e5667; font-size: .57rem; font-weight: 620; line-height: 1.08; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.agenda-week-card em { color: #746a7a; font-size: .51rem; font-style: normal; line-height: 1.06; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.agenda-week-card small { color: #554d5d; font-size: .52rem; font-weight: 650; line-height: 1.05; }
.agenda-filter-popover { gap: .7rem; width: 16rem; }.agenda-filter-popover label { display: grid; gap: .28rem; }.agenda-filter-popover label > span { color: #665d6f; font-size: .67rem; font-weight: 700; }.agenda-filter-popover select { appearance: auto; background: #fff; border: 1px solid #e4dfea; border-radius: .58rem; color: #494250; font: inherit; font-size: .72rem; min-height: 2.25rem; padding: .35rem .48rem; width: 100%; }.agenda-filter-popover footer { align-items: center; display: flex; justify-content: space-between; padding-top: .12rem; }.agenda-filter-popover footer .button { font-size: .69rem; min-height: 2.1rem; padding-inline: .72rem; }.agenda-filter-popover__clear { justify-self: auto; }

@media (max-width: 720px) {
  .agenda-day-view__header, .agenda-day-grid { grid-template-columns: 2.72rem minmax(0, 1fr); }.agenda-day-view__header > div { min-height: 2.85rem; padding-inline: .55rem; }.agenda-day-view__header small { display: none; }.agenda-time-axis span { padding-right: .4rem; }.agenda-appointment-block { padding: .3rem .38rem; }.agenda-appointment-block__copy em, .agenda-appointment-block__copy i { display: none; }.agenda-appointment-block__copy strong { font-size: .66rem; }.agenda-appointment-block__copy small, .agenda-appointment-block__time { font-size: .54rem; }.agenda-week-card em { display: none; }
  .agenda-filter-button { display: inline-flex; }
}

/* Agenda refinement: the month owns the available canvas. */
.agenda-experience--month { max-width: none; }
.agenda-main,
.agenda-experience--month .agenda-main { display: grid; grid-template-columns: minmax(0, 1fr); width: 100%; }
.agenda-experience--month .agenda-primary-view,
.agenda-experience--month .agenda-month-view { width: 100%; }
.agenda-experience--month .agenda-month-cell { align-content: start; }
.agenda-experience--month .agenda-month-entry { border-left-style: solid; border-left-width: 3px; }
.agenda-experience--month .agenda-month-cell__more[aria-expanded="true"] { margin-top: .08rem; }
.agenda-week-card { align-content: start; gap: .08rem; grid-auto-rows: min-content; padding: .24rem .32rem; }
.agenda-week-card strong { line-height: 1.12; }
.agenda-week-card span { line-height: 1.08; }
.agenda-week-card small { line-height: 1.05; }

/* Appointment colors are semantic: the same status has the same tone in Day, Week and Month. */
.agenda-status--agendado { background: #eee9ff; color: #6549bd; }
.agenda-status--confirmado { background: #e5f5eb; color: #287b4c; }
.agenda-status--chegou { background: #fff0d6; color: #9a620f; }
.agenda-status--cancelado { background: #f1eff3; color: #716a77; }
.agenda-status--faltou { background: #fbe6e7; color: #a84350; }
.agenda-status--concluido { background: #e7f4ea; color: #38754b; }

.agenda-appointment-block.agenda-status--agendado,
.agenda-week-card.agenda-status--agendado,
.agenda-month-entry.agenda-status--agendado { background: #eee9ff; border-left-color: #8c75dd; }
.agenda-appointment-block.agenda-status--confirmado,
.agenda-week-card.agenda-status--confirmado,
.agenda-month-entry.agenda-status--confirmado { background: #e5f5eb; border-left-color: #5eaf7e; }
.agenda-appointment-block.agenda-status--chegou,
.agenda-week-card.agenda-status--chegou,
.agenda-month-entry.agenda-status--chegou { background: #fff0d6; border-left-color: #d99c34; }
.agenda-appointment-block.agenda-status--cancelado,
.agenda-week-card.agenda-status--cancelado,
.agenda-month-entry.agenda-status--cancelado { background: #f1eff3; border-left-color: #9b95a0; }
.agenda-appointment-block.agenda-status--faltou,
.agenda-week-card.agenda-status--faltou,
.agenda-month-entry.agenda-status--faltou { background: #fbe6e7; border-left-color: #d76d73; }
.agenda-appointment-block.agenda-status--concluido,
.agenda-week-card.agenda-status--concluido,
.agenda-month-entry.agenda-status--concluido { background: #e7f4ea; border-left-color: #75a580; }

/* Hover summary and click-through details remain lightweight and independent from persistence. */
.agenda-event-hover-card { background: rgba(255, 255, 255, .98); border: 1px solid #e5e0eb; border-radius: .9rem; box-shadow: 0 18px 46px rgba(45, 33, 64, .2); display: grid; gap: .9rem; padding: 1rem; position: fixed; width: 20rem; z-index: 45; }
.agenda-event-hover-card footer { display: grid; gap: .55rem; grid-template-columns: 1fr 1fr; }
.agenda-event-hover-card footer button { background: #f3f1f5; border: 0; border-radius: .55rem; color: #554d5d; font: inherit; font-size: .7rem; font-weight: 700; min-height: 2.35rem; }
.agenda-event-hover-card footer .button--primary { background: linear-gradient(135deg, #7655e3, #5d3cc5); color: #fff; }

/* Client profile — the patient remains the stable center while contextual views change. */
.clients-experience--detail { gap: 0; }
.client-profile-experience { display: grid; gap: .72rem; min-width: 0; }
.client-profile-topbar { align-items: center; display: flex; justify-content: space-between; min-height: 2.65rem; }
.client-profile-new-appointment { align-items: center; background: #f0e9ff; border: 0; border-radius: .65rem; color: #7043d7; display: inline-flex; font-size: .72rem; font-weight: 680; gap: .38rem; min-height: 2.48rem; padding: .55rem .88rem; }
.client-profile-new-appointment:hover { background: #e9dfff; }
.client-profile-new-appointment span { font-size: 1.18rem; font-weight: 400; line-height: .7; }
.client-profile-layout { align-items: stretch; display: grid; gap: .52rem; grid-template-columns: 16.8rem minmax(0,1fr); min-width: 0; }
.client-profile-sidebar, .client-main-information, .client-content-panel, .client-summary-card { background: rgba(255,255,255,.8); border: 1px solid rgba(82,66,120,.13); box-shadow: 0 8px 26px rgba(62,48,92,.035); }
.client-profile-sidebar { border-radius: .7rem; display: flex; flex-direction: column; min-height: calc(100dvh - 7.8rem); padding: .82rem .76rem .88rem; position: sticky; top: .7rem; }
.client-profile-back { align-items: center; align-self: start; background: transparent; border: 0; color: #7044dc; display: inline-flex; font-size: .7rem; font-weight: 590; gap: .42rem; min-height: 2rem; padding: .25rem .22rem; }
.client-profile-back svg { height: .95rem; width: .95rem; }
.client-profile-identity { align-items: center; display: flex; flex-direction: column; padding: .88rem .28rem .76rem; text-align: center; }
.client-profile-avatar-wrap { align-items: center; display: flex; flex-direction: column; margin-bottom: .72rem; }
.client-profile-avatar { background: linear-gradient(145deg,#ece7fb,#cfc4ea); border: 3px solid #fff; border-radius: 50%; box-shadow: 0 0 0 1px rgba(68,54,97,.14), 0 9px 22px rgba(49,37,79,.13); color: #563f8a; height: 6.85rem; position: relative; width: 6.85rem; }
.client-profile-avatar > img { border-radius: 50%; object-fit: cover; }
.client-profile-avatar > span { align-items: center; display: flex; font-size: 1.35rem; font-weight: 720; height: 100%; justify-content: center; width: 100%; }
.client-profile-avatar > i { background: #a9a4ae; border: 3px solid white; border-radius: 50%; bottom: .16rem; height: .82rem; position: absolute; right: .22rem; width: .82rem; z-index: 2; }
.client-profile-avatar > i.is-active { background: #1cbb64; }
.client-profile-avatar__camera { appearance: none; background: transparent; border: 0; color: #7044dc; cursor: pointer; font-size: .68rem; font-weight: 680; line-height: 1.2; margin-top: .42rem; padding: .15rem .3rem; }
.client-profile-avatar__camera:hover { color: #5930c5; text-decoration: underline; }
.client-profile-avatar__camera:focus-visible { outline: 2px solid #7b43e9; outline-offset: 2px; }
.client-profile-identity h1 { color: #181522; font-size: 1.16rem; font-weight: 760; letter-spacing: -.035em; line-height: 1.05; margin: 0 0 .55rem; }
.client-profile-identity > div { display: flex; gap: .34rem; justify-content: center; }
.client-profile-badge { align-items: center; border-radius: 999px; display: inline-flex; font-size: .59rem; font-weight: 670; gap: .22rem; min-height: 1.3rem; padding: .2rem .43rem; }
.client-profile-badge svg { height: .72rem; width: .72rem; }
.client-profile-badge.is-client { background: #eef4ff; color: #4264dd; }
.client-profile-badge.is-active { background: #e9f9ee; color: #169447; }
.client-profile-badge.is-inactive { background: #f2eff5; color: #716b78; }
.client-profile-quick-info { display: grid; gap: .28rem; padding: .05rem .1rem .78rem; }
.client-profile-quick-info p { align-items: center; color: #5f5a7d; display: grid; font-size: .67rem; gap: .42rem; grid-template-columns: 1rem minmax(0,1fr) auto; margin: 0; min-height: 2.16rem; padding: .24rem .38rem; }
.client-profile-quick-info p:first-child { background: #faf9fe; border-radius: .48rem; grid-template-columns: minmax(0,1fr) auto; }
.client-profile-quick-info p:first-child span { align-items: center; display: inline-flex; gap: .34rem; white-space: nowrap; }
.client-profile-quick-info svg { color: #7653d9; height: .95rem; width: .95rem; }
.client-profile-quick-info p > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.client-profile-quick-info i { color: #09a84e; display: inline-flex; }
.client-profile-actions { display: grid; gap: .38rem; grid-template-columns: minmax(0,1fr) 2.28rem; padding: 0 .02rem .78rem; }
.client-profile-whatsapp { align-items: center; background: #e8faec; border: 0; border-radius: .48rem; color: #0a9c43; display: inline-flex; font-size: .7rem; font-weight: 660; gap: .46rem; justify-content: center; min-height: 2.35rem; }
.client-profile-whatsapp:hover { background: #ddf7e4; }
.client-profile-whatsapp svg { height: 1rem; width: 1rem; }
.client-profile-actions-menu { position: relative; }
.client-profile-more { align-items: center; background: #fff; border: 1px solid rgba(78,67,104,.13); border-radius: .48rem; color: #4c486b; display: flex; height: 2.35rem; justify-content: center; width: 2.28rem; }
.client-profile-more svg { height: 1rem; width: 1rem; }
.client-profile-action-popover { background: white; border: 1px solid #e5e0ed; border-radius: .65rem; box-shadow: 0 14px 30px rgba(49,39,75,.16); display: grid; padding: .32rem; position: absolute; right: 0; top: calc(100% + .38rem); width: 10.8rem; z-index: 8; }
.client-profile-action-popover button { align-items: center; background: transparent; border: 0; border-radius: .44rem; color: #4e4758; display: grid; font-size: .68rem; gap: .48rem; grid-template-columns: 1rem minmax(0,1fr); min-height: 2.05rem; padding: .42rem .48rem; text-align: left; }
.client-profile-action-popover button:hover { background: #f7f4fb; }
.client-profile-action-popover button.is-danger { border-top: 1px solid #f0ebf1; color: #e1355d; }
.client-profile-action-popover svg { height: .92rem; width: .92rem; }
.client-profile-nav { display: grid; gap: .1rem; }
.client-profile-nav button { align-items: center; background: transparent; border: 0; border-radius: .47rem; color: #4f4a70; display: grid; font-size: .69rem; font-weight: 540; gap: .52rem; grid-template-columns: 1.05rem minmax(0,1fr); min-height: 2.34rem; padding: .38rem .55rem; text-align: left; }
.client-profile-nav button:hover { background: #f8f5fd; }
.client-profile-nav button.is-active { background: linear-gradient(90deg,#eee8ff,#f6f2ff); color: #7041dd; font-weight: 660; }
.client-profile-nav svg { height: 1rem; width: 1rem; }
.client-profile-delete { color: #ed315b !important; margin-top: .12rem; }
.client-profile-delete:disabled { color: #9a949f; cursor: default; }
.client-profile-delete svg { height: 1rem; width: 1rem; }
.client-profile-main { display: flex; flex-direction: column; gap: .62rem; min-width: 0; }
.client-main-information { border-radius: .7rem; overflow: hidden; }
.client-main-information > header { align-items: center; border-bottom: 1px solid rgba(83,69,117,.1); display: flex; justify-content: space-between; min-height: 3.45rem; padding: .62rem 1rem; }
.client-main-information > header h2, .client-content-panel__header h2 { color: #221e2a; font-size: .91rem; font-weight: 760; letter-spacing: -.02em; margin: 0; }
.client-main-information > header button { align-items: center; background: #f1eaff; border: 0; border-radius: .48rem; color: #7646df; display: inline-flex; font-size: .67rem; font-weight: 640; gap: .4rem; min-height: 2rem; padding: .35rem .7rem; }
.client-main-information > header button svg { height: .9rem; width: .9rem; }
.client-info-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); padding: .72rem 1rem .82rem; }
.client-info-grid > div { display: grid; gap: .48rem; padding: 0 .92rem; }
.client-info-grid > div:first-child { padding-left: 0; }
.client-info-grid > div + div { border-left: 1px solid rgba(83,69,117,.1); }
.client-info-item { align-items: start; display: grid; gap: .56rem; grid-template-columns: 2rem minmax(0,1fr); min-height: 3.52rem; }
.client-info-item__icon { align-items: center; background: #f1ebff; border-radius: 50%; color: #7547e0; display: flex; height: 2rem; justify-content: center; width: 2rem; }
.client-info-item__icon svg { height: 1rem; width: 1rem; }
.client-info-item p { display: grid; gap: .2rem; margin: .18rem 0 0; min-width: 0; }
.client-info-item p strong { color: #25203d; font-size: .62rem; font-weight: 720; }
.client-info-item p > span { color: #585477; font-size: .67rem; line-height: 1.38; overflow-wrap: anywhere; }
.client-info-item p > span.is-empty { color: #9c96a8; font-style: italic; }
.client-info-item p small { color: #766f8a; font-size: .61rem; }
.client-info-whatsapp { color: #08a84d; display: inline-flex; margin-left: .2rem; vertical-align: middle; }
.client-info-whatsapp svg { height: .83rem; width: .83rem; }
.client-summary-grid { display: grid; gap: .46rem; grid-template-columns: repeat(3,minmax(0,1fr)); }
.client-summary-card { align-items: center; border-radius: .62rem; color: inherit; display: grid; gap: .65rem; grid-template-columns: 3.05rem minmax(0,1fr) auto; min-height: 5.72rem; padding: .78rem .78rem; text-align: left; }
button.client-summary-card { cursor: pointer; font: inherit; width: 100%; }
button.client-summary-card:hover { border-color: rgba(107,79,199,.27); box-shadow: 0 9px 24px rgba(68,50,112,.07); }
.client-summary-card__icon { align-items: center; background: #f0ecff; border-radius: .66rem; color: #7448df; display: flex; height: 3.05rem; justify-content: center; width: 3.05rem; }
.client-summary-card__icon.is-blue { background: #eaf5ff; color: #2384e7; }
.client-summary-card__icon.is-rose { background: #fff0f8; color: #ed4a9b; }
.client-summary-card__icon.is-violet { background: #f4edff; color: #834bf1; }
.client-summary-card__icon svg { height: 1.46rem; width: 1.46rem; }
.client-summary-card > div { display: grid; gap: .22rem; min-width: 0; }
.client-summary-card small { color: #585371; font-size: .59rem; }
.client-summary-card strong { color: #211c35; font-size: .78rem; font-weight: 760; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.client-summary-card strong.is-empty { color: #57516a; font-size: .68rem; }
.client-summary-card > div > span { color: #747088; font-size: .61rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.client-summary-card__arrow { color: #635a79; display: inline-flex; }
.client-summary-card__arrow svg { height: .9rem; width: .9rem; }
.client-summary-loading { animation: client-profile-pulse 1.2s ease-in-out infinite; background: #eeeaf3; border-radius: .3rem; height: 1.15rem; width: 85%; }
.client-profile-context-error { align-items: center; background: #fff8f9; border: 1px solid #f3dce2; border-radius: .58rem; color: #9b3f56; display: flex; font-size: .66rem; justify-content: space-between; padding: .55rem .7rem; }
.client-profile-context-error button { background: transparent; border: 0; color: #7c3548; font-size: .64rem; font-weight: 720; }
.client-content-panel { border-radius: .7rem; min-height: 20rem; overflow: hidden; }
.client-content-panel__header { align-items: center; border-bottom: 1px solid rgba(83,69,117,.1); display: flex; justify-content: space-between; min-height: 4.15rem; padding: .72rem 1rem; }
.client-content-panel__header > div { display: grid; gap: .24rem; }
.client-content-panel__header p { color: #88829a; font-size: .62rem; margin: 0; }
.client-timeline-filter select { appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='m1 1 4 4 4-4' fill='none' stroke='%235c5571' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right .65rem center; border: 1px solid #ded9e8; border-radius: .44rem; color: #554f69; font: inherit; font-size: .62rem; min-height: 2rem; min-width: 9.5rem; padding: .35rem 1.8rem .35rem .65rem; }
.client-timeline-list { padding: .18rem 1rem .55rem; }
.client-timeline-item { align-items: center; background: transparent; border: 0; border-bottom: 1px solid rgba(83,69,117,.1); color: inherit; display: grid; gap: .72rem; grid-template-columns: 2.15rem 6.9rem minmax(0,1fr) auto 1rem; min-height: 3.95rem; padding: .58rem 0; text-align: left; width: 100%; }
.client-timeline-item:last-child { border-bottom: 0; }
.client-timeline-item:hover { background: linear-gradient(90deg,transparent,#fcfaff,transparent); }
.client-timeline-item__icon { align-items: center; background: #eee9ff; border-radius: 50%; color: #7445e0; display: flex; height: 2.15rem; justify-content: center; width: 2.15rem; }
.client-timeline-item__icon.is-completed, .client-timeline-item__status.is-completed { background: #e7f7eb; color: #25844a; }
.client-timeline-item__icon.is-agenda, .client-timeline-item__status.is-agenda { background: #ecf6ff; color: #2479c8; }
.client-timeline-item__icon.is-cancelled, .client-timeline-item__status.is-cancelled { background: #fff0f2; color: #ba455d; }
.client-timeline-item__icon.is-finance, .client-timeline-item__status.is-finance { background: #fff6df; color: #a66b12; }
.client-timeline-item__icon.is-package, .client-timeline-item__status.is-package { background: #f0eaff; color: #7645c7; }
.client-timeline-item__icon.is-quote, .client-timeline-item__status.is-quote { background: #f1ecff; color: #7951cc; }
.client-timeline-item__icon.is-record, .client-timeline-item__status.is-record { background: #f1ebff; color: #7651c4; }
.client-timeline-item__icon.is-whatsapp, .client-timeline-item__status.is-whatsapp { background: #e8faed; color: #0b9d4a; }
.client-timeline-item__icon.is-client, .client-timeline-item__status.is-client { background: #f0efff; color: #6555aa; }
.client-timeline-item__icon svg { height: 1rem; width: 1rem; }
.client-timeline-item time { color: #686382; font-size: .61rem; white-space: nowrap; }
.client-timeline-item > div { display: grid; gap: .17rem; min-width: 0; }
.client-timeline-item > div strong { color: #26213b; font-size: .65rem; font-weight: 730; }
.client-timeline-item > div p { color: #777189; font-size: .61rem; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.client-timeline-item > div p span { padding: 0 .2rem; }
.client-timeline-item__status { border-radius: 999px; font-size: .58rem; font-weight: 650; min-width: 4.6rem; padding: .31rem .55rem; text-align: center; }
.client-timeline-item__status.is-concluido, .client-timeline-item__status.is-confirmado { background: #e8f9ed; color: #148f43; }
.client-timeline-item__status.is-agendado { background: #ecf6ff; color: #2479c8; }
.client-timeline-item__status.is-cancelado, .client-timeline-item__status.is-faltou { background: #fff0f2; color: #ba455d; }
.client-timeline-item__status.is-chegou { background: #fff7e8; color: #9b6b18; }
.client-timeline-item__chevron { color: #8c849c; display: inline-flex; }
.client-timeline-item__chevron svg { height: .84rem; width: .84rem; }
.client-timeline-skeleton { display: grid; gap: .56rem; padding: 1rem; }
.client-timeline-skeleton i { animation: client-profile-pulse 1.2s ease-in-out infinite; background: linear-gradient(90deg,#f5f3f7,#eeeaf4,#f5f3f7); border-radius: .45rem; height: 3rem; }
.client-timeline-footer { border-top: 1px solid rgba(83,69,117,.1); padding: .55rem 1rem .7rem; text-align: right; }
.client-timeline-footer button { align-items: center; background: transparent; border: 0; color: #7044dc; display: inline-flex; font-size: .7rem; font-weight: 700; gap: .3rem; min-height: 2rem; padding: .3rem .45rem; }
.client-timeline-footer button:disabled { cursor: wait; opacity: .55; }
.client-timeline-footer svg { height: .8rem; width: .8rem; }
.client-financial-total { background: #fbf9ff; border-bottom: 1px solid rgba(83,69,117,.1); display: flex; flex-wrap: wrap; gap: .3rem .7rem; padding: 1rem; }
.client-financial-total span { color: #665e78; font-size: .68rem; width: 100%; }
.client-financial-total strong { color: #241d38; font-size: 1.15rem; }
.client-financial-total small { align-self: end; color: #797189; font-size: .62rem; }
.client-financial-list { padding: .2rem 1rem; }
.client-financial-row { align-items: center; border-bottom: 1px solid rgba(83,69,117,.1); display: grid; gap: .65rem; grid-template-columns: minmax(0,1fr) auto 5.4rem; padding: .8rem 0; }
.client-financial-row:last-child { border-bottom: 0; }
.client-financial-row > div { display: grid; gap: .2rem; min-width: 0; }
.client-financial-row > div strong { color: #292139; font-size: .69rem; }
.client-financial-row > div span, .client-financial-row > div small { color: #7a7387; font-size: .62rem; }
.client-financial-row > strong { color: #292139; font-size: .72rem; }
.client-financial-row > span { border-radius: 999px; font-size: .6rem; font-weight: 700; padding: .35rem .5rem; text-align: center; }
.client-financial-row > span.is-active { background: #e8f9ed; color: #148f43; }
.client-financial-row > span.is-reversed { background: #fff0f2; color: #ba455d; }
.client-profile-empty-state { align-items: center; display: flex; flex-direction: column; justify-content: center; min-height: 15rem; padding: 2rem; text-align: center; }
.client-profile-empty-state > span { align-items: center; background: #f1ebff; border-radius: 50%; color: #7448dc; display: flex; height: 3.4rem; justify-content: center; margin-bottom: .72rem; width: 3.4rem; }
.client-profile-empty-state > span svg { height: 1.5rem; width: 1.5rem; }
.client-profile-empty-state strong { color: #383143; font-size: .8rem; }
.client-profile-empty-state p { color: #87808e; font-size: .68rem; line-height: 1.5; margin: .35rem 0 0; max-width: 24rem; }
.client-profile-route-loading, .client-profile-route-error { align-items: center; color: #716b7c; display: flex; flex-direction: column; gap: .7rem; justify-content: center; min-height: 28rem; text-align: center; }
.client-profile-route-loading i { animation: client-profile-pulse 1s ease-in-out infinite; border: 2px solid #e4dff0; border-radius: 50%; border-top-color: #7052cf; height: 2rem; width: 2rem; }
.client-profile-route-loading span, .client-profile-route-error p { font-size: .76rem; }
.client-archive-overlay { align-items: center; display: flex; inset: 0; justify-content: center; padding: 1rem; position: fixed; z-index: 80; }
.client-archive-overlay__backdrop { backdrop-filter: blur(3px); background: rgba(38,29,53,.34); border: 0; inset: 0; position: absolute; width: 100%; }
.client-archive-dialog { align-items: center; background: #fff; border: 1px solid rgba(105,75,112,.14); border-radius: 1rem; box-shadow: 0 28px 80px rgba(35,25,50,.25); display: flex; flex-direction: column; max-width: 25rem; padding: 1.35rem; position: relative; text-align: center; width: 100%; }
.client-archive-dialog__icon { align-items: center; background: #fff0f3; border-radius: 50%; color: #df365b; display: flex; height: 3rem; justify-content: center; width: 3rem; }
.client-archive-dialog__icon svg { height: 1.35rem; width: 1.35rem; }
.client-archive-dialog h2 { color: #302735; font-size: 1.05rem; margin: .72rem 0 .3rem; }
.client-archive-dialog > p { color: #77707e; font-size: .75rem; line-height: 1.5; margin: 0; }
.client-archive-dialog__error { color: #b33d57 !important; margin-top: .55rem !important; }
.client-archive-dialog footer { display: flex; gap: .55rem; justify-content: center; margin-top: 1rem; width: 100%; }
.client-archive-dialog footer .button { border-radius: .62rem; font-size: .72rem; min-height: 2.4rem; }
.client-archive-dialog__confirm { background: #df365b; color: #fff; }
@keyframes client-profile-pulse { 0%,100% { opacity: .55; } 50% { opacity: 1; } }

@media (max-width: 1180px) and (min-width: 721px) {
  .client-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 1180px) and (min-width: 721px) {
  .client-profile-layout { grid-template-columns: 15rem minmax(0,1fr); }
  .client-info-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .client-info-grid > div:last-child { border-left: 0; border-top: 1px solid rgba(83,69,117,.1); grid-column: 1 / -1; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: .4rem; padding: .72rem 0 0; }
}

@media (max-width: 1380px) and (min-width: 1181px) {
  .client-summary-card { gap: .45rem; grid-template-columns: 2.35rem minmax(0,1fr) auto; padding-inline: .62rem; }
  .client-summary-card__icon { height: 2.35rem; width: 2.35rem; }
  .client-summary-card__icon svg { height: 1.2rem; width: 1.2rem; }
  .client-summary-card strong, .client-summary-card > div > span { line-height: 1.15; white-space: normal; }
}

@media (max-width: 720px) {
  .client-profile-experience { gap: .62rem; }
  .client-profile-new-appointment { font-size: 0; grid-column: auto; padding-inline: .65rem; }
  .client-profile-new-appointment span { font-size: 1.2rem; }
  .client-profile-layout { display: block; }
  .client-profile-sidebar { min-height: 0; padding: .7rem; position: static; }
  .client-profile-identity { padding-top: .35rem; }
  .client-profile-avatar { height: 5.7rem; width: 5.7rem; }
  .client-profile-quick-info, .client-profile-actions { margin-inline: auto; max-width: 24rem; width: 100%; }
  .client-profile-nav { display: flex; margin-top: .2rem; overflow-x: auto; padding-bottom: .2rem; }
  .client-profile-nav button { flex: 0 0 auto; grid-template-columns: 1rem auto; padding-inline: .65rem; }
  .client-profile-delete { margin-top: 0; }
  .client-profile-main { margin-top: .62rem; }
  .client-financial-row { grid-template-columns: minmax(0,1fr) auto; }
  .client-financial-row > span { grid-column: 2; }
  .client-info-grid { grid-template-columns: 1fr; padding-inline: .8rem; }
  .client-info-grid > div { padding: 0; }
  .client-info-grid > div + div { border-left: 0; border-top: 1px solid rgba(83,69,117,.1); padding-top: .6rem; }
  .client-summary-grid { grid-template-columns: 1fr 1fr; }
  .client-summary-card { grid-template-columns: 2.35rem minmax(0,1fr); min-height: 4.9rem; padding: .55rem; }
  .client-summary-card__icon { height: 2.35rem; width: 2.35rem; }
  .client-summary-card__arrow { display: none; }
  .client-content-panel__header { align-items: flex-start; gap: .7rem; }
  .client-timeline-item { gap: .45rem; grid-template-columns: 2rem minmax(0,1fr) auto; }
  .client-timeline-item time { grid-column: 2; grid-row: 1; }
  .client-timeline-item > div { grid-column: 2 / -1; grid-row: 2; }
  .client-timeline-item__icon { grid-row: 1 / span 2; }
  .client-timeline-item__status { grid-column: 3; grid-row: 1; min-width: 0; }
  .client-timeline-item__chevron { display: none; }
  .client-archive-overlay { align-items: flex-end; padding: 0; }
  .client-archive-dialog { border-radius: 1rem 1rem 0 0; max-width: none; }
}
.agenda-event-summary { display: grid; gap: .72rem; }
.agenda-event-summary__type,
.agenda-event-summary__row { align-items: center; display: grid; gap: .65rem; grid-template-columns: 1.35rem minmax(0, 1fr); }
.agenda-event-summary__type > i { border-radius: .32rem; height: .92rem; justify-self: center; width: .92rem; }
.agenda-event-summary__type > span { display: grid; gap: .16rem; }
.agenda-event-summary strong { color: #332d3c; font-size: .72rem; font-weight: 710; line-height: 1.25; }
.agenda-event-summary__type strong { font-size: .82rem; }
.agenda-event-summary small { color: #6f6877; font-size: .63rem; }
.agenda-event-summary__avatar { align-items: center; background: #e9e3f8; border-radius: 50%; color: #604aa7; display: inline-flex; font-size: .5rem; font-style: normal; font-weight: 760; height: 1.35rem; justify-content: center; width: 1.35rem; }
.agenda-event-summary__avatar--client { background: #eef6d3; color: #6a7d20; }
.agenda-event-summary__status { border-radius: 50%; height: .68rem; justify-self: center; position: relative; width: .68rem; }
.agenda-event-summary__status::after { background: #fff; border-radius: 50%; content: ""; height: .28rem; left: .2rem; position: absolute; top: .2rem; width: .28rem; }
.agenda-event-summary__procedure { color: #6d58b5; font-size: .9rem; font-style: normal; text-align: center; }

.agenda-event-drawer-layer { inset: 0; position: fixed; z-index: 55; }
.agenda-event-drawer__backdrop { background: rgba(35, 29, 43, .45); border: 0; inset: 0; position: absolute; width: 100%; }
.agenda-event-drawer { background: #fff; box-shadow: -18px 0 48px rgba(31, 24, 42, .2); display: grid; grid-template-rows: auto minmax(0, 1fr); height: 100%; max-width: 25rem; position: absolute; right: 0; top: 0; width: min(100%, 25rem); }
.agenda-event-drawer > header { align-items: center; border-bottom: 1px solid #ebe7ef; display: flex; justify-content: space-between; min-height: 3.8rem; padding: .9rem 1rem; }
.agenda-event-drawer > header h2 { color: #302a39; font-size: .9rem; margin: 0; }
.agenda-event-drawer > header button { background: transparent; border: 0; color: #766f7d; font-size: 1.15rem; height: 2rem; width: 2rem; }
.agenda-event-drawer__body { align-content: start; display: grid; gap: 1.2rem; overflow-y: auto; padding: 1.3rem 1rem; }
.agenda-event-drawer__actions { border-top: 1px solid #ebe7ef; display: grid; grid-template-columns: repeat(3, 1fr); padding-top: .8rem; }
.agenda-event-drawer__actions button { align-items: center; background: transparent; border: 0; color: #5e5668; display: flex; font: inherit; font-size: .68rem; gap: .38rem; justify-content: center; min-height: 2.5rem; }
.agenda-event-drawer__actions button:hover { background: #f7f4fb; border-radius: .55rem; color: #5f3fc2; }
.agenda-event-drawer__actions button.is-danger:hover { background: #fff2f3; color: #b44856; }
.agenda-block-create { font-size: .75rem; min-height: 2.45rem; padding-inline: .7rem; }
.agenda-block-card, .agenda-week-block { align-content: start; background: repeating-linear-gradient(135deg, #efedf4, #efedf4 7px, #e5e1eb 7px, #e5e1eb 10px); border: 1px dashed #968ca3; border-radius: .55rem; color: #4d4654; display: grid; gap: .08rem; overflow: hidden; padding: .38rem .48rem; position: absolute; text-align: left; z-index: 2; }
.agenda-block-card strong, .agenda-week-block strong { font-size: .68rem; }.agenda-block-card small, .agenda-week-block small { font-size: .56rem; }.agenda-block-card span { font-size: .55rem; font-weight: 650; }
.agenda-week-block { left: .18rem; padding: .24rem .28rem; }.agenda-month-block { background: #efedf4; border: 1px dashed #a198ad; border-radius: .38rem; color: #5a5262; font-size: .62rem; font-weight: 700; margin-bottom: .26rem; min-height: 1.48rem; overflow: hidden; padding: .18rem .28rem; text-align: left; text-overflow: ellipsis; white-space: nowrap; width: 100%; }
.agenda-block-scope { display: flex; gap: 1rem; margin-bottom: .9rem; }.agenda-block-scope label { color: #514a5a; font-size: .78rem; font-weight: 650; }.agenda-block-scope input { accent-color: #6948d1; margin-right: .35rem; }.agenda-block-conflicts { background: #fff7ed; border: 1px solid #f1d2a6; border-radius: .7rem; color: #734415; display: grid; gap: .35rem; padding: .75rem; }.agenda-block-conflicts strong { font-size: .78rem; }.agenda-block-conflicts > span, .agenda-block-conflicts small { font-size: .68rem; }.agenda-block-conflicts p { display: grid; gap: .08rem; margin: .15rem 0; }.agenda-block-detail { display: grid; gap: .45rem; }.agenda-block-detail strong { color: #37303e; font-size: .95rem; }.agenda-block-detail span, .agenda-block-detail p { color: #706878; font-size: .75rem; margin: 0; }
.agenda-event-drawer__actions span { font-size: .85rem; }
.agenda-block-removal { max-width: 30rem; }
.agenda-block-removal h2 { font-size: 1.25rem; margin: 0 0 .5rem; }
.agenda-block-removal .appointment-modal__header p { color: #746e82; font-size: .875rem; font-weight: 400; line-height: 1.5; }
.agenda-block-removal__submit { background: #b94b59; border-color: #b94b59; color: #fff; }
.agenda-block-removal__submit:hover { background: #a13c49; }
.agenda-series-scope { max-width: 34rem; }
.agenda-series-scope__choice { align-items: flex-start; border-bottom: 1px solid #eeeaf1; cursor: pointer; display: flex; gap: .75rem; padding: .8rem 0; }
.agenda-series-scope__choice:last-of-type { border-bottom: 0; }
.agenda-series-scope__choice input { accent-color: #6f5ac7; margin-top: .25rem; }
.agenda-series-scope__choice span { display: grid; gap: .15rem; }
.agenda-series-scope__choice small { color: #736e7f; }
.agenda-series-scope__danger { background: #b94b59; color: #fff; }
.agenda-series-scope__danger:hover { background: #a13c49; }
.agenda-event-delete-confirmation { background: #fff7f7; border: 1px solid #f3d8dc; border-radius: .72rem; display: grid; gap: .7rem; padding: .8rem; }
.agenda-event-delete-confirmation p { color: #68434a; font-size: .7rem; line-height: 1.4; margin: 0; }
.agenda-event-delete-confirmation > span { display: flex; gap: .45rem; justify-content: flex-end; }
.agenda-event-delete-confirmation button { background: #fff; border: 1px solid #ead4d8; border-radius: .48rem; color: #6d6063; font: inherit; font-size: .65rem; min-height: 2rem; padding: .35rem .6rem; }
.agenda-event-delete-confirmation button:last-child { background: #b94b59; border-color: #b94b59; color: #fff; }

@media (max-width: 720px) {
  .agenda-month-mobile-top .agenda-header { display: grid; gap: .5rem; grid-template-columns: minmax(0, 1fr); }
  .agenda-month-mobile-top .agenda-header > span { min-width: 0; }
  .agenda-month-mobile-top .agenda-header__actions { gap: .35rem; min-width: 0; width: 100%; }
  .agenda-month-mobile-top .agenda-header__actions .agenda-segmented { flex: 1 1 0; grid-template-columns: repeat(3, minmax(0, 1fr)); min-width: 0; width: auto; }
  .agenda-month-mobile-top .agenda-toolbar { backdrop-filter: none; }
  .agenda-month-mobile-top .agenda-filter-popover { bottom: max(.5rem, env(safe-area-inset-bottom)); left: .75rem; position: fixed; right: .75rem; top: auto; width: auto; }
  .agenda-day-view { overflow-x: auto; }
  .agenda-day-view__header, .agenda-day-grid { min-width: 48rem; }
  .agenda-event-hover-card { display: none; }
  .agenda-event-drawer { border-radius: 1rem 1rem 0 0; bottom: 0; height: min(82dvh, 38rem); max-width: none; top: auto; width: 100%; }
  .agenda-event-drawer__body { padding-bottom: calc(1rem + env(safe-area-inset-bottom)); }
}

/* Clients — full-width relationship directory. */
.clients-listing-experience {
  gap: 1rem;
  margin-inline: auto;
  max-width: 92rem;
  width: 100%;
}

.clients-context-search {
  align-items: center;
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid #e7e3ee;
  border-radius: 0.72rem;
  box-shadow: 0 7px 22px rgba(52, 41, 78, 0.035);
  color: #77709b;
  display: flex;
  gap: 0.65rem;
  min-height: 2.65rem;
  padding: 0 0.8rem;
  width: min(37rem, 100%);
}

.clients-context-search svg {
  flex: 0 0 auto;
  height: 1rem;
  width: 1rem;
}

.clients-context-search input {
  background: transparent;
  border: 0;
  color: #2d2941;
  font-size: 0.8rem;
  min-height: 2.5rem;
  outline: 0;
  width: 100%;
}

.clients-context-search input::placeholder { color: #9892ae; }

.clients-listing-experience .clients-experience__header {
  align-items: flex-end;
  padding: 0.75rem 0 0.1rem;
}

.clients-listing-experience .clients-experience__header h1 {
  color: #292542;
  font-size: clamp(2rem, 3vw, 2.55rem);
  font-weight: 750;
  margin-top: 0.5rem;
}

.clients-experience__description {
  color: #726b96;
  font-size: 0.86rem;
  line-height: 1.5;
  margin: 0.65rem 0 0;
}

.clients-new-button {
  background: linear-gradient(135deg, #6846e7, #8846ed);
  border-radius: 0.65rem;
  box-shadow: 0 9px 20px rgba(104, 70, 231, 0.2);
  font-size: 0.84rem;
  min-height: 2.8rem;
  padding-inline: 1.1rem;
}

.clients-new-button span { font-size: 1.05rem; margin-right: 0.25rem; }

.clients-table-card {
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid rgba(230, 226, 238, 0.88);
  border-radius: 1rem;
  box-shadow: 0 16px 42px rgba(46, 37, 70, 0.055);
  min-width: 0;
  overflow: visible;
}

.clients-table-card__header {
  align-items: center;
  border-bottom: 1px solid #eae7f0;
  display: flex;
  justify-content: space-between;
  min-height: 4.15rem;
  padding: 0.8rem 1.2rem;
}

.clients-table-card__header > div:first-child { align-items: baseline; display: flex; gap: 1.35rem; }
.clients-table-card__header h2 { color: #29253b; font-size: 1.05rem; letter-spacing: -0.025em; margin: 0; }
.clients-table-card__header > div:first-child > span { color: #8b84a8; font-size: 0.76rem; }

.clients-filter { position: relative; }
.clients-filter > button {
  align-items: center;
  background: #f8f7fb;
  border: 1px solid transparent;
  border-radius: 0.62rem;
  color: #6948d5;
  display: flex;
  font-size: 0.78rem;
  font-weight: 680;
  gap: 0.48rem;
  min-height: 2.45rem;
  padding: 0.45rem 0.8rem;
}
.clients-filter > button.is-active { background: #eee9ff; border-color: #ddd3ff; }
.clients-filter > button svg { height: 1rem; width: 1rem; }
.clients-filter > button > span { color: #8c82a8; margin-left: 0.25rem; }
.clients-filter__popover {
  background: #fff;
  border: 1px solid #e6e1ee;
  border-radius: 0.75rem;
  box-shadow: 0 14px 34px rgba(47, 37, 72, 0.16);
  display: grid;
  gap: 0.22rem;
  padding: 0.55rem;
  position: absolute;
  right: 0;
  top: calc(100% + 0.45rem);
  width: 10.5rem;
  z-index: 12;
}
.clients-filter__popover strong { color: #817a8d; font-size: 0.66rem; padding: 0.32rem 0.45rem; text-transform: uppercase; }
.clients-filter__popover button { align-items: center; background: transparent; border: 0; border-radius: 0.48rem; color: #514b5b; display: flex; font-size: 0.73rem; gap: 0.48rem; padding: 0.5rem; text-align: left; }
.clients-filter__popover button:hover, .clients-filter__popover button.is-active { background: #f3f0fc; color: #6045c5; }
.clients-filter__popover button i { border: 1px solid #cfc8dc; border-radius: 50%; height: 0.65rem; width: 0.65rem; }
.clients-filter__popover button.is-active i { background: #6d4bdb; border-color: #6d4bdb; box-shadow: inset 0 0 0 2px #fff; }

.clients-table-scroll { min-width: 0; }
.clients-table { border-collapse: collapse; table-layout: fixed; width: 100%; }
.clients-table th:nth-child(1) { width: 25%; }
.clients-table th:nth-child(2) { width: 20%; }
.clients-table th:nth-child(3) { width: 32%; }
.clients-table th:nth-child(4) { width: 16%; }
.clients-table th:nth-child(5) { width: 7%; }
.clients-table th {
  border-bottom: 1px solid #ebe8f0;
  color: #363149;
  font-size: 0.7rem;
  font-weight: 720;
  height: 2.9rem;
  padding: 0.55rem 1rem;
  text-align: left;
}
.clients-table th button { align-items: center; background: transparent; border: 0; color: inherit; display: inline-flex; font: inherit; gap: 0.38rem; padding: 0; }
.clients-table th button span { color: #a09aaa; font-size: 0.72rem; }
.clients-table th button.is-active { color: #6245c8; }
.clients-table td {
  border-bottom: 1px solid #efecf3;
  color: #514b69;
  font-size: 0.76rem;
  height: 4.15rem;
  padding: 0.55rem 1rem;
  vertical-align: middle;
}
.clients-table__row { cursor: pointer; transition: background 140ms ease; }
.clients-table__row:hover { background: rgba(246, 243, 253, 0.78); }
.clients-table__row:focus-visible { outline: 2px solid rgba(105, 72, 213, 0.35); outline-offset: -2px; }
.clients-table__identity { align-items: center; display: flex; gap: 0.75rem; min-width: 0; }
.clients-table__identity .client-avatar { font-size: 0.68rem; height: 2.3rem; width: 2.3rem; }
.clients-table__identity > span:last-child, .clients-table__appointment { display: grid; gap: 0.14rem; min-width: 0; }
.clients-table__identity strong, .clients-table__appointment strong { color: #302b45; font-size: 0.78rem; font-weight: 710; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.clients-table__identity small, .clients-table__appointment small { color: #9690aa; font-size: 0.68rem; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.clients-table__phone { align-items: center; display: flex; gap: 0.55rem; }
.clients-table__phone > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.clients-table__phone-action { align-items: center; background: transparent; border: 0; border-radius: 0.42rem; color: #514b69; display: inline-flex; gap: 0.55rem; margin: -0.28rem -0.35rem; padding: 0.28rem 0.35rem; }
.clients-table__phone-action:hover { background: #eefbf2; color: #10994a; }
.clients-table__phone-action:focus-visible { outline: 2px solid rgba(16, 153, 74, 0.32); outline-offset: 1px; }
.clients-table__phone-action svg { color: #0fbd58; height: 1.15rem; width: 1.15rem; }
.clients-status-toggle {
  background: #eef0f3;
  border: 0;
  border-radius: 99rem;
  cursor: pointer;
  display: inline-flex;
  height: 1.55rem;
  padding: 0.18rem;
  transition: background 150ms ease, box-shadow 150ms ease;
  width: 2.8rem;
}
.clients-status-toggle > span {
  background: #9da6b9;
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(46, 38, 67, 0.18);
  height: 1.19rem;
  transform: translateX(1.25rem);
  transition: transform 150ms ease, background 150ms ease;
  width: 1.19rem;
}
.clients-status-toggle.is-active { background: #63dd91; }
.clients-status-toggle.is-active > span { background: #fff; }
.clients-status-toggle.is-inactive > span { transform: translateX(0); }
.clients-status-toggle:hover { box-shadow: 0 0 0 3px rgba(99, 221, 145, 0.14); }
.clients-status-toggle.is-inactive:hover { box-shadow: 0 0 0 3px rgba(121, 130, 151, 0.14); }
.clients-status-toggle:focus-visible { outline: 2px solid #7250dc; outline-offset: 2px; }
.clients-status-toggle:disabled { cursor: wait; opacity: 0.58; }
.clients-table__empty-value { color: #a19baa; font-size: 0.69rem; }

/* Financeiro V1 — live appointment forecast, using the same shell and list language as Clientes. */
.financial-experience { display: grid; gap: 1.4rem; margin: 0 auto; max-width: 82rem; min-width: 0; }
.financial-header { padding: 0.65rem 0 0.1rem; }
.financial-header h1 { color: #292542; font-size: clamp(2rem, 3vw, 2.55rem); letter-spacing: -0.055em; margin: 0.5rem 0 0; }
.financial-header > p:last-child { color: #726b96; font-size: 0.86rem; line-height: 1.5; margin: 0.65rem 0 0; }
.financial-tabs { border-bottom: 1px solid #e4dfed; display: flex; gap: 0.2rem; overflow-x: auto; }
.financial-tabs button { background: transparent; border: 0; border-bottom: 2px solid transparent; color: #8982a0; font-size: 0.83rem; font-weight: 650; margin-bottom: -1px; min-height: 2.8rem; padding: 0.55rem 1.1rem; white-space: nowrap; }
.financial-tabs button.is-active { border-bottom-color: var(--purple); color: var(--purple-deep); }
.financial-tabs button:disabled { color: #a7a2b3; cursor: default; }
.financial-toolbar { align-items: end; display: grid; gap: 0.8rem; grid-template-columns: minmax(17rem, 1.2fr) minmax(12rem, 1.2fr) minmax(10rem, 0.8fr) minmax(8rem, 0.6fr); }
.financial-period { border: 0; display: flex; gap: 0.5rem; margin: 0; min-width: 0; padding: 0; }
.financial-period legend, .financial-select { color: #746d87; font-size: 0.7rem; font-weight: 680; }
.financial-period legend { margin-bottom: 0.38rem; }
.financial-period label { align-items: center; color: #746d87; display: flex; flex: 1; font-size: 0.7rem; gap: 0.4rem; min-width: 0; }
.financial-period input, .financial-search, .financial-select select { background: rgba(255,255,255,.9); border: 1px solid #e3dfeb; border-radius: 0.65rem; color: #423b54; min-height: 2.55rem; }
.financial-period input { font: inherit; font-size: 0.78rem; min-width: 0; padding: 0.5rem; width: 100%; }
.financial-search { align-items: center; display: flex; gap: 0.5rem; padding: 0 0.75rem; }
.financial-search svg { fill: none; flex: 0 0 auto; height: 1rem; stroke: #8a82a2; stroke-linecap: round; stroke-width: 1.7; width: 1rem; }
.financial-search input { background: transparent; border: 0; color: #423b54; font: inherit; font-size: 0.78rem; min-width: 0; outline: 0; width: 100%; }
.financial-search input::placeholder { color: #9b95a9; }
.financial-select { display: grid; gap: 0.38rem; min-width: 0; }
.financial-select select { font: inherit; font-size: 0.78rem; padding: 0.48rem 0.6rem; width: 100%; }
.financial-period input:focus-visible, .financial-search:focus-within, .financial-select select:focus-visible { border-color: var(--purple); outline: 2px solid #e7e1ff; }
.clinic-select { display: grid; gap: 0.38rem; min-width: 0; }
.clinic-select__label { color: #746d87; font-size: 0.7rem; font-weight: 680; }
.clinic-select__trigger { align-items: center; background: rgba(255,255,255,.94); border: 1px solid #e3dfeb; border-radius: 0.65rem; color: #423b54; display: flex; font: inherit; font-size: 0.78rem; font-weight: 500; gap: 0.5rem; justify-content: space-between; min-height: 2.55rem; min-width: 0; padding: 0.48rem 0.7rem; text-align: left; width: 100%; }
.clinic-select__trigger > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.clinic-select__placeholder { color: #9b95a9; }
.clinic-select__trigger svg { fill: none; flex: 0 0 auto; height: 1rem; stroke: #817899; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 1rem; }
.clinic-select__trigger:hover:not(:disabled) { border-color: #cfc3e9; }.clinic-select__trigger:focus-visible { border-color: var(--purple); outline: 2px solid #e7e1ff; outline-offset: 1px; }.clinic-select__trigger:disabled { cursor: not-allowed; opacity: .55; }.clinic-select__trigger[aria-invalid="true"] { border-color: #c66c79; }
.clinic-select__panel { background: linear-gradient(145deg, #fff 0%, #faf7ff 100%); border: 1px solid #e2daef; border-radius: 1.05rem; box-shadow: 0 3px 10px rgba(55,42,86,.1), 0 24px 58px rgba(53,39,88,.19), inset 0 1px 0 rgba(255,255,255,.94), inset 0 -1px 0 rgba(113,82,164,.08); isolation: isolate; overflow-x: hidden; overflow-y: auto; padding: 0.42rem; position: fixed; z-index: 120; }
@supports ((backdrop-filter: blur(10px)) or (-webkit-backdrop-filter: blur(10px))) { .clinic-select__panel { background: linear-gradient(145deg, rgba(255,255,255,.81) 0%, rgba(247,242,255,.77) 100%); border-color: rgba(255,255,255,.72); backdrop-filter: blur(26px) saturate(155%); -webkit-backdrop-filter: blur(26px) saturate(155%); } }
.clinic-select__option { align-items: center; border: 1px solid transparent; border-radius: 0.68rem; color: #4b435e; cursor: pointer; display: flex; font-size: 0.8rem; gap: 0.6rem; justify-content: space-between; min-height: 2.45rem; padding: 0.5rem 0.7rem; transition: background-color 120ms ease, border-color 120ms ease, color 120ms ease, box-shadow 120ms ease; }.clinic-select__option.is-active:not(.is-selected) { background: rgba(239,232,251,.68); border-color: rgba(255,255,255,.46); }.clinic-select__option.is-selected { background: linear-gradient(135deg, rgba(229,218,250,.9), rgba(239,232,253,.82)); border-color: rgba(255,255,255,.68); box-shadow: inset 0 1px 0 rgba(255,255,255,.72), 0 1px 4px rgba(94,68,145,.08); color: #6043a6; font-weight: 700; }.clinic-select__option.is-selected.is-active { background: linear-gradient(135deg, rgba(220,205,247,.94), rgba(234,225,252,.88)); box-shadow: inset 0 1px 0 rgba(255,255,255,.76), 0 2px 7px rgba(94,68,145,.12); }.clinic-select__option[aria-disabled="true"] { color: #a9a3b4; cursor: not-allowed; }.clinic-select__option > span { color: #7656c1; }
.clinic-select__error { color: #ae4e60; font-size: 0.7rem; }
.financial-summary { display: grid; gap: 0.85rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.financial-summary__card { background: linear-gradient(140deg, var(--forecast-tint), rgba(255,255,255,.94)); border: 1px solid var(--forecast-border); border-radius: 0.95rem; box-shadow: 0 10px 30px rgba(46,37,70,.04); display: grid; gap: 0.52rem; min-width: 0; padding: 1.05rem 1.15rem; }
.financial-summary__card--today { --forecast-tint: #f7f4ff; --forecast-border: #e9e2f6; --forecast-accent: #705eaa; --forecast-icon: #eee8fc; }
.financial-summary__card--seven { --forecast-tint: #f1f7fe; --forecast-border: #e0ebf8; --forecast-accent: #5b7fa9; --forecast-icon: #e4eefb; }
.financial-summary__card--rest { --forecast-tint: #f1faf5; --forecast-border: #dfeee5; --forecast-accent: #56836b; --forecast-icon: #e2f2e8; }
.financial-summary__card--total { --forecast-tint: #f2edff; --forecast-border: #e2d8f8; --forecast-accent: #6047a5; --forecast-icon: #e6dcfa; box-shadow: 0 12px 30px rgba(80,59,139,.075); }
.financial-summary__card--overdue { --forecast-tint: #fff3f3; --forecast-border: #f5e3e5; --forecast-accent: #ae6d76; --forecast-icon: #fbe6e9; }
.financial-summary__card--due-today { --forecast-tint: #fffaf0; --forecast-border: #f5eddb; --forecast-accent: #a3844f; --forecast-icon: #f8eed6; }
.financial-summary__card--upcoming { --forecast-tint: #f1f7fe; --forecast-border: #e0ebf8; --forecast-accent: #5b7fa9; --forecast-icon: #e4eefb; }
.financial-summary__card-heading { align-items: flex-start; display: flex; gap: 0.5rem; justify-content: space-between; min-height: 2rem; }
.financial-summary__card small { color: var(--forecast-accent); font-size: 0.65rem; font-weight: 750; letter-spacing: 0.065em; line-height: 1.35; text-transform: uppercase; }
.financial-summary__card-icon { align-items: center; background: var(--forecast-icon); border-radius: 0.62rem; color: var(--forecast-accent); display: inline-flex; flex: 0 0 auto; height: 2.05rem; justify-content: center; width: 2.05rem; }
.financial-summary__card-icon svg { height: 1.14rem; width: 1.14rem; }
.financial-summary__card strong { color: #342d48; font-size: clamp(1.18rem, 1.8vw, 1.6rem); letter-spacing: -0.05em; line-height: 1.12; overflow-wrap: anywhere; }
.financial-summary__card--total strong { color: var(--forecast-accent); }
.financial-summary__card > span { color: #827b93; font-size: 0.72rem; font-weight: 540; line-height: 1.35; }
.financial-list-card { background: rgba(255,255,255,.88); border: 1px solid #e9e5f0; border-radius: 1rem; box-shadow: 0 16px 42px rgba(46,37,70,.055); min-width: 0; overflow: hidden; }
.financial-list-card > header { align-items: center; border-bottom: 1px solid #eae7f0; display: flex; justify-content: space-between; min-height: 4.15rem; padding: 0.8rem 1.2rem; }
.financial-list-card > header > div { align-items: baseline; display: flex; flex-wrap: wrap; gap: 1rem; }
.financial-list-card h2 { color: #29253b; font-size: 1.05rem; letter-spacing: -0.025em; margin: 0; }
.financial-list-card > header span { color: #8b84a8; font-size: 0.76rem; }
.financial-refresh { background: #f6f3fd; border: 1px solid #ebe5fa; border-radius: 0.55rem; color: var(--purple-deep); font-size: 0.73rem; font-weight: 670; padding: 0.5rem 0.7rem; }
.financial-refresh:hover { background: #ede7fc; }
.financial-table-scroll { overflow-x: auto; }
.financial-table { border-collapse: collapse; min-width: 50rem; table-layout: fixed; width: 100%; }
.financial-table th { border-bottom: 1px solid #ebe8f0; color: #363149; font-size: 0.7rem; font-weight: 720; height: 2.9rem; padding: 0.55rem 1rem; text-align: left; }
.financial-table th:nth-child(1) { width: 18%; }.financial-table th:nth-child(2) { width: 25%; }.financial-table th:nth-child(3) { width: 17%; }.financial-table th:nth-child(4) { width: 17%; }.financial-table th:nth-child(5) { width: 12%; }.financial-table th:nth-child(6) { width: 11%; text-align: right; }
.financial-table td { border-bottom: 1px solid #efecf3; color: #514b69; font-size: 0.76rem; padding: 0.85rem 1rem; vertical-align: middle; }
.financial-table tbody tr:last-child td { border-bottom: 0; }
.financial-table td strong { color: #302b45; font-size: 0.78rem; font-weight: 710; }
.financial-table td small { color: #928aa1; display: block; font-size: 0.68rem; margin-top: 0.15rem; }
.financial-table td:nth-child(2) span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.financial-table td:last-child { text-align: right; white-space: nowrap; }
.financial-status { display: inline-flex; font-size: 0.69rem; padding: 0.27rem 0.54rem; white-space: nowrap; }
.financial-state { color: #716a81; display: grid; gap: 0.5rem; justify-items: center; min-height: 10rem; place-content: center; text-align: center; padding: 2rem 1rem; }
.financial-state strong { color: #39314f; font-size: 0.95rem; }
.financial-state p { font-size: 0.79rem; line-height: 1.5; margin: 0; }
.financial-pagination { align-items: center; border-top: 1px solid #efecf3; color: #827b91; display: flex; font-size: 0.72rem; gap: 1rem; justify-content: space-between; padding: 0.8rem 1.2rem; }
.financial-pagination select { background: #fff; border: 1px solid #e5e1eb; border-radius: 0.5rem; color: #514b69; font: inherit; padding: 0.4rem; }
.financial-pagination > div { align-items: center; display: flex; gap: 0.7rem; white-space: nowrap; }
.financial-pagination button { background: #fff; border: 1px solid #e5e1eb; border-radius: 0.45rem; color: var(--purple-deep); font-size: 1rem; height: 1.8rem; width: 1.8rem; }
.financial-pagination button:disabled { color: #bbb5c3; cursor: default; }
.financial-payables-action { display: flex; justify-content: flex-end; margin: -0.3rem 0 -0.25rem; }
.payables-table { min-width: 52rem; }
.payables-table th:nth-child(1) { width: 26%; }.payables-table th:nth-child(2) { width: 18%; }.payables-table th:nth-child(3) { width: 16%; }.payables-table th:nth-child(4) { width: 16%; }.payables-table th:nth-child(5) { width: 16%; text-align: right; }.payables-table th:nth-child(6) { width: 8%; text-align: center; }
.payables-table td:nth-child(2) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.payables-table td:nth-child(5) { text-align: right; white-space: nowrap; }.payables-table td:nth-child(6) { text-align: center; }
.revenue-table { min-width: 52rem; }
.revenue-table th:nth-child(1) { width: 20%; }.revenue-table th:nth-child(2) { width: 27%; }.revenue-table th:nth-child(3) { width: 17%; }.revenue-table th:nth-child(4) { width: 14%; }.revenue-table th:nth-child(5) { width: 14%; text-align: right; }.revenue-table th:nth-child(6) { width: 8%; text-align: center; }
.revenue-table td:nth-child(5) { text-align: right; white-space: nowrap; }.revenue-table td:nth-child(6) { text-align: center; }
.revenue-status { border-radius: 999px; display: inline-flex; font-size: .68rem; font-weight: 680; padding: .3rem .65rem; white-space: nowrap; }
.revenue-status--receivable { background: #eeeafb; color: #69599e; }.revenue-status--paid { background: #e8f5ec; color: #518465; }.revenue-status--reversed { background: #f5edf0; color: #8a6670; }
.payables-status { border-radius: 999px; display: inline-flex; font-size: 0.68rem; font-weight: 680; padding: 0.3rem 0.65rem; white-space: nowrap; }
.payables-status--overdue { background: #fcecee; color: #a75d69; }.payables-status--today { background: #fff3d9; color: #99773d; }.payables-status--upcoming { background: #eeeafb; color: #6a5a9f; }.payables-status--paid { background: #e8f5ec; color: #518465; }
.payables-row-menu { display: inline-flex; position: relative; }
.payables-row-menu__trigger { background: transparent; border: 0; border-radius: 0.45rem; color: #615676; font-size: 1.25rem; height: 2rem; line-height: 0.7; width: 2rem; }
.payables-row-menu__trigger:hover { background: #f2eef9; }
.payables-row-menu__popover { background: #fff; border: 1px solid #e5e1eb; border-radius: 0.7rem; box-shadow: 0 14px 34px rgba(47,37,72,.17); display: grid; min-width: 10.5rem; padding: 0.35rem; position: fixed; z-index: 90; }
.payables-row-menu__popover button { background: transparent; border: 0; border-radius: 0.4rem; color: #514b5d; font-size: 0.72rem; padding: 0.55rem 0.6rem; text-align: left; white-space: nowrap; }
.payables-row-menu__popover button:hover { background: #f5f2fc; color: #6148c3; }
.payables-overlay { align-items: center; display: flex; inset: 0; justify-content: center; padding: 1rem; position: fixed; z-index: 80; }
.payables-overlay__backdrop { background: rgba(27,22,43,.42); border: 0; inset: 0; position: absolute; }
.payables-dialog { background: #fff; border: 1px solid #ebe7f2; border-radius: 1rem; box-shadow: 0 24px 70px rgba(31,22,51,.22); display: flex; flex-direction: column; max-height: min(90vh, 48rem); overflow: auto; position: relative; width: min(100%, 34rem); }
.payables-dialog--compact { width: min(100%, 28rem); }
.payables-dialog > header { align-items: flex-start; border-bottom: 1px solid #eeeaf4; display: flex; justify-content: space-between; padding: 1.2rem 1.4rem; }
.payables-dialog > header .eyebrow { margin: 0 0 0.4rem; }.payables-dialog h2 { color: #302a45; font-size: 1.2rem; margin: 0; }
.payables-dialog > header > button { background: #f7f5fb; border: 0; border-radius: 0.5rem; color: #70688a; font-size: 1.2rem; height: 2rem; width: 2rem; }
.payables-dialog__body { color: #625b73; display: grid; gap: 1rem; padding: 1.3rem 1.4rem; }.payables-dialog__body > strong { color: #302a45; }.payables-dialog__body > p { font-size: 0.82rem; line-height: 1.5; margin: 0; }
.payables-dialog__body label { color: #514a63; display: grid; font-size: 0.78rem; font-weight: 650; gap: 0.4rem; }.payables-dialog__body input:not([type="checkbox"]), .payables-dialog__body select, .payables-dialog__body textarea { background: #fff; border: 1px solid #e1dce9; border-radius: 0.58rem; color: #39334a; font: inherit; font-weight: 500; min-height: 2.7rem; min-width: 0; padding: 0.55rem 0.7rem; width: 100%; }.payables-dialog__body textarea { line-height: 1.45; resize: vertical; }
.payables-dialog__pair { display: grid; gap: 0.85rem; grid-template-columns: 1fr 1fr; }.payables-dialog__body .payables-checkbox { align-items: center; display: flex; gap: 0.5rem; }.payables-checkbox input { accent-color: var(--purple); height: 1rem; width: 1rem; }
.payables-text-action { background: transparent; border: 0; color: var(--purple-deep); font-size: 0.75rem; font-weight: 670; justify-self: start; padding: 0; }
.payables-category-inline { background: #faf8ff; border: 1px solid #e9e1f7; border-radius: 0.75rem; display: grid; gap: 0.7rem; padding: 0.85rem; }.payables-category-inline > strong { color: #48376f; font-size: 0.82rem; }.payables-category-inline__actions { display: flex; gap: 0.5rem; justify-content: flex-end; }.payables-category-inline button { background: #fff; border: 1px solid #e5ddf3; border-radius: 0.48rem; color: var(--purple-deep); font-size: 0.72rem; min-height: 2.25rem; padding: 0.4rem 0.65rem; }.payables-category-inline button:last-child { background: #eee8fb; font-weight: 700; }.payables-category-inline p { color: #b04d60; font-size: 0.72rem; margin: 0; }
.payables-dialog__error { color: #b04d60; font-size: 0.75rem !important; }.payables-dialog > footer, .payables-dialog > form > footer { border-top: 1px solid #eeeaf4; display: flex; gap: 0.6rem; justify-content: flex-end; padding: 1rem 1.4rem; }
.revenue-details { display: grid; gap: .9rem 1rem; grid-template-columns: 1fr 1fr; margin: 0; }.revenue-details > div { display: grid; gap: .24rem; min-width: 0; }.revenue-details dt { color: #8c8499; font-size: .68rem; }.revenue-details dd { color: #40394f; font-size: .79rem; font-weight: 620; margin: 0; overflow-wrap: anywhere; }.revenue-details__wide { grid-column: 1 / -1; }
.overview-toolbar { align-items: end; display: grid; gap: 1rem; grid-template-columns: minmax(10rem, 1fr) minmax(20rem, 23rem) auto; }
.overview-toolbar > div { display: grid; gap: 0.2rem; }.overview-toolbar__title { color: #3d355a; font-size: 0.84rem; font-weight: 740; }.overview-toolbar__range { color: #8a839b; font-size: 0.72rem; }
.overview-toolbar > button { min-height: 2.55rem; }.overview-toolbar .financial-period { width: 100%; }
.overview-summary--forecast { --forecast-tint: #f7f4ff; --forecast-border: #e9e2f6; --forecast-accent: #705eaa; --forecast-icon: #eee8fc; }
.overview-summary--received { --forecast-tint: #f1f7fe; --forecast-border: #e0ebf8; --forecast-accent: #5b7fa9; --forecast-icon: #e4eefb; }
.overview-summary--spent { --forecast-tint: #f1faf5; --forecast-border: #dfeee5; --forecast-accent: #56836b; --forecast-icon: #e2f2e8; }
.overview-summary--payables { --forecast-tint: #f8f3ff; --forecast-border: #eadff8; --forecast-accent: #775da9; --forecast-icon: #eee4fb; box-shadow: 0 12px 30px rgba(80,59,139,.07); }
.overview-panel { background: rgba(255,255,255,.9); border: 1px solid #e9e5f0; border-radius: 1rem; box-shadow: 0 16px 42px rgba(46,37,70,.05); min-width: 0; overflow: hidden; }
.overview-panel > header { align-items: center; border-bottom: 1px solid #eeeaf3; display: flex; flex-wrap: wrap; gap: 0.7rem; justify-content: space-between; padding: 1.05rem 1.2rem; }
.overview-panel h2 { color: #302b45; font-size: 1.02rem; letter-spacing: -0.025em; margin: 0; }.overview-panel header p { color: #8c859c; font-size: 0.73rem; margin: 0.28rem 0 0; }
.overview-panel > header button, .overview-attention__item button { background: #f5f1fd; border: 1px solid #ece6f9; border-radius: 0.52rem; color: var(--purple-deep); font-size: 0.72rem; font-weight: 700; padding: 0.5rem 0.65rem; white-space: nowrap; }
.overview-panel > header button:hover, .overview-attention__item button:hover { background: #ede6fb; }
.overview-result { align-items: center; background: linear-gradient(120deg,#f5f0ff,#fbf9ff 68%,#fff); border: 1px solid #e7def7; border-radius: 1rem; box-shadow: 0 13px 32px rgba(80,59,139,.055); display: flex; gap: 1.5rem; justify-content: space-between; padding: 1.25rem 1.45rem; }
.overview-result small { color: #6f5a9e; font-size: 0.67rem; font-weight: 770; letter-spacing: .07em; text-transform: uppercase; }.overview-result h2 { color: #4e3a84; font-size: clamp(1.55rem,2.5vw,2.15rem); letter-spacing: -.05em; margin: .28rem 0 .22rem; }.overview-result p { color: #817695; font-size: .72rem; margin: 0; }
.overview-result__equation { align-items: center; display: flex; gap: .8rem; }.overview-result__equation span { color: #807793; display: grid; font-size: .69rem; gap: .25rem; white-space: nowrap; }.overview-result__equation strong { color: #40374f; font-size: .86rem; }.overview-result__equation span:last-child strong { color: #6047a5; }.overview-result__equation b { color: #aa9dbc; font-size: 1.2rem; font-weight: 480; }
.overview-chart__legend { align-items: center; display: flex; flex-wrap: wrap; gap: 1rem; }.overview-chart__legend span { align-items: center; color: #787188; display: inline-flex; font-size: .7rem; gap: .38rem; }.overview-chart__legend i { border-radius: .2rem; display: inline-block; height: .62rem; width: .62rem; }.overview-chart__legend .is-received { background: #8e83da; }.overview-chart__legend .is-expense { background: #88b9ae; }
.overview-chart__scroll { overflow-x: auto; padding: 1.1rem 1.25rem 1rem; }.overview-chart__buckets { background: repeating-linear-gradient(to top,transparent 0,transparent calc(25% - 1px),#f2eff6 calc(25% - 1px),#f2eff6 25%); display: grid; height: 11.8rem; width: 100%; }.overview-chart__bucket { display: flex; flex-direction: column; min-width: 0; }.overview-chart__bars { align-items: end; border-bottom: 1px solid #e4dfed; display: flex; flex: 1; gap: .3rem; justify-content: center; min-height: 0; padding: 0 .32rem; }.overview-chart__bar { border-radius: .28rem .28rem 0 0; min-height: 0; transition: height .22s ease; width: min(1.15rem,42%); }.overview-chart__bar--received { background: linear-gradient(180deg,#a99be9,#8572ce); }.overview-chart__bar--expense { background: linear-gradient(180deg,#a6d1c6,#77aa9d); }.overview-chart__bucket small { color: #8b8496; font-size: .63rem; line-height: 1.3; padding-top: .45rem; text-align: center; white-space: nowrap; }
.overview-lower { align-items: start; display: grid; gap: 1rem; grid-template-columns: minmax(0,.95fr) minmax(0,1.25fr); }.overview-lower__side { display: grid; gap: 1rem; min-width: 0; }
.overview-attention__list { display: grid; }.overview-attention__item { align-items: center; border-bottom: 1px solid #f0edf4; display: grid; gap: .7rem; grid-template-columns: auto minmax(0,1fr) auto; padding: .95rem 1.2rem; }.overview-attention__item:last-child { border-bottom: 0; }.overview-attention__item > div { display: grid; gap: .25rem; min-width: 0; }.overview-attention__item strong { color: #3e374e; font-size: .78rem; }.overview-attention__item span:not(.overview-attention__mark) { color: #817a8f; font-size: .71rem; }.overview-attention__mark { align-items: center; border-radius: .54rem; display: inline-flex; font-size: .95rem; font-weight: 800; height: 1.85rem; justify-content: center; width: 1.85rem; }.overview-attention__mark.is-overdue { background: #fbe9eb; color: #aa6470; }.overview-attention__mark.is-today { background: #fff2dc; color: #a0804b; }
.overview-next ul,.overview-receipts ul { list-style: none; margin: 0; padding: 0; }.overview-next li,.overview-receipts li { align-items: center; border-bottom: 1px solid #f0edf4; display: flex; gap: .8rem; justify-content: space-between; min-width: 0; padding: .84rem 1.2rem; }.overview-next li:last-child,.overview-receipts li:last-child { border-bottom: 0; }.overview-next li > div,.overview-receipts li > div:first-child { display: grid; gap: .3rem; min-width: 0; }.overview-next li strong,.overview-receipts li strong { color: #3d374f; font-size: .78rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.overview-next li span,.overview-receipts li span { color: #8c8597; font-size: .7rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.overview-next li b,.overview-receipts li b { color: #4a405f; font-size: .77rem; white-space: nowrap; }.overview-next li em { font-size: .61rem; font-style: normal; margin-left: .15rem; padding: .2rem .45rem; }.overview-receipts__meta { align-items: end; display: grid; gap: .3rem; justify-items: end; }.overview-receipts__meta small { color: #8b8497; font-size: .68rem; white-space: nowrap; }
.overview-empty { align-content: center; color: #8a8296; display: grid; gap: .4rem; justify-items: center; min-height: 8.5rem; padding: 1.5rem 1rem; text-align: center; }.overview-empty strong { color: #4c445e; font-size: .82rem; }.overview-empty span { font-size: .72rem; line-height: 1.45; }.overview-empty--positive strong { color: #528366; }
@container (max-width: 71rem) {
  .financial-toolbar, .financial-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@container (max-width: 55rem) {
  .overview-toolbar { align-items: stretch; grid-template-columns: minmax(0, 1fr); }
  .overview-toolbar > button { justify-self: start; }
  .overview-result { align-items: stretch; flex-direction: column; }
  .overview-result__equation { justify-content: space-between; }
  .overview-lower { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 720px) {
  .financial-experience { gap: 1rem; }.financial-header h1 { font-size: 1.9rem; }
  .financial-toolbar { grid-template-columns: 1fr; }.financial-period { gap: 0.5rem; }
  .financial-summary { gap: 0.55rem; }.financial-summary__card { gap: 0.4rem; padding: 0.85rem; }.financial-summary__card strong { font-size: 1.1rem; }
  .financial-table { min-width: 0; }.financial-table thead { display: none; }.financial-table tbody { display: grid; }
  .financial-table tr { border-bottom: 1px solid #efecf3; display: grid; gap: 0.45rem; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 0.9rem 1rem; }
  .financial-table td { border: 0; min-width: 0; padding: 0; }.financial-table td::before { color: #9a93a8; content: attr(data-label); display: block; font-size: 0.62rem; margin-bottom: 0.12rem; }
  .financial-table td:nth-child(1), .financial-table td:nth-child(2) { grid-column: 1 / -1; }.financial-table td:last-child { text-align: left; }
  .financial-pagination { flex-wrap: wrap; gap: 0.65rem; }.financial-pagination > div { margin-left: auto; }
  .payables-table { min-width: 0; }.payables-table td:nth-child(2) { white-space: normal; }.payables-table td:nth-child(5), .payables-table td:nth-child(6) { text-align: left; }.payables-table td:nth-child(5) { grid-column: 1; }.payables-table td:nth-child(6) { grid-column: 2; justify-self: end; }
  .payables-dialog__pair { grid-template-columns: 1fr; }
  .revenue-details { grid-template-columns: 1fr; }.revenue-details__wide { grid-column: auto; }
  .overview-toolbar { align-items: stretch; grid-template-columns: 1fr; }.overview-toolbar > button { justify-self: start; }.overview-result { gap: 1.1rem; padding: 1rem; }.overview-result__equation { align-items: start; flex-wrap: wrap; gap: .5rem; justify-content: flex-start; }.overview-result__equation span { min-width: 5.5rem; }.overview-result__equation b { font-size: .9rem; }.overview-lower { grid-template-columns: 1fr; }.overview-chart__scroll { padding: .9rem .8rem; }.overview-chart__buckets { height: 10rem; }.overview-attention__item { grid-template-columns: auto 1fr; }.overview-attention__item button { grid-column: 2; justify-self: start; }.overview-receipts li { align-items: start; flex-direction: column; gap: .45rem; }.overview-receipts__meta { align-items: center; display: flex; justify-content: space-between; width: 100%; }
}

.clients-row-menu { display: inline-flex; justify-content: center; position: relative; width: 100%; }
.clients-row-menu__trigger { align-items: center; background: transparent; border: 0; border-radius: 0.45rem; color: #554d78; display: flex; height: 2rem; justify-content: center; padding: 0; width: 2rem; }
.clients-row-menu__trigger:hover { background: #f0edf8; }
.clients-row-menu__trigger svg { height: 1.15rem; width: 1.15rem; }
.clients-row-menu__popover {
  background: #fff;
  border: 1px solid #e5e1eb;
  border-radius: 0.72rem;
  box-shadow: 0 14px 34px rgba(47, 37, 72, 0.17);
  display: grid;
  padding: 0.42rem;
  position: absolute;
  right: 0.25rem;
  top: calc(100% + 0.2rem);
  width: 10.7rem;
  z-index: 10;
}
.clients-row-menu__popover button { align-items: center; background: transparent; border: 0; border-radius: 0.45rem; color: #514b5d; display: flex; font-size: 0.71rem; justify-content: space-between; min-height: 2rem; padding: 0.42rem 0.55rem; text-align: left; }
.clients-row-menu__popover button:hover { background: #f5f2fc; color: #6148c3; }
.clients-row-menu__popover button.is-danger { color: #c53e5b; }
.clients-row-menu__popover button:disabled { color: #aaa5ae; cursor: default; }
.clients-row-menu__popover svg { height: 0.82rem; width: 0.82rem; }
.clients-row-menu__popover hr { border: 0; border-top: 1px solid #edeaf1; margin: 0.3rem 0; }

.clients-table__skeleton i { animation: clients-pulse 1.25s ease-in-out infinite; background: #efedf4; border-radius: 0.4rem; display: block; height: 0.8rem; max-width: 8rem; }
.clients-table__skeleton td:first-child i { height: 2rem; }
@keyframes clients-pulse { 50% { opacity: 0.45; } }
.clients-table-state { align-items: center; color: #7d768b; display: grid; gap: 0.45rem; justify-items: center; min-height: 15rem; padding: 2rem; text-align: center; }
.clients-table-state p { font-size: 0.8rem; margin: 0; }

.clients-pagination {
  align-items: center;
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr auto 1fr;
  min-height: 4.5rem;
  padding: 0.75rem 1rem;
}
.clients-pagination select { appearance: none; background: #fff; border: 1px solid #dfdbe7; border-radius: 0.55rem; color: #595271; font-size: 0.72rem; min-height: 2.4rem; padding: 0.45rem 2rem 0.45rem 0.7rem; }
.clients-pagination label { position: relative; }
.clients-pagination label::after { color: #716a8b; content: "⌄"; font-size: 0.8rem; pointer-events: none; position: absolute; right: 0.7rem; top: 0.65rem; }
.clients-pagination p { color: #88819e; font-size: 0.76rem; margin: 0; }
.clients-pagination nav { display: flex; gap: 0.42rem; justify-self: end; }
.clients-pagination nav button { background: #f7f6fa; border: 1px solid transparent; border-radius: 0.52rem; color: #555069; font-size: 0.73rem; height: 2.45rem; min-width: 2.45rem; padding: 0.25rem; }
.clients-pagination nav button:hover:not(:disabled) { border-color: #d9d1ef; color: #6041ca; }
.clients-pagination nav button.is-active { background: linear-gradient(135deg, #6945e5, #8a42ec); box-shadow: 0 6px 15px rgba(109, 69, 223, 0.22); color: #fff; }
.clients-pagination nav button:disabled { color: #c3bfcb; cursor: default; }

@media (max-width: 1120px) {
  .clients-table-scroll { overflow-x: auto; }
  .clients-table { min-width: 68rem; }
  .clients-table-card { overflow: hidden; }
}

@media (max-width: 720px) {
  .clients-listing-experience { gap: 0.75rem; }
  .clients-listing-experience .clients-experience__header { align-items: stretch; display: grid; gap: 0.85rem; }
  .clients-listing-experience .clients-experience__header h1 { font-size: 1.8rem; }
  .clients-experience__description { font-size: 0.76rem; }
  .clients-new-button { justify-self: start; }
  .clients-table-card__header { min-height: 3.7rem; padding-inline: 0.75rem; }
  .clients-pagination { grid-template-columns: 1fr auto; padding: 0.75rem; }
  .clients-pagination p { text-align: right; }
  .clients-pagination nav { grid-column: 1 / -1; justify-self: center; }
  .clients-pagination nav button { height: 2.2rem; min-width: 2.2rem; }
}

/* Agenda visual refinement — Day and Week share one quiet, editorial grammar. */
.agenda-experience--day .agenda-primary-view,
.agenda-experience--week .agenda-primary-view { min-width: 0; }

.agenda-experience--day .agenda-day-view,
.agenda-experience--week .agenda-week-view {
  background: #fff;
  border: 1px solid rgba(74, 59, 96, 0.11);
  border-radius: 0.9rem;
  box-shadow: 0 10px 28px rgba(45, 34, 68, 0.035);
}

.agenda-day-view__header {
  background: #fdfcff;
  border-bottom: 1px solid rgba(74, 59, 96, 0.09);
}
.agenda-day-view__header > span {
  color: #958f9d;
  font-size: 0.58rem;
  font-weight: 680;
}
.agenda-day-view__header > div {
  border-left-color: rgba(74, 59, 96, 0.075);
  min-height: 3.45rem;
  padding-inline: 0.9rem;
}
.agenda-day-view__header strong { color: #342d3d; font-size: 0.75rem; font-weight: 740; }
.agenda-day-view__header small { color: #938c9b; font-size: 0.59rem; font-weight: 520; }
.agenda-time-axis { background: #fefeff; border-right: 1px solid rgba(74, 59, 96, 0.075); }
.agenda-time-axis span { color: #9993a2; font-size: 0.6rem; font-variant-numeric: tabular-nums; }
.agenda-day-slots { background: #fff; border-left: 0; }
.agenda-slot { border-bottom-color: rgba(74, 59, 96, 0.065); }
.agenda-slot:hover { background: rgba(111, 79, 207, 0.025); }

.agenda-appointment-block,
.agenda-week-card {
  --agenda-appointment-accent: #7b5cdb;
  --agenda-appointment-border: #e6e0f4;
  --agenda-appointment-surface: #fcfbff;
  background: var(--agenda-appointment-surface);
  border: 1px solid var(--agenda-appointment-border);
  border-left: 3px solid var(--agenda-appointment-accent);
  box-shadow: 0 2px 7px rgba(48, 35, 72, 0.045);
  color: #302a39;
  position: absolute;
  transition: border-color 140ms ease, box-shadow 140ms ease, background 140ms ease;
}
.agenda-appointment-block:hover,
.agenda-week-card:hover {
  background: color-mix(in srgb, var(--agenda-appointment-surface) 93%, var(--agenda-appointment-accent));
  border-color: color-mix(in srgb, var(--agenda-appointment-accent) 23%, #e8e3ed);
  border-left-color: var(--agenda-appointment-accent);
  box-shadow: 0 5px 14px rgba(48, 35, 72, 0.09);
  filter: none;
}
.agenda-appointment-block:focus-visible,
.agenda-week-card:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--agenda-appointment-accent) 42%, transparent);
  outline-offset: 1px;
  z-index: 7;
}

.agenda-appointment-block.agenda-status--agendado,
.agenda-week-card.agenda-status--agendado,
.agenda-experience--month .agenda-month-entry.agenda-status--agendado {
  --agenda-appointment-accent: #7657dc;
  --agenda-appointment-border: #ded5f7;
  --agenda-appointment-surface: #f2eeff;
  background: var(--agenda-appointment-surface);
  border-left-color: var(--agenda-appointment-accent);
}
.agenda-appointment-block.agenda-status--confirmado,
.agenda-week-card.agenda-status--confirmado,
.agenda-experience--month .agenda-month-entry.agenda-status--confirmado {
  --agenda-appointment-accent: #3586e8;
  --agenda-appointment-border: #cfe3fb;
  --agenda-appointment-surface: #edf6ff;
  background: var(--agenda-appointment-surface);
  border-left-color: var(--agenda-appointment-accent);
}
.agenda-appointment-block.agenda-status--remarcado,
.agenda-week-card.agenda-status--remarcado,
.agenda-experience--month .agenda-month-entry.agenda-status--remarcado { --agenda-appointment-accent:#d99b2b; --agenda-appointment-border:#f2dfb8; --agenda-appointment-surface:#fff7e8; background:var(--agenda-appointment-surface); border-left-color:var(--agenda-appointment-accent); }
.agenda-appointment-block.agenda-status--nao-compareceu,
.agenda-week-card.agenda-status--nao-compareceu,
.agenda-experience--month .agenda-month-entry.agenda-status--nao-compareceu { --agenda-appointment-accent:#687084; --agenda-appointment-border:#dfe2e8; --agenda-appointment-surface:#f2f3f5; background:var(--agenda-appointment-surface); border-left-color:var(--agenda-appointment-accent); }

.appointment-form-split { grid-template-columns:minmax(0,1.1fr) minmax(13rem,.9fr); }
.appointment-status-field { position:relative; }
.appointment-status-trigger,.appointment-status-picker button { align-items:center; display:flex; gap:.52rem; }
.appointment-status-trigger { background:#fff; border:1px solid #ded9eb; border-radius:.58rem; color:#403a54; min-height:2.65rem; padding:.55rem .7rem; width:100%; }
.appointment-status-trigger > :last-child { margin-left:auto; }
.appointment-status-picker { background:#fff; border:1px solid #ded9eb; border-radius:.58rem; box-shadow:0 14px 30px rgba(48,35,72,.14); left:0; margin-top:.3rem; overflow:hidden; position:absolute; right:0; z-index:20; }
.appointment-status-picker button { background:transparent; border:0; color:#4d4660; padding:.58rem .7rem; text-align:left; width:100%; }
.appointment-status-picker button[aria-selected="true"] { background:#f2edff; color:#6f48d7; font-weight:700; }
.appointment-status-picker b { margin-left:auto; }
.appointment-status-indicator { font-size:.82rem; line-height:1; }.appointment-status-indicator.is-scheduled{color:#7657dc}.appointment-status-indicator.is-confirmed{color:#3586e8}.appointment-status-indicator.is-rescheduled{color:#d99b2b}.appointment-status-indicator.is-cancelled{color:#e64f6d}.appointment-status-indicator.is-no-show{color:#687084}.appointment-status-indicator.is-completed{color:#35b76c}
@media (max-width: 720px){.appointment-form-split{grid-template-columns:1fr}.appointment-status-picker{max-height:15rem;overflow:auto}}
.agenda-appointment-block.agenda-status--concluido,
.agenda-week-card.agenda-status--concluido,
.agenda-experience--month .agenda-month-entry.agenda-status--concluido {
  --agenda-appointment-accent: #35b76c;
  --agenda-appointment-border: #ccebd8;
  --agenda-appointment-surface: #edf8f1;
  background: var(--agenda-appointment-surface);
  border-left-color: var(--agenda-appointment-accent);
}
.agenda-appointment-block.agenda-status--cancelado,
.agenda-week-card.agenda-status--cancelado,
.agenda-experience--month .agenda-month-entry.agenda-status--cancelado {
  --agenda-appointment-accent: #e64f6d;
  --agenda-appointment-border: #f2ced7;
  --agenda-appointment-surface: #fff0f3;
  background: var(--agenda-appointment-surface);
  border-left-color: var(--agenda-appointment-accent);
  opacity: 1;
}

.agenda-month-cell { container-type: inline-size; }
.agenda-month-entry {
  --agenda-appointment-accent: #7657dc;
  --agenda-appointment-border: #ded5f7;
  --agenda-appointment-surface: #f2eeff;
  background: var(--agenda-appointment-surface);
  border: 1px solid var(--agenda-appointment-border);
  border-left: 3px solid var(--agenda-appointment-accent);
  grid-template-columns: auto auto minmax(0, 1fr);
}
.agenda-month-entry__time-start { display: none; }
.agenda-month-entry__time-range,
.agenda-month-entry__time-start { font-variant-numeric: tabular-nums; white-space: nowrap; }
@container (max-width: 10rem) {
  .agenda-month-entry { grid-template-columns: auto minmax(0, 1fr); }
  .agenda-month-entry__time-range { display: none; }
  .agenda-month-entry__time-start { display: block; }
}

.agenda-appointment-block {
  border-radius: 0.55rem;
  display: block;
  overflow: hidden;
  padding: 0.48rem 0.78rem 0.42rem 0.68rem;
  text-align: left;
  z-index: 3;
}
.agenda-appointment-block__copy {
  align-content: start;
  display: grid;
  gap: 0.12rem;
  min-width: 0;
  overflow: hidden;
  width: 100%;
}
.agenda-appointment-block__copy strong,
.agenda-appointment-block__copy small,
.agenda-appointment-block__time {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.agenda-appointment-block__copy strong {
  color: #2c2635;
  font-size: 0.78rem;
  font-weight: 760;
  letter-spacing: -0.012em;
  line-height: 1.12;
}
.agenda-appointment-block__copy small {
  color: #5f5768;
  font-size: 0.66rem;
  font-weight: 570;
  line-height: 1.1;
}
.agenda-appointment-block__time {
  color: #7b7483;
  font-size: 0.59rem;
  font-variant-numeric: tabular-nums;
  font-weight: 590;
  line-height: 1.08;
  text-align: left;
}
.agenda-appointment-block.is-short {
  padding-block: 0.18rem 0.14rem;
}
.agenda-appointment-block.is-short .agenda-appointment-block__copy {
  gap: 0;
}
.agenda-appointment-block.is-short .agenda-appointment-block__copy strong { font-size: 0.7rem; }
.agenda-appointment-block.is-short .agenda-appointment-block__copy small { font-size: 0.59rem; }
.agenda-appointment-block.is-short .agenda-appointment-block__time { font-size: 0.53rem; }
.agenda-appointment-block.is-compact {
  align-content: start;
  padding-block: 0.06rem;
}
.agenda-appointment-block.is-compact .agenda-appointment-block__copy {
  align-content: start;
  gap: 0;
  grid-template-columns: minmax(0, 1fr);
}
.agenda-appointment-block.is-compact .agenda-appointment-block__copy strong { font-size: 0.68rem; line-height: 1; }
.agenda-appointment-block.is-compact .agenda-appointment-block__copy small { font-size: 0.54rem; line-height: 1; }
.agenda-appointment-block.is-compact .agenda-appointment-block__time { font-size: 0.48rem; line-height: 1; text-align: left; }

.agenda-now {
  left: -3.25rem;
  transform: translateY(-1px);
  z-index: 6;
}
.agenda-now span {
  background: #fff;
  color: #ef365f;
  font-size: 0.59rem;
  font-variant-numeric: tabular-nums;
  font-weight: 760;
  padding: 0 0.42rem 0 0.28rem;
}
.agenda-now b { background: #ef476f; height: 0.34rem; width: 0.34rem; }
.agenda-now i { background: #ef476f; height: 1px; opacity: 0.78; }

.agenda-week-view {
  --agenda-week-header-height: 3.65rem;
  grid-template-columns: 3.25rem repeat(var(--agenda-week-days, 7), minmax(7rem, 1fr));
  min-height: 0;
  overflow-x: auto;
  position: relative;
}
.agenda-week-time-axis {
  background: #fefeff;
  border-right-color: rgba(74, 59, 96, 0.08);
  grid-template-rows: var(--agenda-week-header-height) var(--agenda-week-timeline-height);
}
.agenda-week-time-axis > span {
  color: #938c9a;
  font-size: 0.58rem;
  font-weight: 680;
  padding-right: 0.52rem;
}
.agenda-week-time-axis__body small {
  color: #9b95a2;
  font-size: 0.56rem;
  font-variant-numeric: tabular-nums;
  padding-right: 0.52rem;
}
.agenda-week-column {
  border-right-color: rgba(74, 59, 96, 0.075);
  min-width: 7rem;
}
.agenda-week-column:last-of-type { border-right: 0; }
.agenda-week-empty { align-items: center; color: #89829e; display: flex; font-size: .78rem; font-weight: 650; justify-content: center; min-height: calc(var(--agenda-week-header-height) + var(--agenda-week-timeline-height)); padding: 1rem; text-align: center; }
.agenda-week-column__heading {
  background: #fdfcff;
  border-bottom-color: rgba(74, 59, 96, 0.085);
  gap: 0.13rem;
  min-height: var(--agenda-week-header-height);
  padding: 0.46rem 0.3rem;
}
.agenda-week-column__heading span {
  color: #8e8796;
  font-size: 0.58rem;
  font-weight: 730;
  letter-spacing: 0.055em;
}
.agenda-week-column__heading strong {
  color: #393241;
  font-size: 0.72rem;
  font-weight: 720;
}
.agenda-week-column.is-today .agenda-week-column__heading {
  background: #f5f1ff;
  box-shadow: inset 0 -2px #7b59dd;
}
.agenda-week-column.is-today .agenda-week-column__heading span,
.agenda-week-column.is-today .agenda-week-column__heading strong { color: #5f43ba; }
.agenda-week-column.is-today .agenda-week-column__body {
  background: linear-gradient(180deg, rgba(246, 242, 255, 0.62), rgba(252, 250, 255, 0.26));
}
.agenda-week-gridline { border-bottom-color: rgba(74, 59, 96, 0.06); }
.agenda-week-gridline:hover { background: rgba(111, 79, 207, 0.025); }

.agenda-week-card {
  align-content: start;
  border-radius: 0.45rem;
  gap: 0.08rem;
  padding: 0.3rem 0.38rem 0.28rem 0.58rem;
  text-align: left;
  z-index: 3;
}
.agenda-week-card strong,
.agenda-week-card span,
.agenda-week-card small {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.agenda-week-card strong {
  color: #2d2735;
  font-size: 0.68rem;
  font-weight: 760;
  letter-spacing: -0.012em;
  line-height: 1.1;
}
.agenda-week-card span {
  color: #5f5767;
  font-size: 0.58rem;
  font-weight: 570;
  line-height: 1.08;
}
.agenda-week-card small {
  color: #7a7381;
  font-size: 0.53rem;
  font-variant-numeric: tabular-nums;
  font-weight: 590;
  line-height: 1.05;
}
.agenda-week-card.is-short {
  gap: 0;
  padding-block: 0.12rem 0.08rem;
}
.agenda-week-card.is-short strong { font-size: 0.62rem; }
.agenda-week-card.is-short span { font-size: 0.52rem; }
.agenda-week-card.is-short small { font-size: 0.47rem; }
.agenda-week-card.is-compact {
  align-content: start;
  gap: 0;
  grid-template-columns: minmax(0, 1fr);
  padding-block: 0.04rem;
}
.agenda-week-card.is-compact strong { font-size: 0.58rem; line-height: 1; }
.agenda-week-card.is-compact span { display: block; font-size: 0.47rem; line-height: 1; }
.agenda-week-card.is-compact small { font-size: 0.43rem; line-height: 1; }

/* Two readable planning cards per day; closed days make room for the open ones. */
.agenda-week-view { grid-template-columns: 3.25rem repeat(var(--agenda-week-days, 7), minmax(var(--agenda-week-column-min, 13.75rem), 1fr)); }
.agenda-week-card { container-type: inline-size; padding-inline: .38rem; }
@container (max-width: 125px) {
  .agenda-week-card strong { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow-wrap: anywhere; white-space: normal; }
  .agenda-week-card.is-compact strong { font-size: .64rem; line-height: 1.13; }
  .agenda-week-card.is-compact span, .agenda-week-card.is-compact small { display: none; }
  .agenda-week-card.is-short small { display: none; }
}

.agenda-week-now {
  align-items: center;
  display: flex;
  left: 0;
  pointer-events: none;
  position: absolute;
  right: 0;
  transform: translateY(-1px);
  z-index: 6;
}
.agenda-week-now span {
  background: #fff;
  color: #ef365f;
  font-size: 0.56rem;
  font-variant-numeric: tabular-nums;
  font-weight: 760;
  padding: 0 0.35rem 0 0.25rem;
}
.agenda-week-now b { background: #ef476f; height: 0.34rem; width: 0.34rem; }
.agenda-week-now i { background: #ef476f; height: 1px; opacity: 0.76; }

@media (max-width: 720px) {
  .agenda-month-entry > * { display: none; }
  .agenda-week-view { --agenda-week-header-height: 3.1rem; }
  .agenda-week-now { display: none; }
}

/* Clinic business hours and schedule exceptions */
.settings-hours { gap: 0; padding: 1.5rem; }
.settings-hours__intro { padding-bottom: 1rem; }
.settings-hours__intro h2 { margin: .25rem 0 .35rem; }
.settings-hours__intro p:not(.eyebrow) { color: var(--text-muted, #77728f); margin: 0; }
.settings-hours__row { align-items: start; border-top: 1px solid #ece9f5; display: grid; grid-template-columns: minmax(11rem, .38fr) minmax(0, 1fr); gap: 1.1rem; min-height: 0; padding: 1rem 0; }
.settings-hours__row:first-of-type { border-top: 0; }
.settings-hours__day { align-items: center; display: flex; justify-content: space-between; gap: .75rem; min-height: 2.25rem; }
.settings-hours__day strong { color: #26233d; font-size: .9rem; }
.settings-hours__row.is-closed .settings-hours__day strong { color: #85809d; }
.settings-hours__intervals { display: flex; align-items: center; flex-wrap: wrap; gap: .7rem 1rem; }
.settings-hours__interval-list { display: grid; gap: .5rem; }
.settings-hours__interval { align-items: center; display: flex; gap: .5rem; }
.settings-hours__interval input { border: 1px solid #ddd9ea; border-radius: .55rem; color: #38334e; font: inherit; min-height: 2.25rem; padding: 0 .55rem; width: 8.25rem; }
.settings-hours__interval > span { color: #8b86a2; font-size: .8rem; }
.settings-hours__remove { align-items: center; background: transparent; border: 0; color: #a39db8; cursor: pointer; display: inline-flex; font-size: 1.25rem; height: 2rem; justify-content: center; width: 2rem; }
.settings-hours__remove:disabled { cursor: not-allowed; opacity: .35; }
.settings-hours__add { background: transparent; border: 0; color: #7045ed; cursor: pointer; font-size: .78rem; font-weight: 700; padding: .35rem 0; }
.settings-hours__add:disabled { cursor: not-allowed; opacity: .5; }
.settings-hours__closed-copy { color: #9a95ad; font-size: .82rem; margin: .65rem 0; }
.settings-hours__footer { align-items: center; border-top: 1px solid #ece9f5; display: flex; justify-content: flex-end; margin-top: .25rem; padding-top: 1.25rem; }
.settings-hours__unconfigured { color: #8b86a2; padding: 1rem 0; }
.settings-hours .settings-switch { align-items: center; color: #77728f; display: inline-flex; gap: .45rem; white-space: nowrap; }
.settings-hours .settings-switch input { appearance: none; background: #d9d6e4; border: 0; border-radius: 999px; cursor: pointer; height: 1.25rem; margin: 0; position: relative; transition: background .15s ease; width: 2.25rem; }
.settings-hours .settings-switch input::after { background: #fff; border-radius: 50%; box-shadow: 0 1px 3px rgb(29 23 70 / 18%); content: ""; height: .95rem; left: .15rem; position: absolute; top: .15rem; transition: transform .15s ease; width: .95rem; }
.settings-hours .settings-switch input:checked { background: #7650ee; }
.settings-hours .settings-switch input:checked::after { transform: translateX(1rem); }
.settings-hours .settings-switch input:focus-visible { outline: 3px solid rgb(118 80 238 / 22%); outline-offset: 2px; }
.settings-hours .settings-switch span { font-size: .75rem; font-weight: 700; }
.settings-hours__row.is-open .settings-switch span { color: #159447; }

.agenda-day-view { --agenda-day-timeline-height: 832px; }
.agenda-time-axis, .agenda-day-slots { height: var(--agenda-day-timeline-height); min-height: var(--agenda-day-timeline-height); }
.agenda-day-slots, .agenda-week-column__body { position: relative; }
.agenda-slot, .agenda-week-gridline { position: relative; z-index: 1; }
.agenda-outside-hours-band { background: repeating-linear-gradient(135deg, rgb(119 108 154 / 4%), rgb(119 108 154 / 4%) 8px, rgb(119 108 154 / 7%) 8px, rgb(119 108 154 / 7%) 9px); left: 0; pointer-events: none; position: absolute; right: 0; z-index: 0; }
.agenda-closed-day-notice { background: rgb(255 255 255 / 86%); border: 1px solid #e3deef; border-radius: 999px; color: #89829e; font-size: .75rem; left: 50%; padding: .45rem .8rem; pointer-events: none; position: absolute; top: 1.25rem; transform: translateX(-50%); white-space: nowrap; z-index: 2; }
.agenda-week-column.is-closed .agenda-week-column__heading { background: #faf8fd; }
.agenda-week-column__heading small { color: #938ca7; font-size: .58rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.agenda-month-cell.is-closed { background: linear-gradient(135deg, rgb(119 108 154 / 4%), rgb(255 255 255 / 0%)); }
.agenda-month-cell__closed { color: #9b95ac; display: block; font-size: .55rem; font-weight: 700; letter-spacing: .04em; margin-bottom: .2rem; text-transform: uppercase; }

.outside-business-hours-dialog { background: #fff; border: 1px solid #e7e2f1; border-radius: 1rem; box-shadow: 0 1.5rem 4rem rgb(30 20 70 / 20%); max-width: 28rem; padding: 1.5rem; width: calc(100vw - 2rem); }
.outside-business-hours-dialog h2 { color: #27233f; font-size: 1.1rem; margin: 0 0 .55rem; }
.outside-business-hours-dialog p { color: #77728f; font-size: .86rem; line-height: 1.5; margin: 0; }
.outside-business-hours-dialog__explanation { background: #faf8ff; border-radius: .65rem; color: #756c91 !important; margin-top: 1rem !important; padding: .75rem; }
.outside-business-hours-dialog__actions { display: flex; gap: .65rem; justify-content: flex-end; margin-top: 1.25rem; }
.outside-business-hours-dialog__actions button { border: 1px solid #e0dced; border-radius: .6rem; cursor: pointer; font: inherit; font-size: .8rem; font-weight: 700; min-height: 2.45rem; padding: 0 .9rem; }
.outside-business-hours-dialog__actions button:first-child { background: #fff; color: #68617f; }
.outside-business-hours-dialog__actions button:last-child { background: #7045ed; border-color: #7045ed; color: #fff; }
.appointment-completion-dialog { background: #fff; border: 1px solid #e7e2f1; border-radius: 1rem; box-shadow: 0 1.5rem 4rem rgb(30 20 70 / 20%); max-width: 28rem; padding: 1.5rem; position: relative; width: calc(100vw - 2rem); }
.appointment-completion-dialog h2 { color: #27233f; font-size: 1.1rem; margin: 0 0 .8rem; }
.appointment-completion-dialog > p { color: #6d6680; display: grid; font-size: .84rem; gap: .2rem; margin: 0 0 1.25rem; }
.appointment-completion-dialog > p strong { color: #3d3650; }
.appointment-completion-dialog form { display: grid; gap: 1rem; }
.appointment-completion-dialog__amount { align-items: center; background: #faf8ff; border: 1px solid #ebe5fa; border-radius: .7rem; color: #625a75; display: flex; font-size: .82rem; justify-content: space-between; padding: .85rem; }
.appointment-completion-dialog__amount strong { color: #6945c4; font-size: 1rem; }
.appointment-completion-dialog__error { color: #b43c50; font-size: .78rem; margin: 0; }
.appointment-completion-dialog footer { display: flex; gap: .65rem; justify-content: flex-end; }
.appointment-completion-dialog footer .button { font-size: .8rem; min-height: 2.45rem; }

/* Appointment hover summary: compact, data-first preview anchored to the appointment. */
.agenda-event-hover-card {
  align-items: stretch;
  background: #fff;
  border: 1px solid #e5e0f0;
  border-radius: 1.15rem;
  box-shadow: 0 1.15rem 3rem rgb(46 35 86 / 18%);
  display: grid;
  gap: 0;
  padding: 1.15rem;
  width: min(26rem, calc(100vw - 1.5rem));
}
.agenda-event-hover-summary__header { align-items: flex-start; display: flex; gap: 1rem; justify-content: space-between; }
.agenda-event-hover-summary__heading { align-items: flex-start; display: flex; gap: .85rem; min-width: 0; }
.agenda-event-hover-summary__heading > span:last-child { display: grid; gap: .12rem; min-width: 0; }
.agenda-event-hover-summary__heading strong { color: #15142a; font-size: 1.15rem; line-height: 1.2; }
.agenda-event-hover-summary__heading small { color: #605a78; font-size: .78rem; line-height: 1.35; }
.agenda-event-hover-summary__calendar { align-items: center; background: #f0eaff; border-radius: .8rem; color: #7045ed; display: inline-flex; flex: 0 0 3rem; height: 3rem; justify-content: center; width: 3rem; }
.agenda-event-hover-summary__calendar svg { height: 1.55rem; width: 1.55rem; }
.agenda-event-hover-summary__status { align-items: center; border-radius: 999px; display: inline-flex; flex: 0 0 auto; font-size: .75rem; font-weight: 750; gap: .42rem; padding: .55rem .7rem; white-space: nowrap; }
.agenda-event-hover-summary__status i { background: currentColor; border-radius: 50%; height: .55rem; width: .55rem; }
.agenda-event-hover-summary__status.agenda-status--agendado { background: #eee9ff; color: #6549bd; }
.agenda-event-hover-summary__status.agenda-status--confirmado { background: #e5f5eb; color: #287b4c; }
.agenda-event-hover-summary__status.agenda-status--remarcado { background: #fff0d6; color: #a3650d; }
.agenda-event-hover-summary__status.agenda-status--cancelado { background: #fff0f3; color: #c73d5c; }
.agenda-event-hover-summary__status.agenda-status--nao-compareceu { background: #f2f3f5; color: #687084; }
.agenda-event-hover-summary__status.agenda-status--concluido { background: #e7f4ea; color: #38754b; }
.agenda-event-hover-summary__divider { border-top: 1px solid #ece8f3; margin: 1rem 0 .95rem; }
.agenda-event-hover-summary__details { display: grid; gap: .85rem; margin: 0; }
.agenda-event-hover-summary__detail { align-items: center; display: grid; gap: .85rem; grid-template-columns: minmax(7rem, 8.1rem) minmax(0, 1fr); min-width: 0; }
.agenda-event-hover-summary__detail dt { align-items: center; color: #5d5873; display: flex; font-size: .78rem; gap: .5rem; min-width: 0; }
.agenda-event-hover-summary__detail dt svg { color: #7045ed; flex: 0 0 1.3rem; height: 1.3rem; width: 1.3rem; }
.agenda-event-hover-summary__detail dd { align-items: center; color: #18162d; display: flex; font-size: .84rem; gap: .55rem; margin: 0; min-width: 0; }
.agenda-event-hover-summary__detail dd strong { font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.agenda-event-hover-summary__avatar { align-items: center; background: #eee9ff; border-radius: 50%; color: #6549bd; display: inline-flex; flex: 0 0 2.1rem; font-size: .63rem; font-style: normal; font-weight: 800; height: 2.1rem; justify-content: center; width: 2.1rem; }
.agenda-event-hover-summary__avatar--professional { background: #f0f3ff; color: #4772cb; }
.agenda-event-hover-summary__whatsapp { align-items: center; background: transparent; border: 0; color: #25d366; cursor: pointer; display: inline-flex; flex: 0 0 1.4rem; justify-content: center; margin-left: auto; padding: .03rem; }
.agenda-event-hover-summary__whatsapp svg { display: block; height: 1.35rem; width: 1.35rem; }
button.agenda-event-hover-summary__whatsapp:hover { color: #17b95b; transform: scale(1.08); }
button.agenda-event-hover-summary__whatsapp:focus-visible { border-radius: 50%; outline: 2px solid #6549bd; outline-offset: 2px; }
.agenda-event-hover-summary__detail--notes { align-items: start; }
.agenda-event-hover-summary__detail--notes dd { align-items: start; color: #6c6783; line-height: 1.45; }
.agenda-event-hover-summary__detail--notes dd span { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.agenda-event-hover-card footer { display: grid; gap: .75rem; grid-template-columns: 1fr 1fr; margin-top: 1.1rem; padding-top: 0; }
.agenda-event-hover-card footer button { align-items: center; border: 1px solid #ebe8f1; border-radius: .75rem; display: inline-flex; font-size: .85rem; font-weight: 750; justify-content: center; min-height: 3rem; padding: 0 .8rem; }
.agenda-event-hover-card footer button:first-child { background: #fafafd; color: #403a58; }
.agenda-event-hover-card footer button:last-child { background: #7045ed; border-color: #7045ed; color: #fff; }
.agenda-event-hover-card footer button:focus-visible { outline: 3px solid rgb(112 69 237 / 24%); outline-offset: 2px; }

@media (max-width: 720px) {
  .agenda-event-hover-card { padding: .9rem; width: calc(100vw - 1rem); }
  .agenda-event-hover-summary__detail { gap: .6rem; grid-template-columns: 6.6rem minmax(0, 1fr); }
  .agenda-event-hover-summary__status { font-size: .68rem; padding: .45rem .55rem; }
}

@media (max-width: 760px) {
  .settings-hours { padding: 1rem; }
  .settings-hours__row { grid-template-columns: 1fr; }
  .settings-hours__day { align-items: flex-start; }
  .settings-hours__interval input { width: 7.5rem; }
}

/* Appointment details drawer: operational layer between hover preview and edit form. */
.agenda-event-drawer-layer:has(.agenda-appointment-drawer) .agenda-event-drawer__backdrop {
  backdrop-filter: blur(1px);
  background: rgb(34 28 50 / 18%);
}
.agenda-event-drawer.agenda-appointment-drawer {
  grid-template-rows: auto minmax(0, 1fr) auto;
  max-width: 27.5rem;
  width: min(100%, 27.5rem);
}
.agenda-appointment-drawer > header {
  min-height: 4.25rem;
  padding: 1rem 1.5rem;
}
.agenda-appointment-drawer > header h2 {
  color: #171428;
  font-size: 1rem;
  font-weight: 760;
  letter-spacing: -.015em;
}
.agenda-appointment-drawer > header button {
  border-radius: .55rem;
  color: #5b5472;
  cursor: pointer;
  font-size: 1.4rem;
}
.agenda-appointment-drawer > header button:hover { background: #f6f3fc; }
.agenda-appointment-drawer .agenda-event-drawer__body {
  align-content: start;
  gap: 1.2rem;
  overscroll-behavior: contain;
  padding: 1.25rem 1.5rem 1.5rem;
}
.agenda-appointment-drawer__summary {
  align-items: flex-start;
  display: grid;
  gap: 1rem;
  grid-template-columns: 4rem minmax(0, 1fr);
}
.agenda-appointment-drawer__calendar {
  align-items: center;
  background: #f0eaff;
  border-radius: .85rem;
  color: #7244eb;
  display: flex;
  height: 4rem;
  justify-content: center;
  width: 4rem;
}
.agenda-appointment-drawer__calendar svg { height: 1.8rem; width: 1.8rem; }
.agenda-appointment-drawer__summary > div { display: grid; gap: .2rem; padding-top: .15rem; }
.agenda-appointment-drawer__summary h3 { color: #151229; font-size: 1.08rem; line-height: 1.2; margin: 0; }
.agenda-appointment-drawer__summary p { color: #65607d; font-size: .82rem; line-height: 1.35; margin: 0; }
.agenda-appointment-drawer__summary strong { color: #39334f; font-size: .82rem; line-height: 1.35; }
.agenda-appointment-drawer__status { display: grid; gap: .45rem; }
.agenda-appointment-drawer__status > span { color: #332d47; font-size: .78rem; font-weight: 600; }
.agenda-appointment-drawer__status .appointment-status-trigger {
  border-color: #dcd7e8;
  border-radius: .65rem;
  font-size: .83rem;
  min-height: 3rem;
  padding-inline: .85rem;
}
.agenda-appointment-drawer__status .appointment-status-indicator {
  box-shadow: 0 0 0 .28rem color-mix(in srgb, currentColor 13%, transparent);
  margin-left: .12rem;
}
.agenda-appointment-drawer__status .appointment-status-picker { z-index: 60; }
.agenda-appointment-drawer__status .appointment-status-picker button { min-height: 2.35rem; }
.agenda-appointment-drawer__status .appointment-status-picker button:disabled { color: #aaa4b2; cursor: not-allowed; opacity: .58; }
.agenda-appointment-drawer__status .appointment-status-picker button:disabled:hover { background: transparent; }
.agenda-appointment-drawer__divider { border-top: 1px solid #ebe7f0; }
.agenda-appointment-drawer__details,
.agenda-appointment-drawer__metrics,
.agenda-appointment-drawer__notes { display: grid; gap: 1.2rem; margin: 0; }
.agenda-appointment-drawer__details > div {
  align-items: start;
  display: grid;
  gap: .7rem;
  grid-template-columns: 7.3rem minmax(0, 1fr);
}
.agenda-appointment-drawer__details dt,
.agenda-appointment-drawer__metrics dt,
.agenda-appointment-drawer__notes dt {
  align-items: center;
  color: #5b5570;
  display: flex;
  font-size: .78rem;
  gap: .55rem;
  min-width: 0;
}
.agenda-appointment-drawer__details dt svg,
.agenda-appointment-drawer__metrics dt svg,
.agenda-appointment-drawer__notes dt svg {
  flex: 0 0 1.35rem;
  height: 1.35rem;
  width: 1.35rem;
}
.agenda-appointment-drawer__details dd { margin: 0; min-width: 0; }
.agenda-appointment-drawer__person dd { align-items: center; display: grid; gap: .65rem; grid-template-columns: 2.75rem minmax(0, 1fr) auto; }
.agenda-appointment-drawer__person dd > span:nth-child(2) { display: grid; gap: .15rem; min-width: 0; }
.agenda-appointment-drawer__person strong,
.agenda-appointment-drawer__procedures strong { color: #17142a; font-size: .83rem; font-weight: 740; line-height: 1.3; }
.agenda-appointment-drawer__person small,
.agenda-appointment-drawer__procedures small { color: #716a88; font-size: .73rem; line-height: 1.35; }
.agenda-appointment-drawer__avatar {
  align-items: center;
  background: #eee9ff;
  border-radius: 50%;
  color: #6649bc;
  display: flex;
  font-size: .65rem;
  font-weight: 800;
  height: 2.75rem;
  justify-content: center;
  overflow: hidden;
  position: relative;
  width: 2.75rem;
}
.agenda-appointment-drawer__avatar img { object-fit: cover; }
.agenda-appointment-drawer__avatar.is-professional { background: #eef2ff; color: #496cc0; }
.agenda-appointment-drawer__whatsapp {
  align-items: center;
  background: transparent;
  border: 0;
  color: #18b85b;
  cursor: pointer;
  display: flex;
  justify-content: center;
  padding: .2rem;
}
.agenda-appointment-drawer__whatsapp svg { height: 1.45rem; width: 1.45rem; }
.agenda-appointment-drawer__whatsapp:hover { color: #0d9d48; transform: scale(1.06); }
.agenda-appointment-drawer__procedures dd { display: grid; gap: .7rem; }
.agenda-appointment-drawer__procedures dd > span { display: grid; gap: .16rem; }
.agenda-appointment-drawer__metrics > div {
  align-items: center;
  display: grid;
  gap: .7rem;
  grid-template-columns: minmax(0, 1fr) auto;
}
.agenda-appointment-drawer__metrics dd { color: #17142a; font-size: .8rem; font-weight: 650; margin: 0; text-align: right; }
.agenda-appointment-drawer__notes > div { display: grid; gap: .7rem; grid-template-columns: 7.3rem minmax(0, 1fr); }
.agenda-appointment-drawer__notes dd {
  color: #706984;
  display: -webkit-box;
  font-size: .76rem;
  line-height: 1.5;
  margin: 0;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
}
.agenda-appointment-drawer__footer {
  align-items: center;
  background: rgb(255 255 255 / 96%);
  border-top: 1px solid #ebe7f0;
  display: grid;
  gap: .7rem;
  grid-template-columns: minmax(0, 1fr) 3.2rem;
  padding: .95rem 1.5rem max(.95rem, env(safe-area-inset-bottom));
  position: relative;
}
.agenda-appointment-drawer__edit,
.agenda-appointment-drawer__menu-trigger {
  align-items: center;
  border: 0;
  border-radius: .68rem;
  cursor: pointer;
  display: flex;
  font: inherit;
  font-size: .82rem;
  font-weight: 730;
  justify-content: center;
  min-height: 3.2rem;
}
.agenda-appointment-drawer__edit { background: linear-gradient(135deg, #7042e7, #8246f2); color: #fff; gap: .55rem; }
.agenda-appointment-drawer__edit:hover { box-shadow: 0 .55rem 1.4rem rgb(111 66 231 / 22%); transform: translateY(-1px); }
.agenda-appointment-drawer__edit svg { height: 1.15rem; width: 1.15rem; }
.agenda-appointment-drawer__menu { position: relative; }
.agenda-appointment-drawer__menu-trigger { background: #f1ebff; color: #5c4b82; width: 100%; }
.agenda-appointment-drawer__menu-trigger svg { height: 1.3rem; width: 1.3rem; }
.agenda-appointment-drawer__menu-popover {
  background: #fff;
  border: 1px solid #e6e1ed;
  border-radius: .75rem;
  bottom: calc(100% + .55rem);
  box-shadow: 0 1rem 2.5rem rgb(41 31 63 / 18%);
  display: grid;
  min-width: 14.5rem;
  overflow: hidden;
  padding: .35rem;
  position: absolute;
  right: 0;
  z-index: 65;
}
.agenda-appointment-drawer__menu-popover button {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: .5rem;
  color: #423b54;
  cursor: pointer;
  display: flex;
  font: inherit;
  font-size: .76rem;
  gap: .65rem;
  min-height: 2.55rem;
  padding: .55rem .65rem;
  text-align: left;
}
.agenda-appointment-drawer__menu-popover button:hover { background: #f7f4fb; }
.agenda-appointment-drawer__menu-popover button.is-danger { border-top: 1px solid #eeeaf2; color: #e13e5c; }
.agenda-appointment-drawer__menu-popover button.is-danger:hover { background: #fff2f4; }
.agenda-appointment-drawer__menu-popover svg { height: 1.05rem; width: 1.05rem; }
.agenda-appointment-drawer button:focus-visible { outline: 3px solid rgb(112 69 237 / 24%); outline-offset: 2px; }

@media (max-width: 720px) {
  .agenda-event-drawer.agenda-appointment-drawer { height: min(92dvh, 48rem); max-width: none; width: 100%; }
  .agenda-appointment-drawer > header,
  .agenda-appointment-drawer .agenda-event-drawer__body,
  .agenda-appointment-drawer__footer { padding-left: 1rem; padding-right: 1rem; }
  .agenda-appointment-drawer__details > div,
  .agenda-appointment-drawer__notes > div { grid-template-columns: 6.4rem minmax(0, 1fr); }
}

.agenda-month-empty { color: #766f80; margin: 0; padding: 2rem; text-align: center; }
