/* Editorial title emphasis shared by client and practitioner interfaces. */
.ui-emphasis-title { font-weight: var(--font-weight-regular, 400); }
.ui-emphasis-title strong { color: var(--color-accent-strong); font-weight: var(--font-weight-title, 700); }
.client-portal-question h2:has(> strong) { font-weight: var(--font-weight-regular, 400); }
.client-portal-question h2 > strong { color: var(--color-accent-strong); font-weight: var(--font-weight-title, 700); }
[data-animal-vaccination-reminder-date] { box-sizing: border-box; max-width: 100%; width: min(100%, 18ch); }

.card,
.hero-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--ui-radius-card, var(--radius));
  box-shadow:
    var(--ui-shadow-card, 0 7px 0 rgb(var(--color-text-rgb) / 0.025),
    0 20px 44px rgb(var(--color-primary-rgb) / 0.1));
  padding: var(--ui-space-6, 24px);
}

.session-detail-actions{justify-content:flex-end;max-width:34rem}
.session-publication-status{cursor:default;pointer-events:none;white-space:nowrap}
.btn-session-publish{background:var(--ui-action-important, #d7593d);border-color:var(--ui-action-important-hover, #ad3f2a);box-shadow:var(--ui-shadow-control, 0 10px 24px rgb(215 89 61 / .3));color:#fff}
.btn-session-publish:hover,.btn-session-publish:focus-visible{background:var(--ui-action-important-hover, #b94630);border-color:var(--ui-action-important-hover, #923321);box-shadow:var(--ui-shadow-control, 0 14px 30px rgb(185 70 48 / .34));color:#fff}
.session-detail-meta-row{align-items:center;display:flex;flex-wrap:wrap;gap:12px 18px;grid-column:1 / -1;justify-content:space-between;margin-top:4px;min-width:0}
.session-detail-meta-row .detail-pills{margin-top:0}
.session-report-required-notice{background:var(--ui-warning-surface);border:1px solid var(--ui-warning-border);border-radius:var(--ui-radius-control,10px);color:var(--ui-warning-text);font-size:var(--font-size-table,13px);font-weight:var(--font-weight-label,800);margin:0;max-width:34rem;padding:9px 12px}
@media(max-width:760px){.session-detail-actions{justify-content:flex-start;max-width:none}.session-detail-meta-row{align-items:flex-start;flex-direction:column}.session-report-required-notice{max-width:100%}}

.questionnaire-editor-sheet__footer>span{margin-left:0}
.questionnaire-add-page__trigger{background:var(--color-highlight-strong);border-color:var(--color-highlight-strong);box-shadow:0 4px 10px rgb(var(--color-highlight-rgb)/.25);color:var(--color-surface)}.questionnaire-add-page[open] .questionnaire-add-page__trigger,.questionnaire-add-page__trigger:hover,.questionnaire-add-page__trigger:focus-visible{background:var(--color-primary-deep);border-color:var(--color-primary-deep);box-shadow:0 0 0 3px var(--color-highlight-soft),0 5px 12px rgb(var(--color-highlight-rgb)/.28);color:var(--color-surface)}

/* Fiche animal : structure explicite, sans superposition de l'aperçu 3D. */
.animal-form-section--identity {
    container-name: animal-identity;
    container-type: inline-size;
}
.animal-identity-grid{
    align-items:stretch;
    display:grid;
    gap:14px;
    grid-template-columns:minmax(0,1fr) 190px;
    min-width:0;
}
.animal-identity-fields{
    align-content:start;
    display:grid;
    gap:12px;
    grid-template-columns:repeat(3,minmax(0,1fr));
    min-width:0;
}
.animal-identity-fields>.field{
    align-self:start;
    margin:0;
    min-width:0;
    width:100%;
}
.animal-identity-grid>.animal-horse-model-thumbnail{
    grid-template-rows:minmax(0,1fr) auto;
    height:100%;
    min-height:174px;
    width:100%;
}
.animal-identity-grid .animal-horse-model-thumbnail__canvas{min-height:0}
.animal-identity-grid .animal-horse-model-thumbnail figcaption{min-height:36px}

@container animal-identity (max-width:760px){
    .animal-identity-grid{grid-template-columns:minmax(0,1fr)}
    .animal-identity-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
    .animal-identity-grid>.animal-horse-model-thumbnail{
        grid-template-rows:170px auto;
        height:auto;
        min-height:0;
    }
}
@container animal-identity (max-width:520px){
    .animal-identity-fields{grid-template-columns:minmax(0,1fr)}
    .animal-identity-grid>.animal-horse-model-thumbnail{grid-template-rows:160px auto}
}
.questionnaire-item-card.is-multi-selected{background:var(--color-highlight-soft)!important;border:2px solid var(--color-highlight)!important;box-shadow:0 0 0 3px var(--color-highlight-soft),0 8px 20px rgb(var(--color-highlight-rgb)/.18)!important;position:relative;z-index:7}
.questionnaire-item-card.is-multi-selected::after{align-items:center;background:var(--color-highlight-strong);border:2px solid var(--color-surface);border-radius:50%;color:var(--color-surface);content:"✓";display:flex;font-size:12px;font-weight:900;height:23px;justify-content:center;pointer-events:none;position:absolute;right:7px;top:7px;width:23px;z-index:9}
.questionnaire-item-card.is-copied-source:not(.is-multi-selected){box-shadow:inset 0 0 0 2px rgb(var(--color-highlight-rgb)/.5)!important}
.questionnaire-item-card.is-paste-target{box-shadow:0 0 0 4px rgba(55,109,112,.25),inset 0 0 0 2px var(--color-primary)!important;position:relative;z-index:8}
.questionnaire-item-card.is-paste-target::before{background:var(--color-primary);border-radius:7px;color:#fff;content:"Coller ici";font-size:11px;font-weight:800;letter-spacing:.02em;padding:4px 7px;pointer-events:none;position:absolute;right:8px;top:8px;z-index:10}
.questionnaire-shortcut-notice{background:#2d595c;border:1px solid #244a4c;border-radius:10px;bottom:22px;box-shadow:0 12px 30px rgba(22,48,50,.28);color:#fff;font-size:var(--font-size-help, 14px);font-weight:var(--font-weight-label, 700);line-height:1.35;max-width:min(420px,calc(100vw - 32px));opacity:0;padding:11px 14px;pointer-events:none;position:fixed;right:22px;transform:translateY(12px);transition:opacity .18s ease,transform .18s ease;z-index:200}
.questionnaire-shortcut-notice.is-visible{opacity:1;transform:translateY(0)}
@media(max-width:640px){.questionnaire-shortcut-notice{bottom:14px;left:16px;right:16px}}

.hero-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-color: rgb(var(--color-primary-rgb) / 0.2);
  box-shadow:
    var(--ui-shadow-card, 0 24px 54px rgb(var(--color-primary-rgb) / 0.13),
    0 3px 0 rgb(var(--color-secondary-rgb) / 0.22));
}

.hero-card::before {
  position: absolute;
  inset: 0 0 auto;
  z-index: 2;
  height: 7px;
  background: var(--color-primary);
  content: "";
}

.hero-card > * {
  position: relative;
  z-index: 1;
}

.card-section {
  padding: 22px;
}

/* Référentiel en lecture seule des besoins nutritionnels équins. */
.equine-requirements-page {
  display: grid;
  gap: 20px;
}

.equine-requirements-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.equine-requirements-hero h1,
.equine-requirements-hero p,
.equine-requirements-filters h2,
.equine-requirements-source h2,
.equine-requirements-table-card h2,
.equine-requirements-table-card p {
  margin: 0;
}

.equine-requirements-hero p {
  max-width: 720px;
  margin-top: 7px;
  color: var(--color-text-soft);
}

.equine-requirements-hero__summary {
  display: grid;
  flex: 0 0 auto;
  min-width: 142px;
  padding: 14px 18px;
  border: 1px solid rgb(var(--color-accent-rgb) / 0.35);
  border-radius: 16px;
  background: var(--color-accent-faint);
  color: var(--color-primary-strong);
  text-align: center;
}

.equine-requirements-hero__summary strong {
  color: var(--color-accent);
  font-size: var(--font-size-body, 1.75rem);
  line-height: 1;
}

.equine-requirements-hero__summary span {
  margin-top: 5px;
  font-size: var(--font-size-table, 0.78rem);
  font-weight: var(--font-weight-label, 700);
}

.equine-requirements-filters > header,
.equine-requirements-table-card > header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 16px;
}

.equine-requirements-filters form {
  display: grid;
  grid-template-columns: minmax(220px, 1.4fr) minmax(170px, 0.8fr) auto;
  align-items: end;
  gap: 14px;
}

.equine-requirements-filters__actions {
  display: flex;
  align-items: center;
  gap: 8px;
  padding-bottom: 1px;
}

.equine-requirements-count,
.equine-requirements-page-number,
.equine-requirements-dm {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  border-radius: 999px;
  font-size: var(--font-size-table, 0.76rem);
  font-weight: var(--font-weight-label, 800);
}

.equine-requirements-count {
  padding: 7px 11px;
  background: var(--color-identity-faint);
  color: var(--color-primary-strong);
}

.equine-requirements-source {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 16px;
  border-color: rgb(var(--color-secondary-rgb) / 0.3);
}

.equine-requirements-source__index {
  display: grid;
  width: 45px;
  height: 45px;
  place-items: center;
  border-radius: 13px;
  background: var(--color-secondary);
  color: var(--color-surface);
  font-weight: var(--font-weight-label, 900);
}

.equine-requirements-source p {
  max-width: 900px;
  margin: 5px 0 0;
  color: var(--color-text-soft);
}
.client-portal-directory-filters{align-items:end;background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr)) auto;margin:16px 0;padding:16px}.client-portal-directory-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(320px,430px))}.client-portal-directory-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;display:grid;gap:11px;padding:18px}.client-portal-directory-card h2{color:var(--color-primary);font-size:var(--font-size-card-title, 1.15rem);margin:0}.client-portal-directory-card h2 a{color:inherit;text-decoration:none}.client-portal-directory-card h2 a:hover,.client-portal-directory-card h2 a:focus-visible{color:var(--color-secondary-deep);outline:0}.client-portal-directory-card__city{color:var(--color-text-soft);margin:0}.client-portal-directory-card__practices{display:flex;flex-wrap:wrap;gap:7px;min-height:27px}.client-portal-directory-card__practices span{background:#edf4ee;border:1px solid #c8ddca;border-radius:999px;color:#315c43;font-size:var(--font-size-table, .78rem);font-weight:var(--font-weight-label, 800);padding:5px 9px}.client-portal-directory-card__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:3px}.client-portal-directory-card__actions .btn{flex:1 1 0;min-width:0;padding:.6rem .7rem;text-align:center;white-space:nowrap}@media(max-width:800px){.client-portal-directory-filters{grid-template-columns:minmax(0,1fr)}.client-portal-directory-filters .btn{width:100%}.client-portal-directory-grid{grid-template-columns:minmax(0,1fr)}}
.practitioner-directory-page .client-portal-directory-card__actions .btn{flex:0 0 auto;width:auto}.practitioner-directory-page .client-portal-directory-grid{justify-content:start}.practitioner-directory-page .client-portal-directory-filters{margin-top:0}
.client-portal-directory-card__identity{align-items:center;display:grid;gap:10px;grid-template-columns:56px minmax(0,1fr) auto}.client-portal-directory-card__identity .badge{font-size:var(--font-size-caption, .62rem);padding:var(--ui-space-1, 4px) 7px}.client-portal-directory-card__identity h2{margin-top:3px}.client-portal-directory-card__photo{align-items:center;background:#fff;border:3px solid #fff;border-radius:14px;box-shadow:0 5px 13px rgb(var(--color-primary-rgb)/.14);color:var(--color-primary);display:flex;font-family:Georgia,serif;font-size:1.15rem;font-weight:900;height:56px;justify-content:center;overflow:hidden;width:56px}.client-portal-directory-card__photo img{height:100%;object-fit:cover;width:100%}.client-portal-directory-card__logo{align-items:center;background:#fff;border:1px solid var(--color-border);border-radius:9px;display:flex;height:43px;justify-content:center;overflow:hidden;padding:4px;width:58px}.client-portal-directory-card__logo img{height:100%;object-fit:contain;width:100%}.client-portal-directory-card__description{color:var(--color-text-soft);font-size:var(--font-size-table, .83rem);line-height:1.45;margin:0}.client-portal-description{min-width:0}.client-portal-description.is-collapsed [data-client-portal-description-text]{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}.client-portal-description__toggle{background:#fff1e9;border:1px solid #dc805d;border-radius:999px;color:#9a452d;cursor:pointer;font:inherit;font-size:var(--font-size-control, .76rem);font-weight:var(--font-weight-label, 900);margin:6px 0 0;padding:5px 9px;text-decoration:none}.client-portal-description__toggle:hover,.client-portal-description__toggle:focus-visible{background:var(--color-secondary);border-color:var(--color-secondary);color:var(--color-surface);outline:0}@media(max-width:480px){.client-portal-directory-card__identity{grid-template-columns:52px minmax(0,1fr)}.client-portal-directory-card__logo{grid-column:2;height:38px;justify-self:start;width:56px}}
.client-portal-appointments__list{display:grid;gap:12px;margin-top:18px}.client-portal-appointments__item{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-secondary);border-radius:14px;display:grid;gap:16px;grid-template-columns:150px minmax(0,1fr);padding:16px}.client-portal-appointments__item time{color:var(--color-primary);font-size:var(--font-size-help, .9rem);font-weight:var(--font-weight-label, 900)}.client-portal-appointments__item h2{color:var(--color-primary);font-size:var(--font-size-card-title, 1.06rem);margin:6px 0 3px}.client-portal-appointments__item p{color:var(--color-text-soft);margin:0}@media(max-width:560px){.client-portal-appointments__item{align-items:start;grid-template-columns:minmax(0,1fr)}}
.client-portal-practitioners-grid{grid-template-columns:minmax(0,1fr)}.client-portal-practitioner-card{align-items:start;display:grid;gap:18px;grid-template-columns:minmax(185px,.72fr) minmax(320px,1.28fr);min-width:0;width:100%}.client-portal-practitioner-card>.badge{grid-column:1/-1;justify-self:start}.client-portal-practitioner-card__identity{align-items:start;display:grid;gap:11px;grid-template-columns:56px minmax(0,1fr);min-width:0}.client-portal-practitioner-card__details{display:grid;gap:7px;min-width:0}.client-portal-practitioner-card__details p{margin:0}.client-portal-practitioner-card__description{color:var(--color-text-soft);font-size:var(--font-size-table, .78rem);line-height:1.42;max-width:48ch}.client-portal-practitioner-card__logo{grid-column:1/-1;justify-self:start}.client-portal-practitioner-card--pending{display:grid;grid-template-columns:minmax(0,1fr)}.client-portal-practitioner-card__animals{border-left:1px solid var(--color-border);display:grid;gap:11px;min-width:0;padding-left:18px}.client-portal-practitioner-card__animals header{display:grid;gap:4px;min-width:0}.client-portal-practitioner-card__animals h3{color:var(--color-primary);font-size:var(--font-size-card-title, .92rem);margin:0}.client-portal-practitioner-card__animals p{color:var(--color-text-soft);font-size:var(--font-size-table, .79rem);line-height:1.45;margin:0}.client-portal-practitioner-card__animal-list{display:grid;gap:8px;list-style:none;margin:0;min-width:0;padding:0}.client-portal-practitioner-card__animal-list li{align-items:center;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:10px;display:flex;gap:10px;justify-content:space-between;min-width:0;padding:9px 10px}.client-portal-practitioner-card__animal-list li>span{display:grid;gap:2px;min-width:0}.client-portal-practitioner-card__animal-list strong{color:var(--color-text);font-size:var(--font-size-table, .87rem);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.client-portal-practitioner-card__animal-list small{color:var(--color-text-soft);font-size:var(--font-size-help, .72rem);overflow-wrap:anywhere}.client-portal-practitioner-card__animal-list .btn{flex:0 0 auto}.client-portal-practitioner-card__animal-list .btn:disabled{cursor:not-allowed;opacity:.58}.client-portal-practitioner-card__empty{background:var(--color-surface-muted);border-radius:9px;padding:10px}.client-portal-link-animal-form{display:grid;gap:11px}.client-portal-link-animal-form__consent{align-items:flex-start;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:10px;cursor:pointer;display:flex;gap:10px;padding:11px}.client-portal-link-animal-form__consent input{accent-color:var(--color-primary);height:17px;margin:2px 0 0;width:17px}.client-portal-link-animal-form__consent span{color:var(--color-text);font-size:var(--font-size-table, .82rem);line-height:1.45}@media(max-width:680px){.client-portal-practitioner-card{grid-template-columns:minmax(0,1fr)}.client-portal-practitioner-card>.badge{grid-column:auto}.client-portal-practitioner-card__animals{border-left:0;border-top:1px solid var(--color-border);padding-left:0;padding-top:14px}}
.client-portal-link-animal-form__consents{border:0;display:grid;gap:9px;margin:0;padding:0}.client-portal-link-animal-form__consents legend{color:var(--color-primary);font-size:var(--font-size-label, .8rem);font-weight:var(--font-weight-label, 850);margin:0 0 2px;padding:0}.client-portal-consent-required{color:#a34f31!important;font-size:var(--font-size-table, .78rem)!important;font-weight:var(--font-weight-label, 750);margin:0!important}.client-portal-consent-required[hidden]{display:none}

.equine-requirements-table-card {
  min-width: 0;
  padding-right: 0;
  padding-left: 0;
  overflow: hidden;
}

.equine-requirements-table-card > header {
  padding: 0 22px;
}

.equine-requirements-table-card > header p {
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 0.84rem);
}

.equine-requirements-table-wrap {
  max-width: 100%;
  border-top: 1px solid var(--color-border);
  overflow-x: auto;
  overscroll-behavior-inline: contain;
}

.equine-requirements-table {
  width: max-content;
  min-width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-variant-numeric: tabular-nums;
}

.equine-requirements-table th,
.equine-requirements-table td {
  min-width: 70px;
  padding: 10px 9px;
  border-right: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  text-align: center;
  white-space: nowrap;
}

.equine-requirements-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--color-primary-strong);
  color: var(--color-surface);
  font-size: var(--font-size-table, 0.72rem);
  line-height: 1.15;
}

.equine-requirements-table thead th small {
  display: block;
  margin-top: 4px;
  color: rgb(255 255 255 / 0.72);
  font-size: var(--font-size-table, 0.66rem);
  font-weight: var(--font-weight-label, 600);
}

.equine-requirements-table thead th:first-child,
.equine-requirements-table tbody th {
  position: sticky;
  left: 0;
  min-width: 280px;
  max-width: 280px;
  text-align: left;
}

.equine-requirements-table thead th:first-child {
  z-index: 4;
}

.equine-requirements-table tbody th {
  z-index: 3;
  background-color: #fffdf9;
  background-clip: padding-box;
  white-space: normal;
  box-shadow: 10px 0 18px rgb(var(--color-text-rgb) / 0.12);
}

.equine-requirements-table tbody tr:nth-child(even) td {
  background: #f7f7f2;
}

.equine-requirements-table tbody tr:nth-child(even) th {
  background-color: #fffdf9;
}

.equine-requirements-table tbody th strong,
.equine-requirements-table tbody th span {
  display: block;
}

.equine-requirements-table tbody th strong {
  color: var(--color-primary-strong);
  font-size: var(--font-size-table, 0.82rem);
  line-height: 1.25;
}

.equine-requirements-table tbody th span {
  margin-top: 3px;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 0.7rem);
}

.equine-requirements-table td {
  color: var(--color-text);
  font-size: var(--font-size-table, 0.78rem);
}

.equine-requirements-dm {
  padding: 5px 8px;
  background: var(--color-identity-faint);
  color: var(--color-primary-strong);
}

.equine-requirements-page-number {
  padding: 5px 8px;
  background: var(--color-accent-faint);
  color: var(--color-accent-strong);
}

.equine-requirements-empty {
  display: grid;
  gap: 4px;
  margin: 0 22px 22px;
  padding: 22px;
  border: 1px dashed var(--color-border);
  border-radius: 14px;
  color: var(--color-text-soft);
  text-align: center;
}

.equine-requirements-empty strong {
  color: var(--color-primary-strong);
}

.equine-requirements-note {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: baseline;
  gap: 12px;
  padding: 13px 16px;
  border-left: 4px solid var(--color-accent);
  border-radius: 0 12px 12px 0;
  background: var(--color-accent-faint);
}

.equine-requirements-note p {
  margin: 0;
  color: var(--color-text-soft);
  font-size: var(--font-size-help, 0.84rem);
}

@media (max-width: 860px) {
  .equine-requirements-filters form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .equine-requirements-filters__actions {
    grid-column: 1 / -1;
  }
}

@media (max-width: 620px) {
  .equine-requirements-hero,
  .equine-requirements-filters > header,
  .equine-requirements-table-card > header {
    align-items: flex-start;
    flex-direction: column;
  }

  .equine-requirements-hero__summary {
    width: 100%;
  }

  .equine-requirements-filters form {
    grid-template-columns: minmax(0, 1fr);
  }

  .equine-requirements-filters__actions {
    grid-column: auto;
    flex-wrap: wrap;
  }

  .equine-requirements-table thead th:first-child,
  .equine-requirements-table tbody th {
    min-width: 210px;
    max-width: 210px;
  }

  .equine-requirements-note {
    grid-template-columns: minmax(0, 1fr);
  }
}

.client-portal-link-request{background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;margin-top:18px;padding:22px}.client-portal-link-request h2{color:var(--color-primary);margin:0 0 8px}.client-portal-link-request>p{color:var(--color-text-soft);margin:0 0 18px}.client-portal-animal-choices{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.client-portal-animal-choices label{align-items:center;border:1px solid var(--color-border);border-radius:12px;cursor:pointer;display:flex;gap:11px;padding:13px}.client-portal-animal-choices input{accent-color:var(--color-primary);height:18px;margin:0;width:18px}.client-portal-animal-choices label:has(input:checked){background:#edf4ee;border-color:#6f9b78}.client-portal-animal-choices strong,.client-portal-animal-choices small{display:block}.client-portal-animal-choices small{color:var(--color-text-soft);margin-top:3px}.client-portal-form-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin-top:20px}.badge--active{background:#e5f4e7!important;border-color:#9bcaa3!important;color:#246333!important}
.client-portal-animal-choices label.is-linked{background:#f2f3f3;border-color:#d8dddd;cursor:not-allowed;opacity:.62}.client-portal-animal-choices label.is-linked input{cursor:not-allowed}.client-portal-animal-choices__linked-status{color:#677274!important;font-weight:var(--font-weight-label, 700)}
.secondary-drawer__notification{align-items:center;background:#d7593d;border:2px solid var(--color-surface);border-radius:var(--ui-radius-pill, 999px);color:#fff;display:inline-flex;flex:0 0 auto;font-size:var(--font-size-caption, .69rem);font-weight:var(--font-weight-label, 850);height:22px;justify-content:center;line-height:1;min-width:22px;padding:0 5px}.client-identity{flex-wrap:wrap}

/* Brique questionnaire : une ration liée au catalogue alimentaire. */
.questionnaire-module-rest__nutrition-entry,
.questionnaire-nutrition-entry {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  margin-top: 10px;
}
.questionnaire-module-rest__nutrition-entry > div {
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: 8px 9px;
  border: 1px solid #d5cdd6;
  border-radius: 8px;
  background: #faf8fa;
}
.questionnaire-module-rest__nutrition-entry small { color: #817883; font-size: var(--font-size-help, .65rem); font-weight: var(--font-weight-label, 800); text-transform: uppercase; }
.questionnaire-module-rest__nutrition-entry span { overflow: hidden; color: #514a53; font-size: var(--font-size-table, .76rem); text-overflow: ellipsis; white-space: nowrap; }
.questionnaire-nutrition-entry { grid-template-columns: minmax(0, 1fr); padding: 12px; border: 1px solid #c8dad0; border-radius: 12px; background: #f7faf8; }
.questionnaire-nutrition-entry label { display: grid; gap: 5px; min-width: 0; color: #4f6459; font-size: var(--font-size-label, .72rem); font-weight: var(--font-weight-label, 850); }
.questionnaire-nutrition-entry__rows { display: grid; gap: 9px; }
.questionnaire-nutrition-entry__row { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.35fr) minmax(100px, .55fr) 38px 38px; align-items: end; gap: 9px; padding: 10px; border: 1px solid #d7e4dc; border-radius: 10px; background: #fff; }
.questionnaire-nutrition-entry__add { width: 38px; min-height: 40px; padding: 0; border: 1px solid #3f705d; border-radius: 8px; background: #3f705d; color: #fff; font: 900 1.25rem/1 sans-serif; cursor: pointer; }
.questionnaire-nutrition-entry__add:hover { background: #315f4d; }
.questionnaire-nutrition-entry__remove { width: 38px; min-height: 40px; border: 1px solid #d4afb2; border-radius: 8px; background: #fff7f7; color: #a34951; font: 800 1.15rem/1 sans-serif; cursor: pointer; }
.questionnaire-nutrition-entry__remove:hover { background: #fce9ea; }
.questionnaire-nutrition-entry select,
.questionnaire-nutrition-entry input { box-sizing: border-box; width: 100%; min-width: 0; min-height: 40px; padding: 8px 10px; border: 1px solid #c8d3cd; border-radius: 8px; background: #fff; color: #403941; font: inherit; }
.questionnaire-nutrition-entry__category { box-sizing: border-box; display: flex; align-items: center; width: 100%; min-height: 40px; padding: 8px 10px; border: 1px solid #c8d3cd; border-radius: 8px; background: #edf5f0; color: #315f4d; font-size: var(--font-size-table, .86rem); }
.questionnaire-nutrition-entry__unit { justify-self: start; padding: 2px 6px; border-radius: 5px; background: #edf5f0; color: #315f4d; font-size: var(--font-size-help, .7rem); line-height: 1.1; }
.questionnaire-custom-field-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.questionnaire-custom-field-actions button { min-height: 34px; padding: 6px 10px; border: 1px solid #bca9c1; border-radius: 7px; background: #fff; color: #5d4865; font: inherit; font-size: var(--font-size-control, .74rem); font-weight: var(--font-weight-label, 850); cursor: pointer; }
.questionnaire-custom-field-actions button:hover { background: #f0e9f2; border-color: #82658b; }
.questionnaire-custom-field-actions button.is-danger { border-color: #d9b2b0; color: #993f3b; }
.questionnaire-custom-field-actions button.is-danger:hover { background: #fceceb; border-color: #b95650; }
.questionnaire-nutrition-entry select:focus,
.questionnaire-nutrition-entry input:focus { border-color: #3f705d; box-shadow: 0 0 0 3px rgba(63, 112, 93, .14); outline: 0; }
.questionnaire-nutrition-entry-notice { padding: 10px 12px; border: 1px solid #c4d8cc; border-radius: 9px; background: #edf5f0; color: #426556; font-size: var(--font-size-help, .76rem); line-height: 1.45; }

.animal-form-section--diet {
  background:rgb(var(--color-secondary-rgb) / .045);
  border-color:rgb(var(--color-secondary-rgb) / .22);
  container-name:animal-feeding-section;
  container-type:inline-size;
}
.animal-form-section--diet .form-section__header h2 { color:var(--color-secondary-strong); }
.animal-feeding-create { display:grid; gap:10px; min-width:0; }
.animal-feeding-create__groups { margin-top:0; }
.animal-form-section--diet .animal-feeding-create__groups.nutrition-ration-groups {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--ui-space-4,16px);
  margin-top:0;
}
.animal-form-section--diet .animal-feeding-create__groups .nutrition-ration-group {
  container-name:animal-feeding-group;
  container-type:inline-size;
}
.animal-feeding-create__rows { display:grid; gap:10px; padding:12px; }
.animal-feeding-create__row { display:grid; grid-template-columns:minmax(145px,.85fr) minmax(200px,1.2fr) minmax(125px,.65fr) minmax(100px,.5fr) 48px; gap:10px; align-items:end; }
.animal-feeding-create__row { position:relative; padding:11px; border:1px solid rgb(var(--color-primary-rgb) / .18); border-radius:12px; background:var(--color-surface); }
.animal-feeding-create__row .field { gap:5px; margin:0; min-width:0; }
.animal-feeding-create__row .field > span { font-size:var(--font-size-label, .75rem); font-weight:var(--font-weight-label, 800); }
.animal-feeding-create__quantity-control { align-items:center; display:grid; gap:7px; grid-template-columns:minmax(0,1fr) auto; min-width:0; }
.animal-feeding-create__quantity-control .input { min-width:0; padding-right:10px; }
.animal-feeding-create__quantity-control small { color:var(--color-text-soft); font-size:var(--font-size-help, .72rem); font-weight:var(--font-weight-label, 800); pointer-events:none; white-space:nowrap; }
.animal-feeding-create__region { grid-column:1 / 3; }
.animal-feeding-create__actions { display:flex; align-items:center; justify-content:flex-end; gap:7px; min-height:42px; }
.animal-feeding-create__add,
.animal-feeding-create__remove { display:inline-grid; place-items:center; width:36px; height:36px; padding:0; border-radius:8px; cursor:pointer; font-size:var(--font-size-control, 1.3rem); line-height:1; transition:transform .16s ease, background-color .16s ease; }
.animal-feeding-create__add { border:1px solid var(--color-primary); background:var(--color-primary); color:var(--color-surface); }
.animal-feeding-create__remove { border:1px solid rgb(var(--color-danger-rgb) / .4); background:var(--color-surface); color:var(--color-danger); }
.animal-feeding-create__add:hover,
.animal-feeding-create__remove:hover { transform:translateY(-1px); }
.animal-feeding-create__hint { margin:0; padding:10px 12px; border:1px solid rgb(var(--color-highlight-rgb) / .45); border-radius:10px; color:var(--color-text-soft); font-size:var(--font-size-help, .82rem); }
@media (max-width:1100px) {
  .animal-feeding-create__row { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .animal-feeding-create__region { grid-column:auto; }
  .animal-feeding-create__actions { grid-column:1 / -1; }
}
@container animal-feeding-section (max-width:760px) {
  .animal-feeding-create__row { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .animal-feeding-create__region { grid-column:auto; }
  .animal-feeding-create__actions { grid-column:1 / -1; }
}
@container animal-feeding-section (max-width:430px) {
  .animal-feeding-create__row { grid-template-columns:minmax(0,1fr); }
  .animal-feeding-create__actions { grid-column:auto; }
}
@container animal-feeding-group (max-width:42rem) {
  .animal-feeding-create__row { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .animal-feeding-create__region { grid-column:auto; }
  .animal-feeding-create__actions { grid-column:1 / -1; }
}
@container animal-feeding-group (max-width:28rem) {
  .animal-feeding-create__row { grid-template-columns:minmax(0,1fr); }
  .animal-feeding-create__actions { grid-column:auto; }
}
@container animal-feeding-section (max-width:48rem) {
  .animal-form-section--diet .animal-feeding-create__groups.nutrition-ration-groups { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:640px) {
  .animal-feeding-create__row { grid-template-columns:minmax(0,1fr); }
  .animal-feeding-create__actions { grid-column:auto; }
}
@media (max-width: 560px) {
  .questionnaire-module-rest__nutrition-entry,
  .questionnaire-nutrition-entry { grid-template-columns: 1fr; }
  .questionnaire-nutrition-entry__row { grid-template-columns: minmax(0, 1fr); }
  .questionnaire-nutrition-entry__remove,
  .questionnaire-nutrition-entry__add { justify-self: end; }
}

/* Client portal: intentionally outside practitioner drawer/layout. */
.client-portal-body { background: var(--color-canvas); color: var(--color-text); }
.client-portal-auth { align-items: center; display: grid; min-height: 100vh; padding: 28px; place-items: center; }
.client-portal-auth__card { background: var(--color-surface); border: 1px solid rgb(var(--color-primary-rgb) / .14); border-radius: 18px; box-shadow: 0 18px 44px rgb(var(--color-primary-rgb) / .12); display: grid; gap: 16px; max-width: 470px; padding: 34px; width: min(100%, 470px); }
.client-portal-auth__card h1, .client-portal-hero h1 { color: var(--color-primary-strong); font-size: var(--font-size-page-title, clamp(1.7rem, 4vw, 2.45rem)); line-height: var(--line-height-title, 1.1); margin: 0; }
.client-portal-auth__card > p, .client-portal-hero p { color: var(--color-text-soft); line-height: 1.55; margin: 0; }
.client-portal-brand { align-items: center; color: var(--color-primary-strong); display: inline-flex; gap: 10px; text-decoration: none; width: fit-content; }
.client-portal-brand__logo { align-items: center; background: #fff; border: 1px solid rgb(var(--color-primary-rgb) / .18); border-radius: 11px; display: inline-flex; height: 42px; justify-content: center; overflow: hidden; width: 42px; }
.client-portal-brand__logo img { display: block; height: 34px; object-fit: contain; width: 34px; }
.client-portal-brand strong { font-size: var(--font-size-body, 1.12rem); letter-spacing: .045em; }
.client-portal-form { display: grid; gap: 14px; }
.client-portal-password-field { display: grid; gap: 6px; min-width: 0; }
.client-portal-password-field > a { color: var(--color-secondary-deep); font-size: var(--font-size-control, .8rem); font-weight: var(--font-weight-label, 750); justify-self: end; text-decoration: none; }
.client-portal-password-field > a:hover, .client-portal-password-field > a:focus-visible { color: var(--color-primary-strong); outline: none; }
.client-portal-auth__card--message { justify-items: start; }
.client-portal-auth__card--password h1 { font-size: var(--font-size-page-title, clamp(1.7rem, 4vw, 2.15rem)); text-wrap: balance; }
.client-portal-auth__notice { background: rgb(var(--color-primary-rgb) / .07); border: 1px solid rgb(var(--color-primary-rgb) / .15); border-radius: 11px; font-size: var(--font-size-help, .86rem); padding: 13px 15px; }
.client-portal-auth__hint { font-size: var(--font-size-help, .84rem); }
.client-portal-auth__hint a, .client-portal-auth__legal a { color: var(--color-secondary-deep); font-weight: var(--font-weight-label, 750); }
.client-portal-auth__legal { color: var(--color-text-soft); font-size: var(--font-size-help, .76rem); line-height: 1.5; margin: 0; }
.client-portal-google-button { align-items: center; align-self: start; background: var(--color-surface); border: 1px solid rgb(var(--color-text-rgb) / .24); border-radius: var(--ui-radius-control, 12px); box-shadow: var(--shadow-xs); color: var(--color-text); display: inline-flex; font-size: var(--font-size-control, .92rem); font-weight: var(--font-weight-label, 700); gap: 9px; justify-content: center; min-height: 46px; padding: 10px 15px; text-decoration: none; width: min(100%, 245px); }
.client-portal-auth__card > .client-portal-google-button { align-self: stretch; width: 100%; }
.client-portal-google-button:hover, .client-portal-google-button:focus-visible { border-color: var(--color-primary); box-shadow: 0 0 0 4px var(--color-focus); color: var(--color-primary-strong); outline: none; }
.client-portal-google-button img { display: block; height: 20px; width: auto; }
.login-entry-panel > .client-portal-google-button { margin-bottom: var(--ui-space-5); }
.client-portal-auth__separator { align-items: center; color: var(--color-text-soft); display: flex; font-size: var(--font-size-table, .76rem); gap: 10px; width: min(100%, 320px); }
.client-portal-auth__separator::before, .client-portal-auth__separator::after { background: var(--color-border); content: ''; flex: 1 1 auto; height: 1px; }
.client-portal-auth__practitioner-link { color: var(--color-primary-strong); font-size: var(--font-size-body, .88rem); font-weight: var(--font-weight-label, 750); text-decoration: none; }
.client-portal-auth__practitioner-link:hover, .client-portal-auth__practitioner-link:focus-visible { color: var(--color-secondary-deep); }
.client-registration-page { background: var(--color-surface); display: grid; grid-template-areas: 'panel visual'; grid-template-columns: minmax(470px, .82fr) minmax(0, 1fr); min-height: 100vh; }
.client-registration-visual { align-items: center; background: var(--color-primary); display: flex; grid-area: visual; justify-content: center; min-height: 100vh; overflow: hidden; padding: clamp(34px, 5vw, 76px); position: relative; }
.client-registration-visual > img { display: block; height: auto; max-width: 760px; object-fit: contain; position: relative; width: min(100%, 760px); z-index: 1; }
.client-registration-brand { color: #fff; left: clamp(24px, 3vw, 46px); position: absolute; top: clamp(22px, 3vw, 38px); z-index: 2; }
.client-registration-brand strong { color: #fff; }
.client-registration-panel { align-items: center; background: var(--color-surface); display: flex; grid-area: panel; justify-content: center; min-height: 100vh; padding: clamp(34px, 6vw, 86px); }
.client-registration-form { display: grid; gap: 20px; justify-items: center; max-width: 440px; text-align: center; width: 100%; }
.client-registration-form h1 { color: var(--color-primary-deep); font-size: var(--font-size-page-title, clamp(2rem, 4vw, 3rem)); font-weight: var(--font-weight-title, 800); letter-spacing: -.035em; line-height: var(--line-height-title, 1.05); margin: 0; }
.client-registration-intro { color: var(--color-text-soft); font-size: var(--font-size-body, 1rem); font-weight: var(--font-weight-body, 400); line-height: 1.55; margin: -7px 0 4px; max-width: 380px; }
.client-registration-separator { align-items: center; color: var(--color-text-soft); display: flex; font-size: var(--font-size-table, .78rem); gap: 12px; width: 100%; }
.client-registration-separator::before, .client-registration-separator::after { background: rgb(var(--color-text-rgb) / .16); content: ''; flex: 1 1 auto; height: 1px; }
.client-registration-separator span { flex: 0 0 auto; }
.client-registration-separator--short { max-width: 360px; }
.client-registration-google { align-self: auto; width: min(100%, 360px); }
.client-registration-social-options { display: grid; gap: 10px; width: min(100%, 360px); }
.client-registration-social-options > .client-portal-google-button { width: 100%; }
.client-registration-facebook img { height: 20px; width: 20px; }
.client-registration-facebook { background: #1877f2; border-color: #1877f2; color: #fff; }
.client-registration-facebook:hover, .client-registration-facebook:focus-visible { background: #166fe5; border-color: #166fe5; color: #fff; }
.client-registration-email { display: grid; gap: 11px; justify-items: center; width: min(100%, 360px); }
.client-registration-email .input { min-height: 48px; text-align: center; width: 100%; }
.client-registration-login { gap: 14px; text-align: left; width: min(100%, 360px); }
.client-registration-login .field, .client-registration-login .input { width: 100%; }
.client-registration-login .input { min-height: 48px; }
.client-registration-login .client-portal-password-field { width: 100%; }
.client-registration-email__submit { align-items: center; background: var(--color-secondary); border-color: var(--color-secondary); color: #fff; display: inline-flex; justify-content: center; min-height: 48px; position: relative; width: 100%; }
.client-registration-email__submit:hover, .client-registration-email__submit:focus-visible { background: var(--color-secondary-strong); border-color: var(--color-secondary-strong); color: #fff; }
.client-registration-email__arrow { border-right: 2px solid currentColor; border-top: 2px solid currentColor; height: 8px; margin-left: 12px; transform: rotate(45deg); width: 8px; }
.client-registration-legal { color: var(--color-text-soft); font-size: var(--font-size-help, .72rem); line-height: 1.45; margin: 2px 0 0; }
.client-registration-legal a, .client-registration-support a, .client-registration-form .client-portal-auth__hint a { color: var(--color-secondary-deep); font-weight: var(--font-weight-label, 700); }
.client-registration-support { color: var(--color-text-soft); display: grid; font-size: var(--font-size-help, .78rem); gap: 4px; line-height: 1.45; }
.client-registration-support a { font-size: var(--font-size-control, .86rem); }
.client-registration-form .client-portal-auth__hint { margin: 0; }
.client-registration-form .alert { justify-self: stretch; text-align: left; }
.client-registration-confirmation { gap: 16px; }
.client-registration-confirmation__icon { align-items: center; background: rgb(var(--color-primary-rgb) / .12); border: 1px solid rgb(var(--color-primary-rgb) / .22); border-radius: 50%; color: var(--color-primary-strong); display: inline-flex; font-size: 1.3rem; font-weight: 800; height: 54px; justify-content: center; width: 54px; }
.client-registration-confirmation__eyebrow { color: var(--color-secondary-deep); font-size: var(--font-size-caption, .76rem); font-weight: var(--font-weight-label, 800); letter-spacing: .08em; margin: 0 0 -9px; text-transform: uppercase; }
.client-registration-confirmation__status { font-size: var(--font-size-caption, .76rem); letter-spacing: .025em; padding: 6px 11px; }
.client-registration-confirmation__instructions { background: #e8eff3; border: 1px solid #bdcfd9; border-radius: 16px; box-shadow: none; color: var(--color-text); display: grid; gap: 10px; justify-items: center; max-width: 100%; min-width: 0; padding: 24px; text-align: center; width: min(100%, 390px); }
.client-registration-confirmation__instructions .client-registration-confirmation__icon { background: transparent; border: 0; border-radius: 0; color: #00a65a; font-size: 2.2rem; height: auto; width: auto; }
.client-registration-confirmation__instructions > strong { color: var(--color-primary-deep); font-size: var(--font-size-body, 1.05rem); }
.client-registration-confirmation__instructions p { color: var(--color-text-soft); line-height: 1.55; margin: 0; }
.client-registration-confirmation__instructions p strong { color: var(--color-primary-deep); font-weight: var(--font-weight-label, 800); overflow-wrap: anywhere; }
.client-registration-confirmation__instructions small { color: var(--color-text-soft); line-height: 1.45; }
.client-registration-confirmation__recipient { font-size: var(--font-size-table, .84rem); }
.client-registration-confirmation__notice { color: var(--color-primary-strong); font-size: var(--font-size-help, .84rem); line-height: 1.45; margin: 0; max-width: 380px; }
.client-registration-resend { align-items: center; display: grid; gap: 8px; justify-items: center; max-width: 380px; }
.client-registration-resend p, .client-registration-resend small { color: var(--color-text-soft); line-height: 1.45; margin: 0; }
.client-registration-resend p { font-size: var(--font-size-table, .86rem); }
.client-registration-resend small { font-size: var(--font-size-help, .72rem); }
.client-registration-resend .btn { min-height: 42px; width: auto; }
.client-registration-resend form { align-items: baseline; color: var(--color-text-soft); display: flex; flex-wrap: wrap; font-size: var(--font-size-table, .86rem); gap: 5px; justify-content: center; }
.client-registration-resend__link { appearance: none; background: none; border: 0; color: var(--color-secondary-deep); cursor: pointer; font: inherit; font-weight: var(--font-weight-label, 800); padding: 4px; }
.client-registration-resend__link:not(:disabled):hover, .client-registration-resend__link:not(:disabled):focus-visible { color: var(--color-primary-strong); outline: 2px solid var(--color-focus); outline-offset: 2px; }
.client-registration-resend__link:disabled { color: var(--color-text-soft); cursor: not-allowed; opacity: .78; }
.client-registration-confirmation__action { justify-content: center; margin-top: 3px; width: min(100%, 260px); }
.client-onboarding-welcome { gap: 22px; }
.client-onboarding-welcome__check { color: #00a65a; font-size: 2.7rem; font-weight: 850; line-height: 1; }
.client-onboarding-welcome__action { justify-content: center; width: auto; }
@media (max-width: 900px) {
  .client-registration-page { grid-template-areas: 'visual' 'panel'; grid-template-columns: minmax(0, 1fr); }
  .client-registration-visual { min-height: 34vh; padding: 76px 28px 18px; }
  .client-registration-visual > img { max-height: 300px; width: min(100%, 520px); }
  .client-registration-panel { min-height: 66vh; padding: 42px 24px 56px; }
}
@media (max-width: 520px) {
  .client-registration-visual { min-height: 230px; }
  .client-registration-visual > img { max-height: 190px; }
  .client-registration-panel { padding: 34px 18px 46px; }
  .client-registration-form { gap: 17px; }
}
.client-portal-page { margin: 0 auto; max-width: 1200px; padding: 24px; }
.client-portal-header { align-items: center; display: flex; gap: 18px; justify-content: space-between; margin-bottom: 28px; }
.client-portal-header__account { align-items: center; display: flex; flex-wrap: wrap; gap: 12px; }
.client-portal-header__account > span { color: var(--color-text-soft); font-size: var(--font-size-body, .9rem); }
.client-portal-hero { align-items: center; background: var(--color-surface); border: 1px solid rgb(var(--color-primary-rgb) / .15); border-top: 7px solid var(--color-primary); border-radius: var(--ui-radius-card, 18px); box-shadow: var(--ui-shadow-card); display: flex; gap: var(--ui-space-6, 24px); justify-content: space-between; margin-bottom: 22px; padding: clamp(22px, 4vw, 40px); }
.client-portal-hero > div { display: grid; gap: 10px; min-width: 0; }
.client-portal-hero--form { margin-bottom: 18px; }
.client-portal-empty { background: var(--color-surface); border: 1px dashed rgb(var(--color-primary-rgb) / .28); border-radius: 16px; display: grid; gap: 12px; justify-items: start; padding: 32px; }
.client-portal-empty h2 { color: var(--color-primary-strong); margin: 0; }
.client-portal-empty p { color: var(--color-text-soft); margin: 0; }
.client-portal-grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.client-portal-animals-page > .client-portal-grid { box-sizing: border-box; min-height: var(--ui-section-min-height); align-content: center; padding: clamp(48px, 6vw, 84px) clamp(20px, 5vw, 72px); background: var(--color-primary-soft); border-radius: var(--ui-radius-card, 18px); }
.client-portal-animals-page .client-portal-animal--managed:nth-of-type(3n + 1) { background: var(--color-secondary-faint); border-color: var(--color-secondary-muted); border-top: 4px solid var(--color-secondary); }
.client-portal-animals-page .client-portal-animal--managed:nth-of-type(3n + 2) { background: var(--color-surface); border-top: 4px solid var(--color-primary); }
.client-portal-animals-page .client-portal-animal--managed:nth-of-type(3n + 3) { background: var(--color-identity-faint); border-top: 4px solid var(--color-secondary-muted); }
.client-portal-animal { background: var(--color-surface); border: 1px solid rgb(var(--color-primary-rgb) / .14); border-radius: 14px; box-shadow: var(--ui-shadow-card); display: grid; gap: 7px; min-height: 152px; padding: 20px; }
.client-portal-animal > span, .client-portal-animal__link > span { color: var(--color-text-soft); font-size: var(--font-size-table, .78rem); font-weight: var(--font-weight-label, 800); text-transform: uppercase; }
.client-portal-animal h2 { color: var(--color-primary-strong); font-size: var(--font-size-section-title, 1.24rem); margin: 0; }
.client-portal-animal p { color: var(--color-text-soft); margin: 0; }
.client-portal-animal--managed { padding: 0; position: relative; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.client-portal-animal__link { color: inherit; display: grid; gap: 12px; min-height: 158px; padding: 62px 20px 20px; text-decoration: none; }
.client-portal-animal__identity { align-items: center; display: grid; gap: 12px; grid-template-columns: 58px minmax(0, 1fr); min-width: 0; }
.client-portal-animal__portrait { align-items: center; background: rgb(var(--color-primary-rgb) / .1); border: 2px solid var(--color-surface); border-radius: 12px; box-shadow: 0 4px 11px rgb(var(--color-primary-rgb) / .14); color: var(--color-primary-strong); display: flex; font-family: Georgia, serif; font-size: 1.2rem; height: 58px; justify-content: center; overflow: hidden; width: 58px; }
.client-portal-animal__portrait img { display: block; height: 100%; object-fit: cover; width: 100%; }
.client-portal-animal__identity-copy { display: grid; gap: 4px; min-width: 0; }
.client-portal-animal__identity-copy > span { color: var(--color-text-soft); font-size: var(--font-size-table, .78rem); font-weight: var(--font-weight-label, 800); text-transform: uppercase; }
.client-portal-animal__identity-copy > .client-portal-animal__admin-status { align-self: start; color: var(--color-secondary-deep); font-size: var(--font-size-caption, .75rem); text-transform: none; }
.client-portal-animal__identity-copy h2, .client-portal-animal__identity-copy p { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.client-portal-animal--managed:has(.client-portal-animal__link:hover), .client-portal-animal--managed:has(.client-portal-animal__link:focus-visible) { border-color: rgb(var(--color-primary-rgb) / .36); box-shadow: 0 14px 28px rgb(var(--color-primary-rgb) / .12); transform: translateY(-3px); }
.client-portal-animal--managed:has(.client-portal-animal__link:hover) .client-portal-animal__portrait, .client-portal-animal--managed:has(.client-portal-animal__link:focus-visible) .client-portal-animal__portrait { box-shadow: 0 7px 16px rgb(var(--color-primary-rgb) / .2); }
.client-portal-animal__link:hover, .client-portal-animal__link:focus-visible { color: inherit; }
.client-portal-animal__link:focus-visible { border-radius: inherit; outline: 3px solid rgb(var(--color-secondary-rgb) / .72); outline-offset: 2px; }
.client-portal-animal__actions { align-items: center; display: flex; flex-wrap: nowrap; gap: 4px; max-width: calc(100% - 20px); position: absolute; right: 10px; top: 10px; z-index: 1; }
.client-portal-animal__actions > button { align-items: center; background: var(--color-surface); border: 1px solid rgb(var(--color-primary-rgb) / .34); border-radius: 9px; color: var(--color-primary-strong); cursor: pointer; display: inline-flex; flex: 0 0 42px; height: 42px; justify-content: center; padding: 0; transition: background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s ease; width: 42px; }
.client-portal-animal__actions svg { fill: none; height: 19px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 19px; }
.client-portal-animal__actions > .client-portal-animal__remove { border-color: rgb(var(--color-secondary-rgb) / .48); color: var(--color-secondary-deep); }
.client-portal-animal__share:not(:disabled):hover, .client-portal-animal__share:not(:disabled):focus-visible { background: var(--color-primary); color: var(--color-surface); outline: 0; transform: translateY(-1px); }
.client-portal-animal__share:disabled, .animal-detail-share:disabled { background: var(--color-surface-muted); border-color: var(--color-border); color: var(--color-text-soft); cursor: not-allowed; opacity: .72; }
.client-portal-animal__share.is-active:not(:disabled) { background: var(--color-primary); border-color: var(--color-primary); color: var(--color-surface); }
.client-portal-animal__share.is-active:not(:disabled):hover, .client-portal-animal__share.is-active:not(:disabled):focus-visible { background: var(--color-primary-strong); }
.client-portal-animal__profile-editor.is-active { background: var(--color-primary); color: var(--color-surface); }
.client-portal-animal__profile-editor.is-active:hover, .client-portal-animal__profile-editor.is-active:focus-visible { background: var(--color-primary-strong); }
.animal-profile-edit-badge { align-items: center; background: var(--color-secondary-soft); border: 1px solid var(--color-secondary-muted); border-radius: 50%; color: var(--color-secondary-deep); display: inline-flex; flex: 0 0 auto; height: 30px; justify-content: center; width: 30px; }
.animal-profile-edit-badge svg { fill: none; height: 18px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 18px; }
.client-portal-animal__archive:hover, .client-portal-animal__archive:focus-visible { background: var(--color-primary-strong); color: var(--color-surface); outline: 0; transform: translateY(-1px); }
.client-portal-share-choices { display: grid; gap: 9px; margin-top: 15px; max-height: min(46vh, 420px); overflow: auto; padding-right: 3px; }
.client-portal-share-choices label { align-items: start; background: var(--color-surface-muted); border: 1px solid var(--color-border); border-radius: 10px; cursor: pointer; display: flex; gap: 10px; min-width: 0; padding: 11px 12px; }
.client-portal-share-choices label:has(input:checked) { background: rgb(var(--color-primary-rgb) / .08); border-color: rgb(var(--color-primary-rgb) / .46); }
.client-portal-share-choices label.is-already-shared { background: rgb(45 55 56 / .06); border-color: rgb(45 55 56 / .12); color: var(--color-text-soft); cursor: not-allowed; opacity: .62; }
.client-portal-share-choices label.is-already-shared strong, .client-portal-share-choices label.is-already-shared small { color: var(--color-text-soft); }
.client-portal-share-choices label.is-already-shared em { color: var(--color-secondary-deep); font-style: normal; font-weight: var(--font-weight-label, 800); }
.client-portal-share-choices input { accent-color: var(--color-primary); flex: 0 0 auto; height: 17px; margin: 2px 0 0; width: 17px; }
.client-portal-share-choices span { display: grid; gap: 3px; min-width: 0; }
.client-portal-share-choices strong { color: var(--color-text); font-size: var(--font-size-body, .9rem); overflow-wrap: anywhere; }
.client-portal-share-choices small { color: var(--color-text-soft); font-size: var(--font-size-help, .76rem); line-height: 1.35; overflow-wrap: anywhere; }
.client-portal-animal__actions > .client-portal-animal__remove:hover, .client-portal-animal__actions > .client-portal-animal__remove:focus-visible { background: var(--color-secondary-deep); color: var(--color-surface); transform: translateY(-1px); }
.client-portal-confirm-modal { background: var(--color-surface); border: 0; border-radius: var(--ui-radius-overlay, 18px); box-shadow: var(--ui-shadow-overlay, 0 22px 60px rgb(28 42 43 / .28)); color: var(--color-text); max-height: calc(100dvh - 32px); max-width: 470px; overflow: auto; padding: 0; width: calc(100% - 32px); }
.client-portal-profile-editor-field { display: grid; gap: var(--ui-space-2, 8px); justify-items: start; margin-block: var(--ui-space-4, 16px); min-width: 0; }
.client-portal-profile-editor-field > .ui-select, .client-portal-profile-editor-field > select.input { box-sizing: border-box; max-width: 100%; width: min(100%, 24rem); }
.client-portal-profile-editor-field .ui-select__trigger.input { box-sizing: border-box; max-width: 100%; min-height: 44px; width: 100%; }
.client-portal-profile-editor-field .ui-select__list { max-height: min(42vh, 280px); overflow-y: auto; }
.client-portal-profile-editor-revoke { border-top: 1px solid var(--color-border); display: grid; gap: var(--ui-space-3, 12px); justify-items: start; padding-top: var(--ui-space-4, 16px); }
.client-portal-profile-editor-revoke p { color: var(--color-text-soft); font-size: var(--font-size-help, .8125rem); margin: 0; }
.client-portal-confirm-modal::backdrop { background: rgb(21 37 38 / .42); }
[data-recovery-modal] .account-recovery-codes { grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr)); }

[data-recovery-modal] [data-recovery-copy-status]:not(:empty) {
  margin: var(--ui-space-4, 16px) 0 0;
}

.login-screen.login-screen--passkey {
  grid-template-columns: minmax(0, 1fr);
  justify-items: center;
}

.login-screen--passkey > [hidden] {
  display: none;
}

.passkey-connection-progress {
  color: var(--color-text-soft);
  text-align: center;
}
.login-password-group { display: grid; gap: var(--ui-space-2, 8px); min-width: 0; }
.client-portal-page.client-portal-home { width: 100%; max-width: none; padding: 0; overflow-x: clip; }
.client-portal-home__hero { position: relative; isolation: isolate; width: 100%; min-height: 48vh; min-height: 48svh; background: var(--color-hero-night); border-radius: 0 0 var(--ui-space-8, 32px) var(--ui-space-8, 32px); display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); align-items: center; gap: var(--ui-space-5, 20px); padding: var(--ui-space-4, 16px) clamp(20px, 3vw, 48px); box-sizing: border-box; box-shadow: inset 0 -6px 0 var(--color-secondary); container-type: inline-size; }
.client-portal-home__hero::before { content: ""; position: absolute; z-index: 0; top: 52%; right: 4%; left: 4%; height: 58%; pointer-events: none; background: var(--color-secondary-muted); opacity: .16; transform: scale(1.35); transform-origin: center bottom; mask-image: url("/assets/images/client-home-cat-paw-trail.png"); mask-position: center bottom; mask-repeat: no-repeat; mask-size: 100% auto; -webkit-mask-image: url("/assets/images/client-home-cat-paw-trail.png"); -webkit-mask-position: center bottom; -webkit-mask-repeat: no-repeat; -webkit-mask-size: 100% auto; }
.client-portal-home__hero > * { position: relative; z-index: 1; }
.client-portal-page.client-portal-directory-page { width: 100%; max-width: none; padding: 0; }
.client-portal-directory-page__content { padding: var(--ui-space-6, 24px) clamp(16px, 3vw, 48px); }
.client-portal-directory-search { width: 100%; background: var(--color-hero-night); padding: var(--ui-space-6, 24px) clamp(16px, 3vw, 48px); box-sizing: border-box; }
.client-portal-directory-search__heading { width: min(100%, 1120px); margin: var(--ui-space-4, 16px) auto var(--ui-space-5, 20px); color: var(--color-surface); font-size: var(--font-size-page-title-fluid); line-height: var(--line-height-title); font-weight: var(--font-weight-body); }
.client-portal-directory-search__heading strong { color: var(--color-secondary-muted); font-weight: var(--font-weight-title); }
.client-portal-directory-search .client-portal-directory-filters { margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; }
.client-portal-directory-search .field > span { color: var(--color-surface); }
.client-portal-directory-search .field { margin-bottom: 0; }
.client-portal-directory-search__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--ui-space-4, 16px); }
.client-portal-directory-search .client-portal-breadcrumb a,
.client-portal-directory-search .client-portal-breadcrumb li + li::before { color: var(--color-surface); }
.client-portal-directory-search { --breadcrumb-current-color: var(--color-secondary-muted); }
.practitioner-directory-page { max-width: none; }
.practitioner-directory-page > .client-portal-directory-search { margin: -28px -28px 24px; width: calc(100% + 56px); container-type: inline-size; }
.directory-search-bar__submit:disabled { opacity: .5; cursor: not-allowed; }
@media (max-width: 720px) { .practitioner-directory-page > .client-portal-directory-search { margin: -18px -18px 24px; width: calc(100% + 36px); } }
.client-portal-directory-filters__actions { display: flex; align-items: center; gap: var(--ui-space-3, 12px); }
.client-portal-directory-filters__actions > .btn { width: auto; flex: 0 0 auto; }
.client-portal-directory-filters__actions [data-client-help-anchor] { display: inline-flex; align-items: center; }
.client-portal-home__search { position: relative; z-index: 1; min-width: 0; }
.client-portal-home > .client-portal-directory-page__content { padding: 0; }
.client-portal-first-animal-callout { position: relative; isolation: isolate; box-sizing: border-box; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: clamp(18px, 3vw, 32px); width: min(82%, 1180px); margin: clamp(32px, 5vw, 60px) auto; padding: clamp(28px, 4vw, 44px); overflow: hidden; border: 1px solid rgb(var(--color-secondary-rgb) / .24); border-radius: var(--ui-radius-card, 28px); background: var(--color-secondary-faint); box-shadow: 0 18px 44px rgb(var(--color-primary-rgb) / .1); }
.client-portal-first-animal-callout__icon { display: inline-flex; align-items: center; justify-content: center; width: clamp(54px, 7vw, 76px); aspect-ratio: 1; border-radius: 50%; background: var(--color-surface); color: var(--color-secondary-deep); box-shadow: 0 8px 20px rgb(var(--color-primary-rgb) / .12); }
.client-portal-first-animal-callout__icon svg { width: clamp(28px, 3.5vw, 38px); height: clamp(28px, 3.5vw, 38px); fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.client-portal-first-animal-callout__content { min-width: 0; }
.client-portal-first-animal-callout h2 { margin: 0; color: var(--color-primary-strong); font-size: var(--font-size-section-title, clamp(1.75rem, 3vw, 2.5rem)); font-weight: var(--font-weight-title); letter-spacing: -.025em; line-height: var(--line-height-title); }
.client-portal-first-animal-callout__form { display: grid; justify-items: start; gap: var(--ui-space-3, 12px); margin-top: var(--ui-space-4, 16px); }
.client-portal-first-animal-callout__label { color: var(--color-text-soft); font-weight: var(--font-weight-label); }
.client-portal-first-animal-callout__input.input { box-sizing: border-box; width: min(100%, 34ch); max-width: 100%; min-height: 50px; padding-inline: var(--ui-space-4, 16px); border: 2px solid rgb(var(--color-primary-rgb) / .25); border-radius: var(--ui-radius-control, 12px); background: var(--color-surface); color: var(--color-primary-deep); font-size: var(--font-size-input); box-shadow: 0 8px 20px rgb(var(--color-primary-rgb) / .07); }
.client-portal-first-animal-callout__input.input:focus-visible { border-color: var(--color-primary); outline: 3px solid rgb(var(--color-primary-rgb) / .18); outline-offset: 2px; }
.client-portal-first-animal-callout__action.btn { display: inline-flex; width: fit-content; margin-top: var(--ui-space-2, 8px); border-radius: var(--ui-radius-pill, 999px); }
.client-portal-first-animal-callout__action svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
@media (max-width: 520px) { .client-portal-first-animal-callout { grid-template-columns: minmax(0, 1fr); gap: var(--ui-space-4, 16px); width: calc(100% - 32px); padding: var(--ui-space-5, 20px); } .client-portal-first-animal-callout__icon { width: 52px; } }
.client-portal-home__section { box-sizing: border-box; display: flex; flex-direction: column; justify-content: center; min-height: clamp(420px, 52svh, 640px); padding: clamp(52px, 7vw, 88px) clamp(20px, 5vw, 72px); }
.client-portal-home__section > * { margin-inline: auto; width: min(100%, 1180px); }
.client-portal-home__paired-sections { display: grid; grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr); gap: 1px; background: var(--color-border); }
.client-portal-home__paired-sections > .client-portal-home__section { min-width: 0; min-height: 0; height: clamp(420px, 52svh, 640px); justify-content: stretch; border-radius: var(--ui-radius-overlay) var(--ui-radius-overlay) 0 0; }
.client-portal-home__paired-sections > .client-portal-home__section + .client-portal-home__section { border-top: 0; }
@media (max-width: 760px) { .client-portal-home__paired-sections { grid-template-columns: minmax(0, 1fr); } }
.client-portal-home__section:nth-child(odd) { background: var(--color-identity-faint); }
.client-portal-home__section:nth-child(even) { background: var(--color-surface); }
.client-portal-home__section.client-portal-home__section--highlight { background: var(--color-highlight-soft); }
.client-portal-home__section.client-portal-home__section--appointments { background: var(--color-identity-faint); }
.client-portal-home__section + .client-portal-home__section { border-top: 1px solid var(--color-border); margin-top: 0; }
.client-portal-home__section-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ui-space-4, 16px); margin-bottom: var(--ui-space-5, 20px); }
.client-portal-home__section-heading h2 { margin: 0; color: var(--color-primary-strong); font-size: var(--font-size-page-title); font-weight: var(--font-weight-body); line-height: var(--line-height-title); }
.client-portal-home__section-heading h2 strong { color: var(--color-secondary-deep); font-weight: var(--font-weight-title); }
.client-portal-home__section-subtitle { margin: var(--ui-space-1, 4px) 0 0; font-size: var(--font-size-help); color: var(--color-accent-strong); }
.client-portal-home__practice-explorer .client-portal-home__section-heading { justify-content: center; margin-bottom: var(--ui-space-4, 16px); text-align: center; }
.client-portal-home__practice-explorer .client-portal-home__section-heading > div { display: grid; gap: var(--ui-space-1, 4px); justify-items: center; }
.client-portal-home__practice-explorer .client-portal-home__section-heading p { color: var(--color-text-soft); margin: 0; max-width: 720px; }
.client-portal-home__articles-section { min-height: 0; }
.client-portal-home__articles-empty { color: var(--color-text-soft); margin-top: 0; }
.client-portal-article-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ui-space-5, 20px); }
.client-portal-article-card { min-width: 0; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--ui-radius-card, 16px); overflow: hidden; box-shadow: var(--ui-shadow-card); }
.client-portal-article-card__image { display: block; width: 100%; height: auto; max-height: 240px; aspect-ratio: 16 / 9; object-fit: cover; object-position: center 38%; }
.client-portal-article-card__body { display: grid; align-content: start; gap: var(--ui-space-3, 12px); padding: var(--ui-space-4, 16px); }
.client-portal-article-card__meta { display: flex; align-items: center; flex-wrap: wrap; gap: var(--ui-space-2, 8px) var(--ui-space-3, 12px); font-size: var(--font-size-help); line-height: var(--line-height-body); }
.client-portal-article-card__category { color: var(--color-secondary-deep); font-weight: var(--font-weight-label); }
.client-portal-article-card__reading-time { display: inline-flex; align-items: center; gap: var(--ui-space-1, 4px); color: var(--color-text-soft); }
.client-portal-article-card__reading-time svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; flex: none; }
.client-portal-article-card__body h3 { margin: 0; font-size: var(--font-size-card-title); line-height: var(--line-height-title); }
.client-portal-article-card__body h3 a { color: inherit; }
.client-portal-article-card__body h3 a:hover, .client-portal-article-card__body h3 a:focus-visible { color: var(--color-secondary-deep); }
.client-portal-article-card__excerpt { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; margin: 0; color: var(--color-text-soft); line-height: var(--line-height-body); }
.client-portal-article-card__author { margin: 0; padding-top: var(--ui-space-2, 8px); border-top: 1px solid var(--ui-border-control); color: var(--color-primary-strong); font-size: var(--font-size-label); font-weight: var(--font-weight-label); }
.client-article-library__content { display: grid; gap: var(--ui-space-6, 24px); padding: var(--ui-space-6, 24px); min-width: 0; }
.client-article-library__filters { display: flex; align-items: end; flex-wrap: wrap; gap: var(--ui-space-4, 16px); padding: var(--ui-space-5, 20px); min-width: 0; }
.client-article-library__filters label { display: grid; gap: var(--ui-space-2, 8px); flex: 1 1 190px; max-width: 280px; min-width: 0; font-weight: var(--font-weight-label); }
.client-article-library__filters > .ui-autocomplete { flex: 1 1 190px; max-width: 280px; }
.client-article-library__filters .input { width: 100%; max-width: 100%; box-sizing: border-box; }
.client-article-library__filters select.input { width: auto; field-sizing: content; }
.client-article-library__filters .btn { flex: 0 0 auto; }
.client-article-library__heading { display: flex; align-items: baseline; justify-content: space-between; gap: var(--ui-space-4, 16px); border-bottom: 1px solid var(--ui-border-control); padding-bottom: var(--ui-space-3, 12px); }
.client-article-library__heading h2 { margin: 0; color: var(--color-primary-strong); font-size: var(--font-size-section-title); font-weight: var(--font-weight-body); }
.client-article-library__heading strong, .client-article-library .client-page-banner strong { color: var(--color-secondary); font-weight: var(--font-weight-title); }
.client-article-library__heading p { margin: 0; color: var(--color-text-soft); }
.client-article-library__empty { padding: var(--ui-space-6, 24px); }
.client-article-library__empty h3 { margin-top: 0; }
@media (max-width: 640px) { .client-article-library__content { padding: var(--ui-space-4, 16px); } .client-article-library__filters label, .client-article-library__filters > .ui-autocomplete { flex-basis: 100%; max-width: none; } }

.ui-autocomplete { position: relative; display: grid; gap: var(--ui-space-2, 8px); min-width: 0; max-width: 100%; box-sizing: border-box; }
.ui-autocomplete > label { font-weight: var(--font-weight-label); }
.ui-autocomplete__options { position: absolute; z-index: var(--ui-layer-menu, 35); top: calc(100% + 4px); left: 0; right: 0; max-height: 260px; overflow-y: auto; padding: var(--ui-space-2, 8px); border: 1px solid var(--color-border); border-radius: var(--ui-radius-card, 16px); background: var(--color-surface); box-shadow: var(--ui-shadow-card); }
.ui-autocomplete__options[hidden], .ui-autocomplete__options button[hidden], .ui-autocomplete__message[hidden] { display: none; }
.ui-autocomplete__options button { display: block; width: 100%; min-height: 42px; padding: 9px 12px; border: 0; border-radius: var(--ui-radius-control, 10px); background: transparent; color: var(--color-text); font: inherit; text-align: left; cursor: pointer; }
.ui-autocomplete__options button:hover, .ui-autocomplete__options button[aria-selected="true"] { background: var(--color-primary-soft); color: var(--color-primary-strong); }
.ui-autocomplete__options button:focus-visible { outline: 2px solid var(--color-primary); outline-offset: -2px; }
.ui-autocomplete__message { color: var(--color-danger); font-size: var(--font-size-help); font-weight: var(--font-weight-body); }
@media (max-width: 900px) { .client-portal-article-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .client-portal-article-grid { grid-template-columns: minmax(0, 1fr); } }
.client-portal-practice-grid { display: grid; gap: var(--ui-space-3, 12px); grid-template-columns: repeat(4, minmax(0, 1fr)); }
.client-portal-practice-card { align-items: center; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--ui-radius-card, 16px); box-shadow: 0 6px 16px rgb(var(--color-primary-rgb) / .06); color: var(--color-primary); display: grid; gap: var(--ui-space-3, 12px); grid-template-columns: 42px minmax(0, 1fr) 18px; min-height: 72px; padding: var(--ui-space-3, 12px) var(--ui-space-4, 16px); text-decoration: none; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.client-portal-practice-card:hover { border-color: var(--color-secondary); box-shadow: 0 10px 22px rgb(var(--color-primary-rgb) / .12); color: var(--color-primary); transform: translateY(-2px); }
.client-portal-practice-card:focus-visible { outline: 3px solid var(--color-secondary); outline-offset: 3px; }
.client-portal-practice-card__icon { align-items: center; background: var(--color-primary-soft); border-radius: 13px; display: inline-flex; height: 42px; justify-content: center; width: 42px; }
.client-portal-practice-card svg { fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.client-portal-practice-card__icon svg { height: 24px; width: 24px; }
.client-portal-practice-card strong { font-size: var(--font-size-label); line-height: 1.25; }
.client-portal-practice-card__arrow { height: 18px; opacity: .62; transition: transform .18s ease; width: 18px; }
.client-portal-practice-card:hover .client-portal-practice-card__arrow { transform: translateX(3px); }
@media (max-width: 980px) { .client-portal-practice-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 700px) { .client-portal-practice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .client-portal-home__section { min-height: 0; padding: 42px 16px; } }
@media (max-width: 520px) { .client-portal-practice-card { gap: var(--ui-space-2, 8px); grid-template-columns: 36px minmax(0, 1fr); min-height: 66px; padding: 10px; } .client-portal-practice-card__icon { border-radius: 11px; height: 36px; width: 36px; } .client-portal-practice-card__icon svg { height: 21px; width: 21px; } .client-portal-practice-card__arrow { display: none; } }
/* Shared authenticated-client page banner; keep public/onboarding screens unchanged. */
.client-portal-content main:has(> .client-page-banner) { max-width: none; --client-page-gutter: 24px; }
.client-portal-content .client-page-banner { position: relative; isolation: isolate; overflow: hidden; background: var(--color-hero-night); color: var(--color-surface); border: 0; border-radius: 0; box-shadow: none; padding: var(--ui-space-6, 24px) clamp(16px, 3vw, 48px); width: auto; max-width: none; }
.client-portal-content main > .client-page-banner { margin: calc(-1 * var(--client-page-gutter, 24px)) calc(-1 * var(--client-page-gutter, 24px)) var(--ui-space-6, 24px); }
.public-directory-page .client-article-library > .client-page-banner { border-radius: var(--ui-radius-card, 20px) var(--ui-radius-card, 20px) 0 0; overflow: hidden; }
.client-portal-content .client-page-banner--standalone { display: flex; align-items: center; justify-content: space-between; margin: 0; }
.client-portal-content .client-page-banner--standalone h1 { margin: 0; }
.client-support-form { width: min(100%, 44rem); margin: 0 auto; padding: var(--ui-space-6, 24px); }
.client-support-form h2 { margin-top: 0; }
.client-support-form form { display: grid; grid-template-columns: minmax(0, 1fr); min-width: 0; gap: var(--ui-space-2, 8px); border-top: 1px solid var(--color-border); padding-top: var(--ui-space-5, 20px); }
.ui-select { position: relative; display: inline-grid; width: max-content; max-width: 100%; min-width: 0; justify-self: start; }
.ui-select__native { position: absolute; opacity: 0; pointer-events: none; width: 1px !important; min-width: 1px !important; height: 1px; padding: 0; border: 0; }
.ui-select__trigger.input { display: flex; align-items: center; justify-content: space-between; gap: var(--ui-space-4); width: 100%; max-width: 100%; text-align: left; white-space: normal; cursor: pointer; color: var(--color-text); background: var(--color-surface, #fff); }
.ui-select__trigger::after { content: ''; width: .45em; height: .45em; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); flex-shrink: 0; }
.ui-select__trigger[aria-expanded="true"]::after { transform: rotate(225deg); }
.ui-select__trigger[aria-invalid="true"] { border-color: var(--color-danger, #b5424c); }
.ui-select__list { position: absolute; z-index: 100; top: calc(100% + 6px); left: 0; min-width: 100%; width: max-content; max-width: min(34rem, calc(100vw - 4rem)); max-height: 18rem; overflow-y: auto; box-sizing: border-box; padding: var(--ui-space-2); border: 1px solid var(--color-border); border-radius: 12px; background: var(--color-surface, #fff); box-shadow: 0 8px 24px rgb(0 0 0 / 12%); }
.ui-select__list[hidden] { display: none; }
.ui-select__option { padding: var(--ui-space-2) var(--ui-space-3); border-radius: 6px; cursor: pointer; color: var(--color-text); font-size: var(--font-size-body); }
.ui-select__option:hover, .ui-select__option.is-active { background: var(--color-primary); color: #fff; }
.ui-select__option[aria-selected="true"] { font-weight: 700; }
.ui-select--text .ui-select__trigger.input { width: auto; min-height: 0; padding: var(--ui-space-2) 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; color: var(--color-accent, #d76ca4); font-size: var(--font-size-body); font-weight: 600; }
.ui-select--text .ui-select__trigger.input:hover { background: transparent; color: #fff; }
.locale-switcher label:has(.ui-select)::after { content: none; }
.language-settings-form {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 12px;
  margin-top: 16px;
}

.language-settings-form__field {
  display: grid;
  gap: 6px;
  margin: 0;
}

.language-settings-form__select {
  width: auto;
  min-width: 160px;
  max-width: 100%;
}

.language-settings-form .btn {
  align-self: end;
}

@media (max-width: 560px) {
  .language-settings-form {
    align-items: stretch;
  }

  .language-settings-form__field,
  .language-settings-form .btn,
  .language-settings-form__select {
    width: 100%;
  }
}
.client-support-form select.input { width: auto; justify-self: start; min-width: 0; max-width: 100%; box-sizing: border-box; }
.client-support-form textarea { width: 100%; min-width: 0; max-width: 100%; box-sizing: border-box; resize: vertical; }
.client-support-form label { font-weight: var(--font-weight-label); }
.client-support-form label:not(:first-of-type) { margin-top: var(--ui-space-3, 12px); }
.client-support-form .muted { font-size: var(--font-size-help); }
.client-support-form > p { margin-block: var(--ui-space-4, 16px); overflow-wrap: anywhere; }
.client-support-form a { color: var(--color-primary); font-weight: var(--font-weight-label); }
.client-support-actions { border-top: 1px solid var(--color-border); padding-top: var(--ui-space-4, 16px); margin-top: var(--ui-space-2, 8px); }
.client-support-trap { display: none; }
.client-portal-content .client-help-page > .client-page-banner { margin: 0; }
.client-portal-content .client-page-banner::before { content: ""; display: block; position: absolute; z-index: 0; pointer-events: none; top: -58%; right: -28%; left: -22%; height: 204%; background: var(--color-secondary-muted); opacity: .12; mask-image: url("/assets/images/client-home-cat-paw-trail.png"); mask-position: center; mask-repeat: no-repeat; mask-size: auto 100%; -webkit-mask-image: url("/assets/images/client-home-cat-paw-trail.png"); -webkit-mask-position: center; -webkit-mask-repeat: no-repeat; -webkit-mask-size: auto 100%; }
.client-portal-content .client-page-banner::after { content: none; }
.client-portal-content .client-page-banner > * { position: relative; z-index: 1; }
.client-portal-content .client-page-banner h1,
.client-portal-content .client-page-banner p { color: var(--color-surface); }
.client-portal-content .client-page-banner .badge { background: var(--color-secondary-soft); color: var(--color-secondary-muted); justify-self: start; }
.client-portal-content .client-page-banner .client-portal-breadcrumb { --breadcrumb-current-color: var(--color-secondary-muted); }
.client-portal-content .client-page-banner { flex-wrap: wrap; }
.client-portal-content .client-page-banner > .client-portal-breadcrumb { flex: 0 0 100%; grid-column: 1 / -1; }
.client-portal-content .client-page-banner .client-portal-breadcrumb a { color: var(--color-surface); }
@media (max-width: 680px) {
    .client-portal-content main:has(> .client-page-banner) { --client-page-gutter: 16px; }
    .client-portal-content .client-page-banner.client-portal-hero { flex-wrap: nowrap; }
    .client-portal-content .client-page-banner.client-portal-hero > .client-portal-breadcrumb { flex-basis: auto; }
}
.client-portal-home__paired-sections > .client-portal-home__section { padding-inline: clamp(16px, 2.5vw, 32px); }
.client-portal-home__panel-scroll { flex: 1 1 auto; min-width: 0; min-height: 0; overflow: auto; padding-right: var(--ui-space-2, 8px); scrollbar-width: thin; }
.client-portal-home__panel-scroll::-webkit-scrollbar { width: 10px; }
.client-portal-home__panel-scroll::-webkit-scrollbar-track { background: transparent; }
.client-portal-home__panel-scroll::-webkit-scrollbar-thumb { border: 3px solid transparent; border-radius: var(--ui-radius-pill, 999px); background-clip: padding-box; }
.client-portal-home__panel-scroll--appointments, .client-portal-home__panel-scroll--practitioners { scrollbar-color: var(--color-border) transparent; }
.client-portal-home__panel-scroll--appointments::-webkit-scrollbar-thumb, .client-portal-home__panel-scroll--practitioners::-webkit-scrollbar-thumb { background-color: var(--color-border); }
.client-portal-home__panel-empty { margin: 0; color: var(--color-text-soft); line-height: var(--line-height-body); }
.client-portal-home__compact-table { width: 100%; min-width: max-content; border-collapse: collapse; border-top: 1px solid var(--color-border); color: var(--color-text-soft); font-size: var(--font-size-help); line-height: var(--line-height-body); white-space: nowrap; }
.client-portal-home__compact-table td { height: 42px; padding: var(--ui-space-1, 4px) var(--ui-space-2, 8px); border-bottom: 1px solid var(--color-border); vertical-align: middle; }
.client-portal-home__compact-table td:first-child { padding-left: 0; }
.client-portal-home__compact-table td:last-child { padding-right: 0; text-align: right; }
.client-portal-home__compact-table--appointments tr:nth-child(even) td { background: rgb(var(--color-identity-rgb) / .05); }
.client-portal-home__compact-table--practitioners tr:nth-child(even) td { background: rgb(var(--color-secondary-rgb) / .05); }
.client-portal-home__appointment-row .client-portal-appointments__date { display: inline-flex; align-items: baseline; gap: var(--ui-space-2, 8px); color: var(--color-identity-strong); font-weight: var(--font-weight-label); }
.client-portal-home__appointment-row .client-portal-appointments__date strong { color: var(--color-primary-strong); font-size: inherit; font-weight: var(--font-weight-title); }
.client-portal-home__appointment-row td:nth-child(2), .client-portal-home__practitioner-business { color: var(--color-primary); font-weight: var(--font-weight-label); }
.client-portal-home__appointment-row .badge {
  display: inline-flex;
  align-items: center;
  margin-bottom: 0;
  padding: 2px 7px;
  font-size: var(--font-size-caption, 12px);
  line-height: 1.2;
  box-shadow: none;
}
.client-portal-home__practitioner-person, .client-portal-home__practitioner-phone { color: var(--color-text-soft); }
.client-portal-home__practitioner-phone { color: var(--color-primary-strong); font-weight: var(--font-weight-label); }
.client-portal-home__practitioner-business { color: var(--color-primary); text-decoration: none; }
.client-portal-home__practitioner-business:hover, .client-portal-home__practitioner-business:focus-visible { color: var(--color-secondary-deep); }
.client-portal-home__practitioner-actions { display: inline-flex; align-items: center; flex-wrap: nowrap; justify-content: flex-end; gap: var(--ui-space-1, 4px); white-space: nowrap; }
.client-portal-home__practitioner-actions > .btn, .client-portal-home__appointment-row .btn { width: auto; min-height: 30px; padding: 5px var(--ui-space-2, 8px); font-size: var(--font-size-caption); }
.client-portal-home__search h1 { margin: 0 0 var(--ui-space-5, 20px); color: var(--color-surface); font-weight: var(--font-weight-body, 400); }
.client-portal-home__search h1 strong { color: var(--color-secondary-muted); font-weight: var(--font-weight-title); }
.client-portal-home__visual { position: relative; isolation: isolate; min-width: 0; display: grid; place-items: center; padding: 0; box-sizing: border-box; }
.client-portal-footer--compact { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--ui-space-4, 16px) var(--ui-space-6, 24px); padding: var(--ui-space-5, 20px) clamp(16px, 3vw, 48px); background: var(--color-primary-deep); color: var(--color-surface); font-size: var(--font-size-help); }
.client-portal-footer--compact nav { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--ui-space-3, 12px) var(--ui-space-5, 20px); }
.client-portal-footer--compact a { color: var(--color-surface); font-weight: var(--font-weight-label); }
.client-portal-footer--expanded { display: block; box-sizing: border-box; padding: clamp(36px, 5vw, 60px) clamp(24px, 5vw, 72px); background: var(--color-primary-deep); color: var(--color-surface); container-type: inline-size; }
.client-portal-content:not(.client-portal-content--flush):has(> .client-portal-footer) { padding-bottom: 0; }
.client-portal-footer__inner { display: grid; grid-template-columns: minmax(76px, .45fr) minmax(0, 3fr) minmax(196px, .9fr); gap: 0; width: min(1180px, 100%); margin: 0 auto; }
.client-portal-footer__introduction { min-width: 0; }
.client-portal-footer__brand { display: inline-flex; align-items: center; color: var(--color-surface); text-decoration: none; }
.client-portal-footer__brand > span { display: grid; place-items: center; width: 60px; height: 60px; border-radius: var(--ui-radius-card, 18px); background: var(--color-surface); }
.client-portal-footer__brand img { display: block; width: 50px; height: 50px; object-fit: contain; }
.client-portal-footer__navigation { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); min-width: 0; }
.client-portal-footer__navigation section,.client-portal-footer__locale { min-width: 0; padding: 0 clamp(16px, 2vw, 30px); border-left: 1px solid rgb(var(--color-white-rgb) / .2); }
.client-portal-footer__navigation h2 { margin: 0 0 var(--ui-space-3, 12px); color: var(--color-secondary-muted); font-size: var(--font-size-body, .875rem); font-weight: var(--font-weight-body, 400); line-height: 1.4; }
.client-portal-footer__navigation nav { display: grid; align-items: start; gap: 3px; }
.client-portal-footer__navigation a { width: fit-content; max-width: 100%; padding: 5px 0; color: var(--color-surface); font-size: var(--font-size-help, .8125rem); font-weight: var(--font-weight-label, 600); line-height: 1.4; text-decoration: none; }
.client-portal-footer__navigation a:hover { color: var(--color-secondary-muted); }
.client-portal-footer__navigation a:focus-visible { color: var(--color-secondary-muted); outline: 2px solid currentColor; outline-offset: 2px; }
.client-portal-footer__locale .footer-language { margin-top: 0; }
.client-portal-footer__locale .footer-language label { color: var(--color-secondary-muted); }
.client-portal-footer__locale .footer-language__choice,.client-portal-footer__locale .footer-language__choice .ui-select__trigger.input { color: var(--color-surface); }
.client-portal-footer__practices { display: grid; grid-template-columns: minmax(180px, .7fr) minmax(0, 2.3fr); gap: clamp(28px, 5vw, 68px); width: min(1180px, 100%); margin: clamp(36px, 5vw, 54px) auto 0; padding-top: var(--ui-space-6, 24px); border-top: 1px solid rgb(var(--color-white-rgb) / .2); }
.client-portal-footer__practices header > span { display: block; margin-bottom: 5px; color: var(--color-secondary-muted); font-size: var(--font-size-caption); font-weight: var(--font-weight-label); letter-spacing: .08em; text-transform: uppercase; }
.client-portal-footer__practices h2 { margin: 0; color: var(--color-surface); font-size: var(--font-size-card-title); line-height: 1.25; }
.client-portal-footer__practices nav { display: flex; flex-wrap: wrap; align-content: start; gap: var(--ui-space-2, 8px); }
.client-portal-footer__practices a { display: inline-flex; align-items: center; gap: 7px; width: fit-content; padding: 8px 10px; border: 1px solid rgb(var(--color-white-rgb) / .25); border-radius: var(--ui-radius-control, 12px); color: var(--color-surface); font-size: var(--font-size-help); font-weight: var(--font-weight-body); text-decoration: none; }
.client-portal-footer__practices a:hover,.client-portal-footer__practices a:focus-visible { border-color: var(--color-secondary-muted); color: var(--color-secondary-muted); outline: 2px solid var(--color-focus); }
.client-portal-footer__practices svg { fill: none; flex: 0 0 18px; width: 18px; height: 18px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
@container (max-width: 790px) { .client-portal-footer__inner,.client-portal-footer__practices { grid-template-columns: minmax(0, 1fr); gap: var(--ui-space-6, 24px); } .client-portal-footer__locale { border-left: 0; padding: 0; } }
@container (max-width: 560px) { .client-portal-footer__navigation { grid-template-columns: minmax(0, 1fr); gap: var(--ui-space-5, 20px); } .client-portal-footer__navigation section,.client-portal-footer__navigation section:first-child,.client-portal-footer__locale { padding: var(--ui-space-5, 20px) 0 0; border-top: 1px solid rgb(var(--color-white-rgb) / .2); border-left: 0; } .client-portal-footer__practices { gap: var(--ui-space-4, 16px); } }
.practitioner-footer { container-type: inline-size; }
.footer-language { display: grid; justify-items: start; gap: var(--ui-space-2, 8px); margin-top: var(--ui-space-5, 20px); min-width: 0; text-align: left; }
.footer-language label { color: var(--color-secondary-muted); font-size: var(--font-size-help); font-weight: var(--font-weight-label); }
.footer-language__label { color: var(--color-secondary-muted); font-size: var(--font-size-help); font-weight: var(--font-weight-label); }
.footer-language__locked { font-weight: var(--font-weight-label); }
.footer-language__upgrade { display: inline-flex; flex: none; align-items: center; min-height: 24px; padding: 2px 8px; border-radius: 999px; background: var(--ui-back-icon-background); color: var(--ui-back-icon-foreground); font-size: var(--font-size-help); font-weight: var(--font-weight-label); text-decoration: none; white-space: nowrap; }
.footer-language__upgrade:hover,.footer-language__upgrade:focus-visible { background: color-mix(in srgb, var(--ui-back-icon-background) 82%, var(--color-surface)); color: var(--ui-back-icon-foreground); outline: 2px solid var(--color-focus); outline-offset: 2px; }
.footer-language__choice { display: flex; align-items: center; gap: var(--ui-space-2, 8px); max-width: 100%; color: var(--color-surface); }
.footer-language__choice > svg { display: block; width: 20px; height: 20px; flex: 0 0 20px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.footer-language__choice form { display: flex; align-items: center; gap: var(--ui-space-2, 8px); min-width: 0; margin: 0; }
.footer-language__choice select.input { width: auto; min-width: 145px; max-width: 100%; box-sizing: border-box; }
.footer-language__choice .ui-select__trigger.input { width: auto; min-height: 38px; padding: var(--ui-space-2, 8px); color: var(--color-surface); }
.footer-language__choice .ui-select__trigger.input:hover,.footer-language__choice .ui-select__trigger.input:focus-visible { color: var(--color-secondary-muted); outline: 2px solid var(--color-focus); outline-offset: 2px; }
.footer-language__choice .ui-select__list { top: auto; bottom: calc(100% + var(--ui-space-2, 8px)); left: 0; right: auto; min-width: 160px; padding: var(--ui-space-2, 8px); }
.footer-language__choice .ui-select__option { padding: var(--ui-space-2, 8px) var(--ui-space-3, 12px); font-size: var(--font-size-body, inherit); }
.client-portal-footer--compact .footer-language { margin-top: 0; }
.client-portal-footer--compact .footer-language label { color: var(--color-secondary-muted); }
.client-portal-footer--compact .footer-language__choice,.client-portal-footer--compact .footer-language__choice .ui-select__trigger.input { color: var(--color-surface); }
.footer-legal-strip { box-sizing: border-box; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ui-space-3, 12px) var(--ui-space-6, 24px); width: 100%; padding: var(--ui-space-5, 20px) max(16px, calc((100% - 1180px) / 2)); border-top: 1px solid var(--color-border); background: var(--color-surface); }
.footer-legal-strip nav { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ui-space-3, 12px) var(--ui-space-6, 24px); min-width: 0; }
.footer-legal-strip > span { flex: 0 0 auto; color: var(--color-text-subtle); font-size: var(--font-size-caption, .75rem); white-space: nowrap; }
.footer-legal-strip a { color: var(--color-text-subtle); font-size: var(--font-size-caption, .75rem); font-weight: var(--font-weight-body, 400); line-height: var(--line-height-body, 1.5); text-decoration: none; }
.footer-legal-strip a:hover { color: var(--color-primary); }
.footer-legal-strip a:focus-visible { color: var(--color-primary); outline: 2px solid currentColor; outline-offset: 4px; border-radius: 2px; }
@media (max-width: 640px) { .footer-legal-strip { padding-bottom: calc(var(--ui-space-5, 20px) + 72px); } .footer-legal-strip nav { gap: var(--ui-space-3, 12px) var(--ui-space-5, 20px); } }
.client-portal-home__image { width: auto; max-width: 100%; height: auto; max-height: calc(48svh - 32px); justify-self: center; border-radius: var(--ui-radius-card, 18px); display: block; }
.directory-search-bar { display: grid; grid-template-columns: minmax(0, 2.5fr) minmax(0, 2.5fr) auto; background: var(--color-surface); border-radius: var(--ui-radius-pill, 999px); position: relative; min-width: 0; }
.directory-search-bar__suggestions { position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 20; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--ui-radius-card, 16px); box-shadow: var(--ui-shadow-card); padding: var(--ui-space-2, 8px); max-height: 260px; overflow-y: auto; }
.directory-search-bar__suggestions[hidden], .directory-search-bar__suggestions button[hidden] { display: none; }
.directory-search-bar__suggestions button { display: block; width: 100%; text-align: left; border: 0; background: transparent; color: var(--color-text); padding: 12px; font: inherit; cursor: pointer; }
.directory-search-bar__suggestions button:hover, .directory-search-bar__suggestions button[aria-selected=true] { background: var(--color-primary-soft); color: var(--color-primary); }
.directory-search-bar__part { display: flex; align-items: center; gap: var(--ui-space-2, 8px); padding: 12px; min-width: 0; margin: 0; }
.directory-search-bar svg { width: 20px; height: 20px; flex: 0 0 20px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.directory-search-bar input[type=search] { width: 100%; min-width: 0; border: 0; background: transparent; padding: 8px 0; font-family: inherit; font-size: var(--font-size-body); font-weight: var(--font-weight-body); line-height: var(--line-height-body); color: var(--color-text); box-shadow: none; }
.directory-search-bar input[type=search]::placeholder { font-size: inherit; font-weight: inherit; color: var(--color-text-soft); opacity: 1; }
.directory-search-bar__location { border-left: 1px solid var(--color-border); }
.directory-search-bar__locate { border: 0; background: transparent; color: var(--color-primary); display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 42px; cursor: pointer; padding: 0; }
.directory-search-bar__submit { border: 0; border-radius: 0 var(--ui-radius-pill, 999px) var(--ui-radius-pill, 999px) 0; background: var(--color-primary); color: var(--color-surface); font-size: var(--font-size-control); font-weight: var(--font-weight-label); display: flex; align-items: center; justify-content: center; gap: 6px; padding: 12px 20px; cursor: pointer; }
.directory-search-bar__submit svg { transform: none; }
.client-portal-home__hero .directory-search-bar__submit { background: var(--color-primary); }
.directory-search-bar__locate[aria-busy="true"] { opacity: .45; cursor: progress; }
.directory-search-bar input[type=search]:focus { outline: none; border: 0; box-shadow: none; }
.directory-search-bar input[type=search]:focus-visible { background-color: var(--color-primary-soft); }
.directory-search-bar button:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 3px; }
@container (max-width: 850px) { .directory-search-bar { grid-template-columns: minmax(0, 1fr); border-radius: var(--ui-space-8, 32px); } .directory-search-bar__location { border-left: 0; border-top: 1px solid var(--color-border); } .directory-search-bar__submit { border-radius: 0 0 var(--ui-space-8, 32px) var(--ui-space-8, 32px); } }
@media (max-width: 640px) { .client-portal-home__hero { grid-template-columns: minmax(0, 1fr); } .client-portal-home__image { max-width: 420px; justify-self: center; } }
.login-password-group > .field { margin: 0; }
.login-password-group > .login-password-forgotten { justify-self: end; text-align: right; font-size: var(--font-size-help); font-weight: var(--font-weight-label); line-height: var(--line-height-help, 1.4); }
.login-card--recovery { width: min(100%, 52ch); display: grid; gap: var(--ui-space-4, 16px); }
.login-card--recovery > p { margin: 0; }
.login-card--recovery .login-card__header, .login-card--recovery h1 { margin: 0; }
.login-card--recovery > p:last-child { padding-top: var(--ui-space-4, 16px); border-top: 1px solid var(--color-border); }
.login-card--recovery form { display: grid; gap: var(--ui-space-4, 16px); min-width: 0; }
.login-card--recovery .input { width: auto; max-width: 100%; box-sizing: border-box; }
.login-card--recovery .field { display: grid; gap: var(--ui-space-2, 8px); justify-items: start; margin: 0; min-width: 0; }
.login-card--recovery form > p { margin: 0; }
.login-card--recovery .field small { font-size: var(--font-size-help); color: var(--color-text-soft); }
.login-card--recovery .btn { justify-self: start; width: auto; max-width: 100%; }

.account-totp-wizard [hidden] { display: none; }
.account-totp-open-app {
  display: flex;
  align-items: center;
  gap: var(--ui-space-4, 16px);
  margin-bottom: var(--ui-space-4, 16px);
}
.account-totp-open-app > img { flex: 0 0 40px; }
.account-totp-open-app > h3 { margin: 0; min-width: 0; }
.account-totp-install {
  padding: var(--ui-space-4, 16px);
  border: 1px solid var(--color-border);
  border-radius: var(--ui-radius-control, 8px);
  background: var(--color-bg);
}
.account-totp-install > p { margin: 0 0 .5rem; font-size: var(--font-size-help); }
.account-totp-install > p strong { display: block; }
.app-confirm-modal__panel.account-totp-wizard {
  box-sizing: border-box;
  min-height: 0;
  max-height: calc(100dvh - 2 * var(--ui-space-5, 1.25rem));
  overflow-y: auto;
  overscroll-behavior: contain;
}
.account-store-badges { align-items: center; flex-wrap: wrap; }
.account-store-badges a { display: inline-flex; max-width: 100%; }
.account-store-badges img { display: block; height: 44px; width: auto; max-width: 100%; object-fit: contain; }
.account-store-badges img.account-store-badges__google { height: 58px; }
.account-totp-wizard > .badge { width: fit-content; margin-block: var(--ui-space-4, 16px); }
.account-totp-wizard [data-totp-step] { min-width: 0; }
.account-totp-wizard .account-totp-qr { width: min(100%, 240px); margin: var(--ui-space-4, 16px) auto; }
.account-totp-wizard .field { display: grid; justify-items: start; gap: .5rem; }
.account-totp-wizard .input { width: auto; max-width: 100%; box-sizing: border-box; }
.account-totp-wizard .app-confirm-modal__header {
  border-bottom: 1px solid var(--color-border);
  padding-bottom: var(--ui-space-4, 16px);
}
.account-totp-wizard .field,
.account-totp-wizard .account-secret-manual {
  border-top: 1px solid var(--color-border);
  padding-top: var(--ui-space-4, 16px);
  margin-top: var(--ui-space-4, 16px);
}
.account-totp-wizard .app-confirm-modal__actions {
  border-top: 1px solid var(--color-border);
  padding-top: var(--ui-space-4, 16px);
  margin-top: var(--ui-space-4, 16px);
  flex-wrap: wrap;
}
.account-totp-wizard .btn { white-space: normal; max-width: 100%; }
.account-totp-wizard [data-totp-feedback]:not(:empty) { margin-top: var(--ui-space-4, 16px); }
.account-totp-wizard .account-secret-manual .btn { margin-top: .75rem; }
.account-security-card--authenticator > .btn { justify-self: start; }
.account-recovery-section .account-recovery-renew {
  display: grid;
  align-content: start;
  gap: .75rem;
  width: fit-content;
  max-width: 100%;
  min-width: 0;
  justify-items: start;
}
.account-recovery-section { container-type: inline-size; width: min(100%, 84ch); box-sizing: border-box; justify-self: start; }
.account-recovery-section__header { display: flex; align-items: center; flex-wrap: wrap; gap: var(--ui-space-4, 16px); border-bottom: 1px solid var(--color-border); padding-bottom: var(--ui-space-4, 16px); }
.account-recovery-section__header h2 { margin: 0; }
.account-recovery-section__body { display: grid; grid-template-columns: minmax(0, 44ch) minmax(0, 32ch); gap: var(--ui-space-5, 1.25rem); padding-top: var(--ui-space-4, 16px); align-items: start; }
.account-recovery-section__instructions { display: grid; gap: .75rem; }
.account-recovery-section__body p,
.account-recovery-section__body h3 { margin: 0; }
.account-recovery-section__note { color: var(--color-text-soft); font-size: var(--font-size-help); }
.account-recovery-section .account-recovery-renew { border-left: 1px solid var(--color-border); padding-left: var(--ui-space-5, 1.25rem); box-sizing: border-box; }
@container (max-width: 40rem) {
  .account-recovery-section__body { grid-template-columns: minmax(0, 1fr); }
  .account-recovery-section .account-recovery-renew { border-left: 0; padding-left: 0; border-top: 1px solid var(--color-border); padding-top: var(--ui-space-4, 16px); }
}
.account-recovery-renew .field {
  display: grid;
  gap: .5rem;
  min-width: 0;
  max-width: 100%;
  justify-items: start;
}
.account-recovery-renew .input {
  width: auto;
  max-width: 100%;
  box-sizing: border-box;
}
.account-recovery-renew > .btn {
  width: auto;
  max-width: 100%;
  white-space: normal;
}
.client-portal-confirm-modal__content { display: grid; gap: 18px; padding: 24px; }
.client-portal-confirm-modal__header { align-items: flex-start; display: flex; gap: 16px; justify-content: space-between; }
.client-portal-confirm-modal__header > div { display: grid; gap: 8px; }
.client-portal-confirm-modal__header h2 { color: var(--color-primary-strong); font-size: var(--font-size-card-title, 1.34rem); margin: 0; }
.client-portal-confirm-modal__content > p { color: var(--color-text-soft); line-height: 1.55; margin: 0; }
.client-portal-confirm-modal__close { align-items: center; background: transparent; border: 1px solid rgb(var(--color-primary-rgb) / .2); border-radius: var(--ui-radius-control, 8px); color: var(--color-text-soft); cursor: pointer; display: inline-flex; font-size: 1.4rem; height: 32px; justify-content: center; line-height: 1; padding: 0; width: 32px; }
.client-portal-confirm-modal__close:hover, .client-portal-confirm-modal__close:focus-visible { border-color: var(--color-secondary-deep); color: var(--color-secondary-deep); }
.client-portal-confirm-modal__actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
@media (max-width: 460px) { .client-portal-confirm-modal__actions .btn { width: 100%; } }
.client-portal-animal--add { align-content: center; align-items: center; background: rgb(var(--color-primary-rgb) / .04); border-style: dashed; color: var(--color-primary-strong); justify-content: center; text-align: center; text-decoration: none; }
.client-portal-animal--add > span { align-items: center; background: var(--color-primary); border-radius: 50%; color: var(--color-surface); display: flex; font-size: var(--font-size-body, 1.3rem); height: 34px; justify-content: center; width: 34px; }
@media (prefers-reduced-motion: reduce) { .client-portal-animal--managed { transition: none; } .client-portal-animal--managed:has(.client-portal-animal__link:hover), .client-portal-animal--managed:has(.client-portal-animal__link:focus-visible) { transform: none; } }
.client-portal-animal-form { display: grid; gap: 18px; }
.client-portal-animal-wizard { margin: 0 auto; max-width: 720px; }
.client-portal-question-progress { display: grid; gap: 8px; }
.client-portal-question-progress > span { color: var(--color-primary-strong); font-size: var(--font-size-table, .82rem); font-weight: var(--font-weight-label, 800); letter-spacing: .04em; }
.client-portal-question-progress > div { background: rgb(var(--color-primary-rgb) / .12); border-radius: 999px; height: 7px; overflow: hidden; }
.client-portal-question-progress i { background: var(--color-secondary); border-radius: inherit; display: block; height: 100%; transition: width .24s ease; width: 0; }
.client-portal-question { background: var(--color-surface); border: 1px solid rgb(var(--color-primary-rgb) / .16); border-radius: 20px; box-shadow: 0 14px 34px rgb(var(--color-primary-rgb) / .07); display: grid; gap: 20px; min-height: 360px; padding: clamp(24px, 5vw, 48px); }
.client-portal-animal-wizard .client-portal-question { align-content: center; min-height: var(--ui-section-min-height); }
.client-portal-question[hidden] { display: none; }
.client-portal-question > span { color: var(--color-secondary-deep); font-size: var(--font-size-table, .76rem); font-weight: var(--font-weight-label, 850); letter-spacing: .07em; text-transform: uppercase; }
.client-portal-question h2 { color: var(--color-primary-strong); font-size: var(--font-size-section-title, clamp(1.45rem, 3vw, 2rem)); line-height: var(--line-height-title, 1.16); margin: -8px 0 0; max-width: 580px; }
.client-portal-question > p { color: var(--color-text-soft); line-height: 1.5; margin: -12px 0 0; max-width: 540px; }
.client-portal-question--consents { min-height: 0; }
.client-portal-consent-notice { background: rgb(var(--color-primary-rgb) / .055); border-left: 3px solid var(--color-secondary); border-radius: 0 10px 10px 0; color: var(--color-text-soft); margin: 0; max-width: 620px; padding: 14px 16px; }
.client-portal-consent-list { gap: 13px; max-width: 650px; }
.client-portal-consent-list > label { align-items: flex-start; background: rgb(var(--color-primary-rgb) / .025); border: 1px solid rgb(var(--color-primary-rgb) / .13); border-radius: 12px; display: flex; gap: 11px; line-height: 1.45; margin: 0; padding: 13px 14px; }
.client-portal-consent-list > label input { flex: 0 0 auto; margin-top: .25em; }
.client-portal-question > .field { max-width: 510px; }
.client-portal-question-fields { max-width: 650px; width: 100%; }
.client-portal-question-fields .field { min-width: 0; }
.client-portal-question-fields .field small { color: var(--color-text-muted); font-size: var(--font-size-help, .78em); font-weight: var(--font-weight-label, 600); }
.client-portal-animal-form .field:has(input[required], select[required], textarea[required]) > span:first-child::after,
.client-portal-animal-form .aenima-phone-control:has(input[required]) > legend::after,
.client-portal-animal-form [data-client-portal-breed-combobox] .field > span:first-child::after,
.client-portal-animal-form [data-client-portal-coat-combobox] .field > span:first-child::after,
.client-portal-animal-form fieldset:has(input[name="activity_option_ids[]"]) > :is(legend, span:first-child)::after,
.client-portal-animal-form .client-portal-consent-list > legend::after {
  color: var(--color-secondary-deep);
  content: ' *';
  font-weight: 900;
}
.client-portal-animal-detail-page { display: block; }
.client-portal-animal-detail-page .animal-detail-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; }
.client-portal-animal-detail-page .animal-detail-action { width: auto; }
.animal-detail-share { align-items: center; justify-content: center; width: 50px; min-height: 50px; padding: 0; border: 1px solid rgb(var(--color-primary-rgb) / .34); border-radius: var(--ui-radius-control, 14px); background: var(--color-surface); color: var(--color-primary-strong); cursor: pointer; transition: background-color var(--ui-motion-fast, .16s) ease, border-color var(--ui-motion-fast, .16s) ease, color var(--ui-motion-fast, .16s) ease, transform var(--ui-motion-fast, .16s) ease; }
.animal-detail-share svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.animal-detail-share:not(:disabled):hover, .animal-detail-share:not(:disabled):focus-visible { border-color: var(--color-primary); background: var(--color-primary); color: var(--color-surface); outline: 0; transform: translateY(-1px); }
.client-portal-animal-profile-panels { margin-bottom: 18px; }
.client-portal-gallery-panel { grid-column: 1 / -1; min-width: 0; }
.client-portal-gallery-panel > .client-portal-gallery { margin: 0; }
@media (max-width: 680px) { .client-portal-animal-detail-page .animal-detail-actions { justify-content: flex-start; } }
.client-portal-optional-note { color: var(--color-secondary-deep); display: block; font-size: var(--font-size-help, .76rem); font-weight: var(--font-weight-label, 760); letter-spacing: .01em; margin-top: 6px; }
.client-portal-gallery { background: var(--color-surface); border: 1px solid rgb(var(--color-primary-rgb) / .16); border-radius: 16px; box-shadow: 0 10px 26px rgb(var(--color-primary-rgb) / .06); display: grid; gap: 15px; margin-top: 18px; padding: clamp(18px, 3vw, 28px); }
.client-portal-gallery__header { align-items: flex-start; border-bottom: 1px solid rgb(var(--color-primary-rgb) / .14); display: flex; gap: 14px; justify-content: space-between; padding-bottom: 12px; }
.client-portal-gallery__header-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 9px; justify-content: flex-end; }
.client-portal-gallery__header h2 { color: var(--color-primary-strong); font-size: var(--font-size-card-title, 1.08rem); font-weight: var(--font-weight-title, 900); margin: 0; }
.client-portal-gallery__header p { color: var(--color-text-soft); font-size: var(--font-size-table, .84rem); line-height: 1.45; margin: 4px 0 0; }
.client-portal-gallery__header-actions > span { background: rgb(var(--color-secondary-rgb) / .12); border: 1px solid rgb(var(--color-secondary-rgb) / .26); border-radius: 999px; color: var(--color-secondary-deep); font-size: var(--font-size-control, .76rem); font-weight: var(--font-weight-label, 850); padding: 5px 9px; white-space: nowrap; }
.client-portal-gallery__upload { background: rgb(var(--color-primary-rgb) / .035); border: 1px solid rgb(var(--color-primary-rgb) / .16); border-radius: 13px; padding: 18px; }
.client-portal-gallery__upload > header { align-items: center; border-bottom: 1px solid rgb(var(--color-primary-rgb) / .14); display: flex; gap: 10px; margin-bottom: 15px; padding-bottom: 12px; }
.client-portal-gallery__upload > header > span { align-items: center; background: var(--color-primary); border-radius: 8px; color: var(--color-surface); display: inline-flex; font-size: var(--font-size-caption, 1.18rem); font-weight: var(--font-weight-label, 900); height: 34px; justify-content: center; width: 34px; }
.client-portal-gallery__upload > header > div { display: grid; gap: 2px; }
.client-portal-gallery__upload > header small { color: var(--color-text-muted); font-size: var(--font-size-help, .68rem); font-weight: var(--font-weight-label, 850); letter-spacing: .08em; text-transform: uppercase; }
.client-portal-gallery__upload > header h3 { color: var(--color-primary-strong); font-size: var(--font-size-card-title, 1.02rem); margin: 0; }
.client-portal-gallery__upload form { display: grid; gap: 13px; }
.client-portal-gallery__file-picker { align-items: center; background: var(--color-surface); border: 1px dashed rgb(var(--color-primary-rgb) / .5); border-radius: 12px; color: var(--color-primary-strong); cursor: pointer; display: grid; gap: 4px; justify-items: center; min-height: 132px; padding: 18px; text-align: center; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.client-portal-gallery__file-picker:hover, .client-portal-gallery__file-picker:focus-within { border-color: var(--color-secondary-deep); box-shadow: 0 8px 20px rgb(var(--color-secondary-rgb) / .14); transform: translateY(-1px); }
.client-portal-gallery__file-picker input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.client-portal-gallery__file-picker svg { color: var(--color-secondary-deep); height: 27px; width: 27px; }
.client-portal-gallery__file-picker strong { font-size: var(--font-size-body, .93rem); }
.client-portal-gallery__file-picker small, .client-portal-gallery__file-status { color: var(--color-text-soft); font-size: var(--font-size-caption, .78rem); font-weight: var(--font-weight-label, 650); }
.client-portal-gallery__file-status { margin: -4px 0 0; text-align: center; }
.client-portal-gallery__file-preview { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(112px, 1fr)); }
.client-portal-gallery__file-preview figure { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 10px; margin: 0; min-width: 0; overflow: hidden; }
.client-portal-gallery__file-preview img { display: block; height: 92px; object-fit: cover; width: 100%; }
.client-portal-gallery__file-preview figcaption { color: var(--color-text-soft); font-size: var(--font-size-help, .7rem); font-weight: var(--font-weight-label, 750); overflow: hidden; padding: 7px 8px; text-overflow: ellipsis; white-space: nowrap; }
.client-portal-gallery__actions { display: flex; flex-wrap: wrap; gap: 9px; justify-content: flex-end; margin: 0; }
.client-portal-gallery__empty { background: rgb(var(--color-primary-rgb) / .035); border: 1px dashed rgb(var(--color-primary-rgb) / .22); border-radius: 10px; color: var(--color-text-soft); font-size: var(--font-size-body, .88rem); margin: 0; padding: 18px; text-align: center; }
.client-portal-gallery__grid { align-items: start; display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); min-width: 0; }
.client-portal-gallery__photo { align-content: start; background: #fff; border: 1px solid rgb(var(--color-primary-rgb) / .15); border-radius: 12px; display: grid; gap: 10px; min-width: 0; overflow: hidden; padding-bottom: 11px; }
.client-portal-gallery__photo > a { align-items: center; aspect-ratio: 4 / 3; background: #f5f2ec; display: flex; justify-content: center; overflow: hidden; }
.client-portal-gallery__photo > a img { display: block; height: 100%; object-fit: contain; transition: opacity .18s ease; width: 100%; }
.client-portal-gallery__photo > a:hover img, .client-portal-gallery__photo > a:focus-visible img { opacity: .86; }
.client-portal-gallery__photo-open { align-items: center; aspect-ratio: 4 / 3; background: #f5f2ec; border: 0; cursor: zoom-in; display: flex; justify-content: center; overflow: hidden; padding: 0; width: 100%; }
.client-portal-gallery__photo-open img { display: block; height: 100%; object-fit: contain; transition: opacity .18s ease; width: 100%; }
.client-portal-gallery__photo-open:hover img, .client-portal-gallery__photo-open:focus-visible img { opacity: .86; }
.client-portal-gallery__photo-open:focus-visible { outline: 3px solid var(--color-focus); outline-offset: -3px; }
.client-portal-gallery__photo > div, .client-portal-gallery__photo > details, .client-portal-gallery__photo > form { margin: 0 11px; }
.client-portal-gallery__photo > div { display: grid; gap: 3px; }
.client-portal-gallery__photo > div > span { color: var(--color-secondary-deep); font-size: .68rem; font-weight: 850; text-transform: uppercase; }
.client-portal-gallery__photo strong { color: var(--color-text); font-size: .9rem; }
.client-portal-gallery__photo p { color: var(--color-text-soft); font-size: .8rem; line-height: 1.35; margin: 0; }
.client-portal-gallery__photo time { color: var(--color-text-muted); font-size: .72rem; }
.client-portal-gallery__photo details summary { color: var(--color-primary-strong); cursor: pointer; font-size: .78rem; font-weight: 800; }
.client-portal-gallery__photo details[open] form { display: grid; gap: 8px; margin-top: 10px; }
.client-portal-gallery__delete { justify-self: end; }
.client-portal-gallery__lightbox { align-items: center; justify-content: center; padding: 18px; }
.client-portal-gallery__lightbox:not([hidden]) { display: flex; }
.client-portal-gallery__lightbox-panel { background: var(--color-surface); border: 1px solid rgb(var(--color-primary-rgb) / .18); border-radius: 16px; box-shadow: 0 24px 60px rgb(31 45 42 / .28); display: grid; gap: 16px; max-height: calc(100vh - 36px); max-width: min(920px, 100%); overflow: auto; padding: 18px; position: relative; width: min(920px, 100%); }
.client-portal-gallery__lightbox-panel > img { background: #f5f2ec; border-radius: 11px; display: block; max-height: min(52vh, 480px); object-fit: contain; width: 100%; }
.client-portal-gallery__lightbox-panel form { margin: 0; }
.client-portal-gallery__lightbox-panel form > header { border-bottom: 1px solid rgb(var(--color-primary-rgb) / .14); display: grid; gap: 3px; margin-bottom: 13px; padding-bottom: 12px; }
.client-portal-gallery__lightbox-panel form > header span { color: var(--color-secondary-deep); font-size: var(--font-size-caption, .68rem); font-weight: var(--font-weight-label, 850); letter-spacing: .06em; text-transform: uppercase; }
.client-portal-gallery__lightbox-panel h3 { color: var(--color-primary-strong); font-size: var(--font-size-card-title, 1.12rem); margin: 0; }
.client-portal-gallery__lightbox-readonly { display: grid; gap: 7px; }
.client-portal-gallery__lightbox-readonly > span { color: var(--color-secondary-deep); font-size: var(--font-size-table, .68rem); font-weight: var(--font-weight-label, 850); letter-spacing: .06em; text-transform: uppercase; }
.client-portal-gallery__lightbox-readonly p { color: var(--color-text-soft); line-height: 1.45; margin: 0; }
.client-portal-gallery__lightbox-readonly time { color: var(--color-text-muted); font-size: var(--font-size-help, .76rem); font-weight: var(--font-weight-label, 750); }
.client-portal-gallery__lightbox-close { align-items: center; background: var(--color-surface); border: 1px solid rgb(var(--color-primary-rgb) / .2); border-radius: 50%; color: var(--color-text); cursor: pointer; display: inline-flex; font-size: 1.35rem; height: 32px; justify-content: center; line-height: 1; padding: 0; position: absolute; right: 29px; top: 29px; width: 32px; z-index: 1; }
.client-portal-gallery__lightbox-close:hover, .client-portal-gallery__lightbox-close:focus-visible { border-color: var(--color-secondary-deep); color: var(--color-secondary-deep); }
.client-portal-gallery__lightbox-fields { display: grid; gap: 11px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.client-portal-gallery__lightbox-fields .field--wide { grid-column: 1 / -1; }
.client-portal-gallery__lightbox-fields textarea { min-height: 104px; resize: vertical; }
.client-portal-gallery__lightbox-panel footer { display: flex; justify-content: flex-end; margin-top: 14px; }
.client-portal-gallery__lightbox-delete { display: flex; justify-content: flex-end; }
@media (max-width: 560px) { .client-portal-gallery__lightbox { padding: 10px; } .client-portal-gallery__lightbox-panel { border-radius: 13px; padding: 14px; } .client-portal-gallery__lightbox-fields { grid-template-columns: minmax(0, 1fr); } .client-portal-gallery__lightbox-fields .field--wide { grid-column: auto; } .client-portal-gallery__lightbox-close { right: 22px; top: 22px; } }
@media (max-width: 560px) { .client-portal-gallery__header { align-items: flex-start; flex-direction: column; } .client-portal-gallery__actions .btn { width: 100%; } }
.client-portal-animal-edit-form { gap: 18px; }
.client-portal-animal-edit-form .client-portal-question { min-height: 0; padding: clamp(22px, 3vw, 34px); }
.client-portal-animal-edit-form [data-client-portal-next], .client-portal-animal-edit-form [data-client-portal-previous] { display: none; }
.client-portal-animal-edit-form .client-portal-wizard-actions { display: none; }
.client-portal-edit-actions { align-items: center; display: flex; gap: 12px; justify-content: flex-end; padding: 8px 0 18px; }
.client-portal-question .client-portal-choice { max-width: 590px; }
.client-portal-steps { display: grid; gap: 8px; grid-template-columns: repeat(3, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; }
.client-portal-steps li { align-items: center; color: var(--color-text-soft); display: flex; font-size: var(--font-size-table, .87rem); font-weight: var(--font-weight-label, 760); gap: 9px; min-width: 0; }
.client-portal-steps li span { align-items: center; background: rgb(var(--color-primary-rgb) / .11); border: 1px solid rgb(var(--color-primary-rgb) / .16); border-radius: 50%; color: var(--color-primary-strong); display: inline-flex; flex: 0 0 28px; height: 28px; justify-content: center; }
.client-portal-steps li.is-active { color: var(--color-primary-strong); }
.client-portal-steps li.is-active span { background: var(--color-primary); border-color: var(--color-primary); color: var(--color-bg); box-shadow: 0 5px 14px rgb(var(--color-primary-rgb) / .24); }
.client-portal-steps li.is-complete span { background: var(--color-secondary); border-color: var(--color-secondary); color: var(--color-primary-strong); }
.client-portal-step-heading { display: grid; gap: 6px; }
.client-portal-step-heading > span { color: var(--color-secondary-deep); font-size: var(--font-size-caption, .75rem); font-weight: var(--font-weight-label, 850); letter-spacing: .06em; text-transform: uppercase; }
.client-portal-step-heading p { color: var(--color-text-soft); margin: 0; }
.client-portal-wizard-actions { align-items: center; border-top: 1px solid rgb(var(--color-primary-rgb) / .12); display: flex; gap: 12px; justify-content: space-between; margin-top: 4px; padding-top: 18px; }
.client-portal-wizard-actions > :last-child { margin-left: auto; }
.client-portal-section { background: var(--color-surface); border: 1px solid rgb(var(--color-primary-rgb) / .14); border-radius: 16px; box-shadow: var(--ui-shadow-card); display: grid; gap: 16px; padding: clamp(18px, 3vw, 28px); }
.client-portal-section h2 { color: var(--color-primary-strong); font-size: var(--font-size-section-title, 1.2rem); margin: 0; }
.client-portal-section > p { color: var(--color-text-soft); margin: -8px 0 0; }
.client-portal-fields { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.client-portal-field--wide { grid-column: 1 / -1; }
.client-portal-section__header h2 { margin-bottom: 4px; }
.client-portal-section__header p { color: var(--color-text-soft); line-height: 1.45; margin: 0; }
.client-portal-professional-fields { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.client-portal-professional-fields .client-portal-field--wide { grid-column: 1 / -1; }
.client-portal-professional-logo { align-items: center; background: rgb(var(--color-primary-rgb) / .035); border: 1px solid rgb(var(--color-primary-rgb) / .15); border-radius: 13px; display: grid; gap: 12px; grid-template-columns: 52px minmax(0, 1fr) auto; padding: 11px; }
.client-portal-professional-logo__preview { align-items: center; background: #fff; border: 1px solid rgb(var(--color-primary-rgb) / .14); border-radius: 11px; display: flex; height: 52px; justify-content: center; overflow: hidden; width: 52px; }
.client-portal-professional-logo__preview img { display: block; height: 100%; object-fit: contain; width: 100%; }
.client-portal-professional-logo__preview svg { fill: none; height: 25px; stroke: var(--color-secondary-deep); stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; width: 25px; }
.client-portal-professional-logo__content { display: grid; gap: 3px; min-width: 0; }
.client-portal-professional-logo__content strong { color: var(--color-primary-strong); font-size: var(--font-size-body, .88rem); }
.client-portal-professional-logo__content span { color: var(--color-text-soft); font-size: var(--font-size-table, .76rem); line-height: 1.35; }
.client-portal-professional-logo__form { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.client-portal-professional-logo__picker { align-items: center; background: #fff; border: 1px solid rgb(var(--color-primary-rgb) / .24); border-radius: 9px; color: var(--color-primary-strong); cursor: pointer; display: inline-flex; font-size: var(--font-size-table, .78rem); font-weight: var(--font-weight-label, 760); min-height: 34px; padding: 7px 10px; position: relative; transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease; }
.client-portal-professional-logo__picker:hover, .client-portal-professional-logo__picker:focus-within { background: rgb(var(--color-primary-rgb) / .07); border-color: var(--color-secondary-deep); box-shadow: 0 4px 11px rgb(var(--color-primary-rgb) / .1); }
.client-portal-professional-logo__picker input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.client-portal-professional-logo__form .btn { font-size: var(--font-size-control, .78rem); min-height: 34px; padding: 7px 10px; }
.aenima-field-feedback,
.client-portal-siret-feedback { color: var(--color-text-soft); display: block; font-size: var(--font-size-table, .78rem); font-weight: var(--font-weight-label, 650); line-height: 1.35; margin-top: 7px; min-height: 1.35em; }
.aenima-field-feedback[data-state="success"],
.client-portal-siret-feedback[data-state="success"],
[data-field-feedback][data-state="success"],
[data-siret-feedback][data-state="success"] { color: var(--color-primary-strong); }
.aenima-field-feedback[data-state="error"],
.client-portal-siret-feedback[data-state="error"],
[data-field-feedback][data-state="error"],
[data-siret-feedback][data-state="error"] { color: var(--color-danger); font-weight: var(--font-weight-label, 760); }
[data-siret-input][aria-invalid="true"] { border-color: var(--color-danger); box-shadow: 0 0 0 3px rgb(var(--color-danger-rgb) / .12); }
.client-portal-choice { border: 0; display: grid; gap: 10px; margin: 0; min-width: 0; padding: 0; }
.client-portal-choice legend { color: var(--color-text); font-size: var(--font-size-label, .9rem); font-weight: var(--font-weight-label, 760); margin-bottom: 5px; padding: 0; }
.client-portal-choice > label, .client-portal-checkboxes > label { align-items: center; color: var(--color-text); display: inline-flex; gap: 7px; margin-right: 12px; }
.client-portal-checkboxes { display: flex; flex-wrap: wrap; gap: 9px 13px; }
.client-portal-activity-choice { gap: 12px; max-width: 650px; width: 100%; }
.client-portal-activity-choice legend { color: var(--color-primary-strong); font-size: var(--font-size-label, .92rem); font-weight: var(--font-weight-label, 850); margin: 0; }
.client-portal-activity-options { display: grid; gap: 9px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.client-portal-activity-options > label { align-items: center; background: #fff; border: 1px solid rgb(var(--color-primary-rgb) / .18); border-radius: 11px; box-shadow: 0 2px 5px rgb(var(--color-primary-rgb) / .05); cursor: pointer; display: flex; font-size: var(--font-size-label, .86rem); font-weight: var(--font-weight-label, 760); gap: 10px; line-height: 1.25; margin: 0; min-height: 47px; padding: 10px 12px; transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease, color .16s ease, transform .16s ease; }
.client-portal-activity-options > label:hover { border-color: rgb(var(--color-primary-rgb) / .48); box-shadow: 0 6px 15px rgb(var(--color-primary-rgb) / .11); transform: translateY(-1px); }
.client-portal-activity-options > label:has(input:checked) { background: rgb(var(--color-primary-rgb) / .08); border-color: var(--color-primary); box-shadow: inset 3px 0 0 var(--color-secondary), 0 4px 12px rgb(var(--color-primary-rgb) / .1); color: var(--color-primary-strong); }
.client-portal-activity-options input { appearance: none; background: #fff; border: 1.5px solid rgb(var(--color-primary-rgb) / .48); border-radius: 5px; flex: 0 0 auto; height: 18px; margin: 0; position: relative; width: 18px; }
.client-portal-activity-options input::after { border: solid #fff; border-width: 0 2px 2px 0; content: ""; height: 8px; left: 5px; opacity: 0; position: absolute; top: 2px; transform: rotate(45deg) scale(.7); transition: opacity .14s ease, transform .14s ease; width: 4px; }
.client-portal-activity-options input:checked { background: var(--color-primary); border-color: var(--color-primary); }
.client-portal-activity-options input:checked::after { opacity: 1; transform: rotate(45deg) scale(1); }
.client-portal-activity-options > label:has(input:focus-visible) { outline: 3px solid rgb(var(--color-secondary-rgb) / .42); outline-offset: 2px; }
@media (max-width: 540px) { .client-portal-activity-options { grid-template-columns: minmax(0, 1fr); } }
.client-portal-selection-choice { gap: 12px; max-width: 650px; width: 100%; }
.client-portal-selection-choice legend { color: var(--color-primary-strong); font-size: var(--font-size-label, .92rem); font-weight: var(--font-weight-label, 850); margin: 0; }
.client-portal-choice-options { display: grid; gap: 9px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.client-portal-choice-options--two { grid-template-columns: repeat(2, minmax(0, 150px)); }
.client-portal-choice-options > label { align-items: center; background: #fff; border: 1px solid rgb(var(--color-primary-rgb) / .18); border-radius: 11px; box-shadow: 0 2px 5px rgb(var(--color-primary-rgb) / .05); color: var(--color-text); cursor: pointer; display: flex; font-size: var(--font-size-label, .86rem); font-weight: var(--font-weight-label, 760); gap: 10px; line-height: 1.25; margin: 0; min-height: 47px; padding: 10px 12px; transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease, color .16s ease, transform .16s ease; }
.client-portal-choice-options > label:hover { border-color: rgb(var(--color-primary-rgb) / .48); box-shadow: 0 6px 15px rgb(var(--color-primary-rgb) / .11); transform: translateY(-1px); }
.client-portal-choice-options > label:has(input:checked) { background: rgb(var(--color-primary-rgb) / .08); border-color: var(--color-primary); box-shadow: inset 3px 0 0 var(--color-secondary), 0 4px 12px rgb(var(--color-primary-rgb) / .1); color: var(--color-primary-strong); }
.client-portal-choice-options input { appearance: none; background: #fff; border: 1.5px solid rgb(var(--color-primary-rgb) / .48); border-radius: 5px; flex: 0 0 auto; height: 18px; margin: 0; position: relative; width: 18px; }
.client-portal-choice-options input[type="radio"] { border-radius: 50%; }
.client-portal-choice-options input::after { background: #fff; border-radius: 50%; content: ""; height: 6px; left: 4.5px; opacity: 0; position: absolute; top: 4.5px; transform: scale(.4); transition: opacity .14s ease, transform .14s ease; width: 6px; }
.client-portal-choice-options input[type="checkbox"]::after { background: transparent; border: solid #fff; border-radius: 0; border-width: 0 2px 2px 0; height: 8px; left: 5px; top: 2px; transform: rotate(45deg) scale(.7); width: 4px; }
.client-portal-choice-options input:checked { background: var(--color-primary); border-color: var(--color-primary); }
.client-portal-choice-options input:checked::after { opacity: 1; transform: scale(1); }
.client-portal-choice-options input[type="checkbox"]:checked::after { transform: rotate(45deg) scale(1); }
.client-portal-choice-options > label:has(input:focus-visible) { outline: 3px solid rgb(var(--color-secondary-rgb) / .42); outline-offset: 2px; }
.client-portal-selection-choice.is-invalid legend { color: var(--color-danger-strong); }
.client-portal-selection-choice.is-invalid .client-portal-choice-options > label { border-color: var(--color-danger); }
@media (max-width: 540px) { .client-portal-choice-options, .client-portal-choice-options--two { grid-template-columns: minmax(0, 1fr); } }
.client-portal-wizard-file-picker { align-items: center; background: rgb(var(--color-primary-rgb) / .035); border: 1px dashed rgb(var(--color-primary-rgb) / .5); border-radius: 13px; color: var(--color-primary-strong); cursor: pointer; display: grid; gap: 4px; justify-items: center; min-height: 142px; padding: 18px; text-align: center; transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.client-portal-wizard-file-picker:hover, .client-portal-wizard-file-picker:focus-within { background: rgb(var(--color-primary-rgb) / .065); border-color: var(--color-secondary-deep); box-shadow: 0 9px 20px rgb(var(--color-secondary-rgb) / .13); transform: translateY(-1px); }
.client-portal-wizard-file-picker input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.client-portal-wizard-file-picker svg { color: var(--color-secondary-deep); fill: none; height: 29px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 29px; }
.client-portal-wizard-file-picker strong { font-size: var(--font-size-body, .94rem); }
.client-portal-wizard-file-picker small, .client-portal-wizard-file-status { color: var(--color-text-soft); font-size: var(--font-size-caption, .78rem); font-weight: var(--font-weight-label, 680); }
.client-portal-wizard-file-status { margin: 8px 0 0; min-height: 1.2em; }
.client-portal-wizard-file-previews { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(112px, 1fr)); margin-top: 12px; }
.client-portal-wizard-file-preview { background: #fff; border: 1px solid rgb(var(--color-primary-rgb) / .17); border-radius: 10px; box-shadow: 0 3px 10px rgb(var(--color-primary-rgb) / .07); margin: 0; min-width: 0; overflow: hidden; }
.client-portal-wizard-file-preview img { background: rgb(var(--color-primary-rgb) / .06); display: block; height: auto; object-fit: cover; aspect-ratio: 1 / 1; width: 100%; }
.client-portal-wizard-file-preview figcaption { color: var(--color-text-soft); font-size: var(--font-size-help, .72rem); font-weight: var(--font-weight-label, 700); overflow: hidden; padding: 7px 8px; text-overflow: ellipsis; white-space: nowrap; }

.animal-form-section--photos { background: #fbfaf7; border-color: #dfd5c7; }
.animal-create-photos__grid { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.animal-create-photo-picker { background: #fff; border: 1px solid rgb(var(--color-primary-rgb) / .16); border-radius: 12px; box-sizing: border-box; display: grid; gap: 12px; min-width: 0; padding: 14px; }
.animal-create-photo-picker__heading { display: grid; gap: 3px; min-width: 0; }
.animal-create-photo-picker__heading strong { color: var(--color-primary-strong); font-size: var(--font-size-card-title, .94rem); }
.animal-create-photo-picker__heading span { color: var(--color-text-soft); font-size: var(--font-size-caption, .8rem); line-height: 1.4; }
.animal-create-photo-picker .client-portal-wizard-file-picker { min-height: 124px; }
.animal-create-photo-picker .client-portal-wizard-file-previews { grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); min-width: 0; }
.animal-create-photo-picker .client-portal-wizard-file-preview { overflow: visible; }
.animal-create-photo-picker .client-portal-wizard-file-preview img { aspect-ratio: auto; border-radius: 9px 9px 0 0; height: auto; max-height: 180px; object-fit: contain; }
.animal-create-photo-picker__metadata { display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: 0; }
.animal-create-photo-picker__metadata > * { min-width: 0; }

@media (max-width: 900px) {
  .animal-create-photos__grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 560px) {
  .animal-create-photo-picker__metadata { grid-template-columns: minmax(0, 1fr); }
}
.client-portal-date { max-width: 280px; }
.client-portal-form__actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: flex-end; }
.client-portal-shell { display: grid; grid-template-columns: 246px minmax(0, 1fr); min-height: 100vh; }
.client-portal-drawer { background: var(--color-primary); color: var(--color-bg); display: flex; flex-direction: column; gap: 30px; padding: 22px var(--ui-space-4, 16px); position: sticky; top: 0; height: 100vh; }
.client-portal-drawer__brand { align-items: center; color: var(--color-bg); display: inline-flex; gap: 11px; padding: 2px 6px; text-decoration: none; }
.client-portal-drawer__brand strong { font-size: var(--font-size-help, 1.05rem); letter-spacing: .045em; }
.client-portal-drawer__nav { display: grid; gap: 6px; }
.client-portal-drawer__link { align-items: center; border-radius: var(--ui-radius-control, 13px); color: var(--color-bg); display: flex; font-weight: var(--font-weight-label, 600); gap: var(--ui-space-3, 12px); min-height: 46px; padding: 10px var(--ui-space-3, 12px); text-decoration: none; }
.client-portal-drawer__link:hover, .client-portal-drawer__link:focus-visible { background: rgb(var(--color-white-rgb) / .12); color: var(--color-bg); }
.client-portal-drawer__link.is-active { background: var(--color-bg); box-shadow: inset 3px 0 0 var(--color-secondary); color: var(--color-primary-strong); }
.client-portal-drawer__link svg { fill: none; flex: 0 0 21px; height: 21px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 21px; }
.client-portal-drawer__footer { align-items: center; border-top: 1px solid rgb(var(--color-white-rgb) / .28); display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; gap: 9px; margin-top: auto; overflow: visible !important; padding: var(--ui-space-4, 16px) 6px 2px; position: relative; }
.client-portal-drawer__account-details { flex: 0 0 auto; overflow: visible !important; position: relative; }
.client-portal-drawer__account-trigger { align-items: center; background: var(--color-secondary); border: 1px solid rgb(var(--color-white-rgb) / .5); border-radius: var(--ui-radius-round, 50%); box-shadow: 0 4px 10px rgb(var(--color-primary-rgb) / .18); color: var(--color-surface); cursor: pointer; display: grid; font: inherit; height: 34px; justify-content: center; list-style: none; padding: 0; place-items: center; text-align: center; width: 34px; }
.client-portal-drawer__account-trigger::-webkit-details-marker { display: none; }
.client-portal-drawer__account-trigger::marker { content: ''; }
.client-portal-drawer__account-trigger:hover,.client-portal-drawer__account-trigger:focus-visible { background: var(--color-secondary-deep); border-color: var(--color-surface); color: var(--color-surface); }
.client-portal-drawer__account-monogram { font-size: .72rem; font-weight: 850; letter-spacing: .03em; line-height: 1; }
.client-portal-drawer__account-name { color: var(--color-bg); display: block; flex: 1 1 0; font-size: var(--font-size-table, .86rem); font-weight: var(--font-weight-label, 800); letter-spacing: 0; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.client-portal-drawer__account-menu { animation: aenima-drawer-account-menu-open var(--ui-motion-fast, .18s) var(--ui-ease, cubic-bezier(.22,1,.36,1)); background: var(--color-surface); border: 1px solid rgb(var(--color-secondary-rgb) / .45); border-radius: var(--ui-radius-control, 13px); bottom: calc(100% + 8px); box-shadow: 0 12px 28px rgb(var(--color-primary-rgb) / .2); display: flex; flex-direction: column; left: 0; min-height: 128px; min-width: 188px; padding: 7px; position: absolute; transform-origin: left bottom; z-index: 30; }
.client-portal-drawer__account-details:not([open]) .client-portal-drawer__account-menu { display: none; }
.client-portal-drawer__account-menu a,.client-portal-drawer__account-menu button { background: transparent; border: 0; border-radius: var(--ui-radius-control, 8px); color: var(--color-primary-strong); cursor: pointer; display: block; font: inherit; font-weight: var(--font-weight-label, 600); padding: 10px 11px; text-align: left; text-decoration: none; width: 100%; }
.client-portal-drawer__account-menu a:hover,.client-portal-drawer__account-menu a:focus-visible,.client-portal-drawer__account-menu button:hover,.client-portal-drawer__account-menu button:focus-visible { background: rgb(var(--color-primary-rgb) / .09); color: var(--color-primary); }
.client-portal-drawer__account-menu form { border-top: 1px solid rgb(var(--color-primary-rgb) / .16); margin: auto 0 0; padding-top: 7px; }
.client-portal-drawer__account-menu button { color: var(--color-text-soft); font-size: var(--font-size-control, .78rem); font-weight: var(--font-weight-label, 600); padding-block: var(--ui-space-2, 8px); }

.client-portal-secondary-drawer__link strong { font-weight: var(--font-weight-label, 600); }
.client-portal-drawer__account-details--docked .client-portal-drawer__account-menu {
  bottom: 0;
  border-bottom-left-radius: 0;
  box-sizing: border-box;
  box-shadow: 0 -12px 28px rgb(var(--color-primary-rgb) / .2);
  height: 230px;
  left: 0;
  min-height: 0;
  min-width: 220px;
  padding: 14px 7px 72px;
  position: fixed;
  z-index: 32;
}
.client-portal-drawer__account-details--docked[open] .client-portal-drawer__account-trigger {
  bottom: 12px;
  left: 12px;
  position: fixed;
  z-index: 33;
}
.client-portal-drawer__account-details--docked .client-portal-drawer__account-menu form {
  align-items: center;
  border-top: 1px solid rgb(var(--color-primary-rgb) / .16);
  bottom: 12px;
  display: flex;
  left: 58px;
  margin: 0;
  padding: 0;
  position: absolute;
}
.client-portal-drawer__account-details--docked .client-portal-drawer__account-menu a,
.client-portal-drawer__account-details--docked .client-portal-drawer__account-menu button {
  align-items: center;
  display: flex;
  font-size: var(--font-size-control, .76rem);
  gap: var(--ui-space-2, 8px);
  min-height: 42px;
  padding: 7px 9px;
  white-space: nowrap;
}
.client-portal-drawer__account-details--docked .client-portal-drawer__account-menu a > span,
.client-portal-drawer__account-details--docked .client-portal-drawer__account-menu button > span {
  color: inherit;
  display: inline;
  font-size: inherit;
  margin: 0;
}
.client-portal-drawer__account-menu-icon,
.user-chip__account-menu-icon {
  fill: none;
  flex: 0 0 16px;
  height: 16px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
  width: 16px;
}
@keyframes aenima-drawer-account-menu-open { from { opacity: 0; transform: translateY(8px) scale(.96); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (prefers-reduced-motion: reduce) { .client-portal-drawer__account-menu { animation: none; } }
.client-portal-content { min-width: 0; }
@media (max-width: 680px) { .client-portal-page { padding: 16px; } .client-portal-header, .client-portal-hero { align-items: flex-start; flex-direction: column; } .client-portal-header__account { width: 100%; } .client-portal-fields { grid-template-columns: minmax(0, 1fr); } .client-portal-field--wide { grid-column: auto; } .client-portal-auth { padding: 16px; } .client-portal-auth__card { padding: 24px; } .client-portal-steps { gap: 6px; } .client-portal-steps li { justify-content: center; } .client-portal-steps li strong { display: none; } .client-portal-wizard-actions { align-items: stretch; flex-wrap: wrap; } .client-portal-wizard-actions .btn { flex: 1 1 145px; } }
@media (max-width: 480px) { .client-portal-professional-fields { grid-template-columns: minmax(0, 1fr); } .client-portal-professional-fields .client-portal-field--wide { grid-column: auto; } }
@media (max-width: 640px) { .client-portal-professional-logo { align-items: start; grid-template-columns: 52px minmax(0, 1fr); } .client-portal-professional-logo__form { grid-column: 1 / -1; justify-content: flex-start; } }
@media (max-width: 760px) { .client-portal-shell { grid-template-columns: minmax(0, 1fr); } .client-portal-drawer { gap: var(--ui-space-3, 12px); height: auto; padding: var(--ui-space-3, 12px) var(--ui-space-4, 16px); position: static; } .client-portal-drawer__nav { display: flex; gap: 7px; overflow-x: auto; padding-bottom: 2px; } .client-portal-drawer__link { flex: 0 0 auto; min-height: 40px; padding: var(--ui-space-2, 8px) 10px; } .client-portal-drawer__footer { align-items: center; border-top: 0; display: flex; gap: var(--ui-space-3, 12px); margin: 0; padding: 0 6px; } .client-portal-drawer__account-trigger { height: 34px; width: 34px; } .client-portal-drawer__account-menu,.client-portal-drawer__account-details--docked .client-portal-drawer__account-menu { bottom: auto; height: auto; min-width: 188px; padding: 7px; position: absolute; top: calc(100% + 10px); } .client-portal-drawer__account-details--docked[open] .client-portal-drawer__account-trigger { bottom: auto; left: auto; position: static; } .client-portal-drawer__account-details--docked .client-portal-drawer__account-menu form { bottom: auto; display:block; left: auto; margin:auto 0 0; padding-top:7px; position:static; } }

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

.settings-practice-card {
  display: flex;
  flex-direction: column;
  min-height: 240px;
  border-color: rgb(var(--color-identity-rgb) / 0.28);
}

.settings-practice-card--shiatsu {
  background: var(--color-identity-faint);
}

.settings-practice-card--massage {
  background: var(--color-accent-faint);
  border-color: rgb(var(--color-accent-rgb) / 0.3);
}

.settings-practice-card__header {
  display: flex;
  align-items: center;
  gap: 14px;
}

.settings-practice-card__header h2 {
  margin: 2px 0 0;
  color: var(--color-primary-strong);
}

.settings-practice-card__icon {
  display: inline-grid;
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 14px;
  background: var(--color-surface);
  color: var(--color-secondary);
}

.settings-practice-card__icon svg {
  width: 25px;
  height: 25px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.settings-practice-card__eyebrow {
  color: var(--color-text-soft);
  font-size: var(--font-size-caption, 11px);
  font-weight: var(--font-weight-label, 800);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.settings-practice-card > p {
  color: var(--color-text-soft);
}

.settings-practice-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: auto;
}

.settings-practice-card__footer > span {
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 13px);
  font-weight: var(--font-weight-label, 700);
}

.form-section + .form-section {
  margin-top: 26px;
}

.form-section__header {
  margin-bottom: 18px;
}

.form-section__header h2 {
  margin-bottom: 6px;
}

.form-section__header p {
  margin: 0;
  color: var(--color-text-soft);
}

.appointment-form-page {
  width: min(100%, 900px);
  max-width: 900px;
  margin-inline: auto;
}

.appointment-form-hero {
  align-items: center;
  padding: 20px 22px;
}

.appointment-form-hero h1 {
  margin-bottom: 8px;
  font-size: var(--font-size-page-title, clamp(2rem, 3.4vw, 2.8rem));
  line-height: var(--line-height-title, 1.05);
}

.appointment-form-hero p {
  margin-bottom: 0;
  color: var(--color-text-soft);
}

.appointment-form-card {
  max-width: 900px;
  margin-inline: auto;
  padding: 18px;
}

.appointment-form__section {
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
}

.appointment-form__section--details {
  padding: 20px;
  background: var(--color-identity-faint);
  border-color: rgb(var(--color-identity-rgb) / 0.28);
  box-shadow: inset 0 4px 0 rgb(var(--color-secondary-rgb) / 0.78);
}

.appointment-form__section--details .form-section__header h2 {
  color: var(--color-secondary-strong);
}

.appointment-form__section .form-section__header {
  margin-bottom: 16px;
}

.appointment-form__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 16px 18px;
  align-items: start;
}

.appointment-form__grid > .field,
.appointment-place__new .field,
.appointment-place__locality .field {
  margin-bottom: 0;
}

.appointment-form__field--client,
.appointment-form__field--animal {
  grid-column: span 6;
}

/* The generic autocomplete needs its own positioning context inside form fields. */
.appointment-form__autocomplete.ui-autocomplete {
  display: grid;
  gap: var(--ui-space-2, 8px);
  position: relative;
  z-index: 0;
}

.appointment-form__autocomplete.ui-autocomplete:focus-within {
  z-index: var(--ui-layer-menu, 35);
}

.appointment-form__schedule {
  grid-column: 1 / -1;
  grid-row: 2;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  min-width: 0;
}

.appointment-form__schedule > .field {
  margin-bottom: 0;
}

.appointment-form__field--practice {
  grid-column: 1 / span 6;
  grid-row: 3;
}

.appointment-form__field--purpose {
  grid-column: 7 / span 6;
  grid-row: 3;
}

.appointment-form__field--offer {
  grid-column: 1 / span 6;
  grid-row: 4;
  justify-self: start;
  min-width: 0;
  width: max-content;
  max-width: 100%;
}

.appointment-form__field--offer .input {
  width: max-content;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

.appointment-status-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--color-border);
}

.appointment-status-actions form {
  margin: 0;
}

.appointment-form .field > span {
  color: var(--color-text);
  font-size: var(--font-size-label, 14px);
  font-weight: var(--font-weight-label, 700);
}

.appointment-form :is(input.input, select.input) {
  box-sizing: border-box;
  height: var(--ui-compact-control-height);
  line-height: 1.2;
  max-width: 100%;
  min-height: var(--ui-compact-control-height);
  padding-block: 0;
}

.appointment-form .field-help {
  display: inline-block;
  margin-top: 7px;
  font-size: var(--font-size-label, 13px);
}

.appointment-form__section--place {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 16px 18px;
  align-items: start;
  margin: 18px 0;
  padding: 20px;
  background: rgb(var(--color-primary-rgb) / 0.05);
  border-color: rgb(var(--color-primary-rgb) / 0.18);
}

.appointment-form__section--place > h2 {
  grid-column: 1 / -1;
  margin-bottom: 2px;
}

.appointment-booking-place {
  grid-column: 1 / -1;
  min-width: 0;
  padding: 14px 16px;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.22);
  border-radius: var(--radius);
  background: var(--color-surface);
}

.appointment-booking-note {
  margin-top: 16px;
  padding: 14px 16px;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.22);
  border-radius: var(--radius);
  background: rgb(var(--color-primary-rgb) / 0.05);
  overflow-wrap: anywhere;
}

.appointment-booking-note strong {
  color: var(--color-primary);
}

.appointment-booking-note p {
  margin: 6px 0 0;
  white-space: pre-wrap;
}

.appointment-booking-place__eyebrow {
  display: block;
  margin-bottom: 4px;
  color: var(--color-primary);
  font-size: var(--font-size-caption, 12px);
  font-weight: var(--font-weight-label, 800);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.appointment-booking-place h3 {
  margin: 0;
  color: var(--color-text);
  font-size: var(--font-size-card-title, 16px);
}

.appointment-booking-place p {
  margin: 5px 0 0;
  color: var(--color-text-soft);
}

.appointment-form__section--place > .field {
  margin-bottom: 0;
}

.appointment-place__mode {
  grid-column: span 4;
}

.appointment-place__existing {
  grid-column: span 8;
}

.appointment-place__new {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 18px;
}

.appointment-place__address {
  grid-column: span 8;
}

.appointment-place__address-extra {
  grid-column: span 4;
}

.appointment-place__locality {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(150px, 0.7fr) minmax(220px, 1.6fr) minmax(84px, 0.4fr);
  gap: 18px;
}

.appointment-place__access-notes {
  grid-column: 1 / -1;
}

.appointment-place__access-notes .textarea {
  min-height: 82px;
}

.appointment-form__section--place .input[readonly] {
  background: var(--color-surface-muted);
  color: var(--color-text-soft);
  box-shadow: none;
  cursor: default;
}

.appointment-form__section--place .textarea[readonly] {
  resize: none;
}

.appointment-form__private-notes {
  margin-bottom: 0;
  padding: 18px;
  border: 1px solid rgb(var(--color-accent-rgb) / 0.24);
  border-radius: var(--radius);
  background: var(--color-accent-faint);
}

.appointment-form__private-notes .textarea {
  min-height: 88px;
}

.appointment-form .form-actions {
  margin-top: 18px;
}

.appointment-autosave-status {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  color: var(--color-text-soft);
  font-size: var(--font-size-caption, .88rem);
}

.appointment-autosave-status.is-saving {
  color: var(--color-primary);
}

.appointment-autosave-status.is-error {
  color: var(--color-danger);
}

.appointment-form-hero__badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}

.appointment-form-hero__badges .badge {
  margin-bottom: 0;
}

.intervention-status {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 5px 10px;
  border-radius: 999px;
  font-size: var(--font-size-caption, 12px);
  font-weight: var(--font-weight-label, 800);
  line-height: 1;
}

.appointment-session {
  display: flex;
  flex-direction: column;
  margin-top: 22px;
  padding: 22px;
  border: 1px solid rgb(var(--color-secondary-rgb) / 0.3);
  border-radius: var(--radius);
  background: rgb(var(--color-secondary-rgb) / 0.07);
  scroll-margin-top: 24px;
}

.appointment-session__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 16px;
}

.appointment-session__header h2 {
  margin: 2px 0 0;
  color: var(--color-primary-strong);
}

.appointment-session__statuses {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.appointment-session__eyebrow {
  color: var(--color-secondary);
  font-size: var(--font-size-caption, 11px);
  font-weight: var(--font-weight-label, 800);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.appointment-session__summary {
  display: grid;
  grid-template-columns: minmax(160px, 0.8fr) minmax(220px, 1.4fr) minmax(160px, 0.8fr);
  gap: 10px;
  margin-bottom: 20px;
}

.appointment-session__summary > span {
  min-width: 0;
  padding: 11px 13px;
  border: 1px solid rgb(var(--color-secondary-rgb) / 0.2);
  border-radius: 13px;
  background: var(--color-surface);
}

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

.appointment-session__summary small {
  margin-bottom: 3px;
  color: var(--color-text-soft);
  font-size: var(--font-size-help, 10px);
  font-weight: var(--font-weight-label, 800);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.appointment-session__summary strong {
  overflow: hidden;
  color: var(--color-text);
  font-size: var(--font-size-table, 13px);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.appointment-session__grid,
.appointment-session__reports {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 18px;
}

.appointment-session__grid > .field,
.appointment-session__reports > .field {
  margin-bottom: 0;
}

.appointment-session__grid .field > span,
.appointment-session__reports .field > span {
  color: var(--color-text);
  font-size: var(--font-size-label, 14px);
  font-weight: var(--font-weight-label, 700);
}

.appointment-session__wide {
  grid-column: 1 / -1;
}

.appointment-session__reports {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid rgb(var(--color-secondary-rgb) / 0.22);
}

.appointment-session__reports .field:first-child {
  padding: var(--ui-space-4, 16px);
  border-radius: var(--ui-radius-control, 14px);
  background: var(--color-accent-faint);
}

.appointment-session__reports .field:last-child {
  padding: var(--ui-space-4, 16px);
  border-radius: var(--ui-radius-control, 14px);
  background: var(--color-identity-faint);
}

.appointment-session__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}

.appointment-session__send-report {
  display: flex;
  justify-content: flex-end;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgb(var(--color-secondary-rgb) / 0.22);
}

.appointment-session__inactive {
  padding: 15px 17px;
  border-radius: 13px;
  font-weight: var(--font-weight-label, 700);
}

.appointment-session__annotations {
  order: -1;
  margin-top: 0;
  margin-bottom: 22px;
  padding: 18px;
  border: 1px solid rgb(var(--color-identity-rgb) / 0.38);
  border-radius: 16px;
  background:
    linear-gradient(
      135deg,
      rgb(var(--color-identity-rgb) / 0.14),
      rgb(var(--color-white-rgb) / 0.84)
    );
  box-shadow: 0 10px 26px rgb(var(--color-primary-rgb) / 0.08);
  scroll-margin-top: 24px;
}

.appointment-session__annotations-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}

.appointment-session__annotations-header h3 {
  margin: 3px 0 0;
  color: var(--color-primary-strong);
  font-size: var(--font-size-card-title, 21px);
  line-height: var(--line-height-title, 1.2);
}

.appointment-session__annotations .appointment-session__eyebrow {
  color: var(--color-identity-strong);
  font-size: var(--font-size-caption, 12px);
}

.appointment-session__annotation-button {
  flex: 0 0 auto;
  min-height: 44px;
  padding-inline: 17px;
  box-shadow: 0 8px 18px rgb(var(--color-secondary-rgb) / 0.22);
}

.appointment-session__annotation-button::before {
  content: "+";
  display: inline-grid;
  width: 20px;
  height: 20px;
  margin-right: 7px;
  place-items: center;
  border: 1px solid rgb(var(--color-white-rgb) / 0.65);
  border-radius: 999px;
  font-size: 16px;
  line-height: 1;
}

.appointment-session__annotations-empty {
  margin: 0;
  padding: 14px 16px;
  border: 1px dashed rgb(var(--color-identity-rgb) / 0.48);
  border-radius: 13px;
  background: rgb(var(--color-white-rgb) / 0.7);
  color: var(--color-text-soft);
}

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

.appointment-session__annotation-row {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto auto;
  align-items: center;
  gap: 18px;
  min-width: 0;
  padding: 11px 13px;
  border: 1px solid rgb(var(--color-identity-rgb) / 0.25);
  border-radius: 13px;
  background: var(--color-surface);
  color: var(--color-text);
  text-decoration: none;
  transition:
    transform 360ms ease,
    border-color 360ms ease,
    box-shadow 360ms ease,
    background-color 360ms ease;
}

.appointment-session__annotation-row:hover,
.appointment-session__annotation-row:focus-visible {
  border-color: rgb(var(--color-identity-rgb) / 0.55);
  background: var(--color-identity-faint);
  box-shadow: 0 8px 20px rgb(var(--color-primary-rgb) / 0.1);
  color: var(--color-text);
  text-decoration: none;
  transform: translateY(-1px);
}

.appointment-session__annotation-version,
.appointment-session__annotation-version strong,
.appointment-session__annotation-version small {
  display: block;
  min-width: 0;
}

.appointment-session__annotation-version small,
.appointment-session__annotation-row time {
  color: var(--color-text-soft);
  font-size: var(--font-size-help, 12px);
}

.appointment-session__annotation-action {
  color: var(--color-secondary);
  font-size: var(--font-size-control, 12px);
  font-weight: var(--font-weight-label, 800);
}

.animal-form-section {
  padding: 24px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
}

.animal-form {
  container-name: animal-form-layout;
  container-type: inline-size;
  display: grid;
  gap: var(--ui-space-5, 20px);
}

.animal-form .animal-form-section .form-section__header {
  margin-bottom: var(--ui-space-4, 16px);
}

.animal-form-section--identity {
  background: var(--color-identity-faint);
  border-color: rgb(var(--color-identity-rgb) / 0.28);
}

.animal-form-section--identity .form-section__header h2 {
  color: var(--color-identity-strong);
}

.animal-form-section--profile {
  background: rgb(var(--color-primary-rgb) / 0.08);
  border-color: rgb(var(--color-primary-rgb) / 0.22);
}

.animal-form-section--living-place {
  background:#f6f1eb;
  border-color:#ded2c2;
}
.animal-form-section--living-place .form-section__header h2 { color:#795a3f; }

.animal-form-section--contacts {
  background: #fffaf5;
  border-color: rgba(224, 122, 47, 0.28);
}

.animal-form-section--contacts .form-section__header h2 {
  color: #a5521f;
}

.animal-care-contact-primary {
  display: grid;
  grid-template-columns: minmax(0, 520px);
  gap: 18px;
  margin-bottom: 12px;
  min-width: 0;
  padding-bottom: 12px;
  border-bottom: 1px solid #eadfd6;
}

.animal-care-contact-primary > .field,
.animal-care-contact-primary > .animal-client-fixed {
  margin: 0;
  min-width: 0;
  width: 100%;
}

.animal-form-section--owner .animal-care-contact-primary {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
}

.animal-form-section--owner .field-help {
  display: block;
  margin-top: 10px;
  line-height: 1.45;
}

.animal-form-section--owner .animal-owner-help {
  margin-top: 4px;
}

.animal-form-section--owner .animal-owner-help__link {
  color: var(--color-secondary-strong);
  font-weight: var(--font-weight-label, 800);
  text-decoration: none;
  white-space: nowrap;
}

.animal-form-section--owner .animal-owner-help__link > span[aria-hidden="true"] {
  display: inline;
  margin: 0;
}

.animal-form-section--owner .animal-owner-help__link:hover,
.animal-form-section--owner .animal-owner-help__link:focus-visible {
  color: var(--color-secondary-deep);
}

.animal-form__identity-owner {
  align-items:start;
  display:grid;
  gap:14px;
  grid-template-columns:minmax(0,2fr) minmax(0,1fr);
}

.animal-form__identity-owner>.animal-form-section {
  height:100%;
  min-width:0;
}

.animal-form__profile-vaccinations {
  align-items:start;
  container-name: animal-profile-vaccinations;
  container-type: inline-size;
  display:grid;
  gap:14px;
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.animal-form__profile-vaccinations>.animal-form-section {
  height:100%;
  min-width:0;
}

.animal-form__health-column{align-self:start;display:grid;gap:14px;min-width:0}.animal-form__health-column>.animal-form-section{height:auto}

.animal-form__contacts-living-place {
  align-items:start;
  display:grid;
  gap:14px;
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.animal-form__contacts-living-place>.animal-form-section {
  height:100%;
  min-width:0;
}

@media(max-width:920px){
  .animal-form__identity-owner,.animal-form__profile-vaccinations,.animal-form__contacts-living-place{grid-template-columns:minmax(0,1fr)}
  .animal-form__profile-vaccinations>.animal-form-section--measurements{grid-column:auto}
}

.animal-care-contact-list {
  display: grid;
  gap: 12px;
}

.animal-care-contact {
  container-name: animal-care-contact;
  container-type: inline-size;
  min-width: 0;
  width: min(100%, 44rem);
  box-sizing: border-box;
  padding: 14px;
  border: 1px solid #e3d8cf;
  border-left: 3px solid var(--color-accent, #e07a2f);
  border-radius: 12px;
  background: #fff;
}

.animal-care-contact__heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
  padding-bottom: var(--ui-space-2);
  border-bottom: 1px solid var(--color-border);
}

.animal-care-contact__heading strong {
  color: #51464f;
  font-size: var(--font-size-card-title, .8rem);
}

.animal-care-contact__remove {
  display: inline-grid;
  width: 28px;
  height: 28px;
  padding: 0;
  place-items: center;
  border: 1px solid #e2c9c4;
  border-radius: 8px;
  background: #fff8f6;
  color: #a84f43;
  cursor: pointer;
  line-height: 1;
}

.animal-care-contact__remove svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.animal-care-contact__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 12px;
  align-items: start;
  min-width: 0;
}

.animal-care-contact__grid > .field {
  align-self: start;
  min-width: 0;
  max-width: 100%;
  width: 100%;
}

.animal-care-contact__grid > .field:has([data-animal-care-contact-role]) {
  grid-column: 1 / -1;
  width: fit-content;
}

.animal-care-contact__grid > .field > select[data-animal-care-contact-role] {
  field-sizing: content;
  width: auto;
}

.animal-care-contact__grid > .field > input,
.animal-care-contact__grid > .field > select,
.animal-care-contact__grid > .field > textarea {
  box-sizing: border-box;
  max-width: 100%;
  min-width: 0;
  width: 100%;
}

.animal-care-contact__phone {
  grid-column: 1 / -1;
}

.animal-care-contact__grid > .field:has(input[type="email"]),
.animal-care-contact__grid > .animal-care-contact__other,
.animal-care-contact__grid > .animal-care-contact__details { grid-column: 1 / -1; }
.animal-care-contact__grid > .field > input[type="text"] { width: min(100%, 26ch); }
.animal-care-contact__grid > .field > input[type="email"] { width: min(100%, 38ch); }
.animal-care-contact__grid > .animal-care-contact__details > textarea { width: min(100%, 60ch); }
.animal-care-contact__grid > .field > select[data-animal-care-contact-role] { width: auto; }

.animal-care-contact__phone .questionnaire-phone-field {
  grid-template-columns: max-content minmax(14ch, 20ch);
}

@container animal-care-contact (max-width:34rem) {
  .animal-care-contact__phone .questionnaire-phone-field {
    grid-template-columns:minmax(0,1fr);
    width:100%;
  }
  .animal-care-contact__phone .questionnaire-phone-field select,
  .animal-care-contact__phone .questionnaire-phone-field input { width:100%; }
  .animal-care-contact__phone .questionnaire-phone-field > small { grid-column:1; }
}

.animal-care-contact__add {
  width: max-content;
  margin-top: 12px;
  border-color: rgba(224, 122, 47, .55);
  background: #fff7f0;
  color: #9d4c1d;
}

/* Les champs facultatifs sont laissés explicites par leur absence d'attribut required. */
.client-portal-optional-note { display: none !important; }
.animal-form-page--edit .animal-form-section__header p { display: none; }
.client-portal-gallery__header > div:first-child p { display: none; }
.client-portal-animal-autosave-status { display: none !important; }

.animal-horse-model-picker {
  display: grid;
  grid-column: span 2;
  grid-template-columns: minmax(0, 1fr) 172px;
  gap: 12px;
  align-items: stretch;
  min-width: 0;
}

.animal-horse-model-thumbnail {
  display: grid;
  grid-template-rows: 112px auto;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border: 1px solid #d8cfd8;
  border-radius: 11px;
  background: #fffdf9;
  box-shadow: 0 5px 14px rgba(54, 43, 57, .07);
}

.animal-horse-model-thumbnail__canvas {
  display: grid;
  min-height: 112px;
  place-items: center;
  overflow: hidden;
  background: #f6f2eb;
  color: #7b7079;
  font-size: var(--font-size-table, .68rem);
}

.animal-horse-model-thumbnail__canvas canvas,
.animal-horse-model-thumbnail__canvas img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
}

.animal-horse-model-thumbnail figcaption {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 7px;
  min-width: 0;
  padding: 7px 9px;
  border-top: 1px solid #e2dbe1;
  background: #fff;
}

.animal-horse-model-thumbnail figcaption strong {
  overflow: hidden;
  color: #554a54;
  font-size: var(--font-size-help, .68rem);
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.animal-horse-model-thumbnail figcaption span {
  flex: 0 0 auto;
  width: 15px;
  height: 15px;
  border: 2px solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 1px #c8bdc7;
}

.animal-care-summary {
  margin-top: 16px;
  padding: 20px;
}

.animal-care-summary__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 14px;
}

.animal-care-summary__person {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 13px 14px;
  border: 1px solid #e1d8d1;
  border-left: 3px solid #e07a2f;
  border-radius: 11px;
  background: #fffaf6;
}

.animal-care-summary__person > span,
.animal-care-summary__empty {
  color: var(--color-text-soft);
  font-size: var(--font-size-table, .82rem);
}

.animal-care-summary__links {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 14px;
  margin-top: 3px;
  font-size: var(--font-size-table, .82rem);
}

.animal-form-section--profile .form-section__header h2 {
  color: var(--color-primary);
}

.animal-form-section--wellbeing {
  background: var(--color-secondary-faint);
  border-color: rgb(var(--color-secondary-rgb) / 0.28);
}

.animal-form-section--wellbeing .form-section__header h2 {
  color: var(--color-secondary-strong);
}

.animal-form-section--history {
  background: rgb(var(--color-text-rgb) / 0.04);
  border-color: rgb(var(--color-text-rgb) / 0.14);
}

.animal-form-section--history .form-section__header h2 {
  color: var(--color-text);
}

.animal-form-section--professional {
  background: #faf7f2;
  border-color: #e0d5c7;
}

.animal-form-section--professional .form-section__header h2 {
  color: #795a3f;
}

.animal-autosave-status {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 40px;
  color: var(--color-text-soft);
  font-size: var(--font-size-caption, .88rem);
  font-weight: var(--font-weight-label, 700);
}

.animal-autosave-status:empty {
  display: none;
}

.animal-autosave-status::before {
  width: 9px;
  height: 9px;
  border: 2px solid currentColor;
  border-radius: 50%;
  content: "";
  box-shadow: 0 0 0 4px rgb(var(--color-identity-rgb) / 0.1);
}

.animal-autosave-status.is-saving {
  color: var(--color-primary);
}

.animal-autosave-status.is-saving::before {
  border-right-color: transparent;
  animation: animal-autosave-spin .7s linear infinite;
}

.animal-autosave-status.is-saved {
  color: var(--color-identity-strong);
}

.animal-autosave-status.is-error {
  color: var(--color-danger);
}

@keyframes animal-autosave-spin {
  to {
    transform: rotate(1turn);
  }
}

.species-catalog-layout {
  display: grid;
  grid-template-columns: minmax(280px, 0.72fr) minmax(360px, 1.28fr);
  align-items: start;
  gap: 24px;
}

.animal-activity-layout {
  grid-template-columns: 1fr;
}

.animal-activity-layout .species-create-card {
  grid-column: 1 / -1;
  position: sticky;
  top: 96px;
  z-index: 4;
  background-color: var(--color-surface);
  background-image: none;
  box-shadow: 0 14px 30px rgb(var(--color-text-rgb) / 0.12);
}

.animal-activity-layout .species-create-card form {
  display: grid;
  grid-template-columns: minmax(180px, 0.8fr) minmax(240px, 1.4fr) auto;
  align-items: end;
  gap: 12px;
}

.animal-activity-layout .species-create-card .field {
  margin: 0;
}

.animal-activity-layout .species-create-card .form-actions {
  margin: 0;
  padding: 0;
}

@media (max-width: 760px) {
  .animal-activity-layout .species-create-card form {
    grid-template-columns: 1fr;
  }

  .animal-activity-layout .species-create-card .form-actions .btn {
    width: 100%;
  }
}

/* Réglages généraux : numérotation des factures ------------------------ */
.settings-general-page {
  display: grid;
  gap: 22px;
}

.settings-general-page > * {
  margin: 0;
}

.settings-general-hero {
  padding: 20px 22px;
}

.settings-general-hero h1 {
  margin-bottom: 6px;
  font-size: var(--font-size-page-title, clamp(1.75rem, 3vw, 2.4rem));
}

.settings-general-hero p {
  margin-bottom: 0;
}

.invoice-number-settings {
  overflow: hidden;
  justify-self: center;
  width: min(100%, 52rem);
}

.invoice-number-settings__heading {
  align-items: center;
  display: flex;
  gap: 14px;
  margin-bottom: 15px;
  padding-bottom: 13px;
  border-bottom: 1px solid rgb(var(--color-highlight-rgb) / .25);
}

.invoice-number-settings__heading > span {
  display: grid;
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  border-radius: 11px;
  background: var(--color-highlight);
  color: #3e240f;
  font-size: var(--font-size-caption, .78rem);
  font-weight: var(--font-weight-label, 900);
  place-items: center;
}

.invoice-number-settings__heading small {
  color: var(--color-secondary-strong);
  font-size: var(--font-size-help, .7rem);
  font-weight: var(--font-weight-label, 850);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.invoice-number-settings__heading h2 {
  margin: 2px 0 3px;
  font-size: var(--font-size-card-title, 1.3rem);
}

.invoice-number-settings__heading p {
  margin: 0;
  color: var(--color-text-soft);
  font-size: var(--font-size-body, .875rem);
}

.invoice-number-settings__form {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}

.invoice-number-settings__preview {
  position: static;
  display: grid;
  grid-template-columns: minmax(210px, .8fr) minmax(220px, 1.2fr);
  grid-template-rows: auto auto;
  min-height: 0;
  align-items: center;
  gap: 3px 22px;
  padding: 15px 18px;
  border: 1px solid rgb(var(--color-secondary-rgb) / .3);
  border-radius: 16px;
  background: var(--color-secondary-faint);
  box-shadow:
    inset 4px 0 0 var(--color-secondary),
    0 14px 30px rgb(var(--color-secondary-rgb) / .1);
}

.invoice-number-settings__preview small {
  color: var(--color-secondary-strong);
  font-size: var(--font-size-help, .7rem);
  font-weight: var(--font-weight-label, 850);
  letter-spacing: .07em;
  text-transform: uppercase;
}

.invoice-number-settings__preview strong {
  grid-column: 1;
  grid-row: 2;
  color: var(--color-primary);
  font-size: var(--font-size-body, clamp(1rem, 1.8vw, 1.3rem));
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.invoice-number-settings__preview span {
  grid-column: 2;
  grid-row: 1 / span 2;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, .78rem);
}

.invoice-number-settings__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px;
  align-items: start;
}

.invoice-number-settings__prefix {
  grid-column: 1;
  grid-row: 1;
}

.invoice-number-settings__pattern,
.invoice-number-settings__tokens {
  grid-column: 1 / -1;
}

.invoice-number-settings__pattern {
  grid-row: 2;
}

.invoice-number-settings__tokens {
  grid-row: 3;
}

.invoice-number-settings__reset {
  grid-column: 2;
  grid-row: 1;
}

.invoice-number-settings__prefix,
.invoice-number-settings__reset {
  width: 100%;
  max-width: 100%;
}

.invoice-number-settings__grid .field {
  min-width: 0;
  padding: 11px;
  border: 1px solid var(--color-border);
  border-radius: 13px;
  background: var(--color-surface);
}

.invoice-number-settings__grid .field > span {
  color: var(--color-primary-strong);
  font-size: var(--font-size-label, .78rem);
  font-weight: var(--font-weight-label, 800);
}

.invoice-number-settings__grid .field > small {
  display: block;
  color: var(--color-text-soft);
  font-size: var(--font-size-help, .7rem);
  line-height: 1.45;
}

.invoice-number-settings__prefix > small,
.invoice-number-settings__reset > small {
  margin-top: var(--ui-space-2);
}

.invoice-number-settings__pattern > small {
  margin-top: 6px;
}

.invoice-number-settings__tokens > div {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 6px;
}

.invoice-number-settings__tokens button {
  display: grid;
  min-width: 0;
  min-height: 47px;
  align-content: center;
  gap: 2px;
  padding: 6px 7px;
  border: 1px solid rgb(var(--color-primary-rgb) / .22);
  border-radius: 9px;
  background: var(--color-identity-faint);
  color: var(--color-primary-strong);
  cursor: pointer;
  font: inherit;
  text-align: left;
  transition: border-color .16s ease, background-color .16s ease, transform .16s ease;
}

.invoice-number-settings__tokens button:hover,
.invoice-number-settings__tokens button:focus-visible {
  border-color: var(--color-highlight);
  background: var(--color-highlight-soft);
  outline: none;
  transform: translateY(-1px);
}

.invoice-number-settings__tokens button strong {
  font-size: var(--font-size-control, .72rem);
  overflow-wrap: anywhere;
}

.invoice-number-settings__tokens button small {
  color: var(--color-text-soft);
  font-size: var(--font-size-control, .61rem);
  line-height: 1.2;
}

.invoice-number-settings__grid .input {
  min-height: 44px;
  max-width: 100%;
  padding: 10px 12px;
  border-radius: var(--ui-radius-field);
}

.invoice-number-settings__prefix .input,
.invoice-number-settings__pattern .input,
.invoice-number-settings__reset .input {
  field-sizing: content;
  width: auto;
}

.invoice-number-settings__prefix .input {
  min-width: 8ch;
}

.invoice-number-settings__pattern .input {
  min-width: min(48ch, 100%);
}

.invoice-number-settings__actions {
  grid-column: 1;
  justify-content: flex-end;
  margin: -3px 0 0;
}

@media (max-width: 900px) {
  .invoice-number-settings__tokens > div {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}

@media (max-width: 580px) {
  .invoice-number-settings__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .invoice-number-settings__prefix,
  .invoice-number-settings__reset,
  .invoice-number-settings__pattern,
  .invoice-number-settings__tokens {
    grid-column: 1;
    grid-row: auto;
  }

  .invoice-number-settings__prefix,
  .invoice-number-settings__reset {
    width: 100%;
  }

  .invoice-number-settings__preview {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto;
  }

  .invoice-number-settings__preview strong,
  .invoice-number-settings__preview span {
    grid-column: 1;
    grid-row: auto;
  }

  .invoice-number-settings__tokens > div {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.animal-activity-layout > .card-section:not(.species-create-card) {
  position: relative;
  z-index: 0;
}

.animal-activity-catalog-columns {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 24px;
}

.animal-activity-catalog-columns .species-catalog__list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 760px) {
  .animal-activity-catalog-columns {
    grid-template-columns: 1fr;
  }

  .animal-activity-catalog-columns .species-catalog__list {
    grid-template-columns: 1fr;
  }
}

.species-create-card {
  position: sticky;
  top: 96px;
  background: var(--color-identity-faint);
  border-color: rgb(var(--color-identity-rgb) / 0.28);
}

.species-catalog__header {
  padding-bottom: 18px;
  border-bottom: 1px solid var(--color-border);
}

.species-catalog__header h2,
.species-catalog__group h3 {
  margin-bottom: 6px;
}

.species-catalog__header p,
.species-catalog__group > p {
  margin: 0;
  color: var(--color-text-soft);
}

.massage-muscle-groups {
  display: grid;
  gap: 18px;
  margin-top: 18px;
}

.massage-muscle-group {
  min-width: 0;
  padding: 12px;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.14);
  border-radius: 14px;
  background: rgb(var(--color-primary-rgb) / 0.035);
}

.massage-muscle-group h4 {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin: 0;
  color: var(--color-primary);
  font-size: var(--font-size-subtitle, 0.92rem);
}

.massage-muscle-group h4 span {
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 0.78rem);
  font-weight: var(--font-weight-label, 500);
}

.massage-muscle-group .species-catalog__list {
  margin-top: 10px;
}

.massage-model-editor {
  overflow: hidden;
}

.settings-tabs {
  display: inline-flex;
  gap: var(--ui-space-1, 4px);
  margin: 0 0 14px;
  padding: var(--ui-space-1, 4px);
  border: 1px solid rgba(66, 104, 102, .18);
  border-radius: var(--ui-radius-control, 12px);
  background: #fff;
  box-shadow: 0 5px 16px rgba(49, 63, 60, .08);
}

.settings-tab {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 7px 16px;
  border-radius: 9px;
  color: #426866;
  font-weight: var(--font-weight-label, 700);
  text-decoration: none;
}

.settings-tab:hover,
.settings-tab:focus-visible,
.settings-tab.is-active {
  background: #426866;
  color: #fff;
}

.practice-model-controls {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin: 0 0 16px;
}

.practice-model-controls .settings-tabs {
  margin: 0;
}

.practice-model-field {
  min-width: 0;
}

.practice-model-field--inline {
  display: grid;
  grid-template-columns: auto minmax(150px, 260px);
  align-items: center;
  gap: 8px;
  flex: 0 1 260px;
}

.practice-model-field--inline > span {
  white-space: nowrap;
}

.practice-model-field .input {
  width: 100%;
}

.practice-model-status {
  flex: 0 0 auto;
  color: var(--color-identity);
  font-size: var(--font-size-caption, .82rem);
  font-weight: var(--font-weight-label, 700);
}

@media (max-width: 560px) {
  .practice-model-controls {
    align-items: stretch;
    flex-direction: column;
  }

  .practice-model-field--inline {
    flex-basis: auto;
    grid-template-columns: 1fr;
    gap: 4px;
  }
}

.massage-model-editor__stage {
  position: relative;
  min-height: 520px;
  margin-top: 18px;
  overflow: hidden;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.18);
  border-radius: 18px;
  background: var(--color-surface-muted);
}

.massage-model-editor__canvas {
  min-height: 520px;
  cursor: grab;
}

.massage-model-editor__canvas:active {
  cursor: grabbing;
}

.massage-model-editor__panel {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 5;
  width: min(360px, calc(100% - 32px));
  max-height: calc(100% - 32px);
  overflow: auto;
  padding: 16px;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.22);
  border-radius: 16px;
  background: var(--color-surface);
  box-shadow: 0 16px 36px rgb(var(--color-text-rgb) / 0.18);
}

.massage-model-editor__panel-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.massage-model-editor__panel h3 {
  margin: 8px 0 0;
  color: var(--color-primary);
  font-size: var(--font-size-card-title, 1rem);
  text-transform: capitalize;
}

.massage-model-editor__groups {
  display: grid;
  gap: 8px;
  margin: 14px 0;
}

.massage-model-editor__group-button {
  width: 100%;
  padding: 9px 11px;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.2);
  border-radius: 10px;
  background: rgb(var(--color-primary-rgb) / 0.05);
  color: var(--color-text);
  cursor: pointer;
  text-align: left;
  transition: background 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.massage-model-editor__group-button:hover,
.massage-model-editor__group-button.is-selected {
  border-color: var(--color-secondary);
  background: rgb(var(--color-secondary-rgb) / 0.14);
  transform: translateX(2px);
}

.massage-model-editor__form {
  display: grid;
  gap: 10px;
  padding-top: 12px;
  border-top: 1px solid var(--color-border);
}

.massage-reference-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  width: 100%;
  min-width: 0;
  margin-top: 18px;
}

.massage-reference-column {
  min-width: 0;
  margin: 0;
  padding: 14px;
  overflow: hidden;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.14);
  border-radius: var(--radius-sm);
  background: rgb(var(--color-primary-rgb) / 0.03);
}

.massage-reference-column .species-catalog__list {
  margin-top: 10px;
}

.massage-reference-column .species-catalog__item {
  box-sizing: border-box;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
}

.massage-reference-column .species-catalog__identity {
  flex: 1 1 auto;
  min-width: 0;
}

.massage-reference-column .species-catalog__actions {
  flex: 0 1 auto;
  min-width: 0;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.massage-reference-column .purpose-catalog__species {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.massage-reference-column .species-catalog__inline-edit {
  flex-wrap: wrap;
}

.massage-reference-column .species-catalog__inline-input {
  min-width: 0;
}

.massage-reference-color-picker {
  width: 42px;
  min-width: 42px;
  height: 34px;
  padding: 3px;
  cursor: pointer;
}

.massage-reference-color-swatch {
  width: 12px;
  height: 12px;
  flex: 0 0 12px;
  border-radius: 50%;
  background: var(--reference-color, var(--color-primary));
  box-shadow: 0 0 0 2px rgb(var(--color-surface-rgb) / 0.95), 0 0 0 3px var(--reference-color, var(--color-primary));
}

.horse-3d-layer-control__future {
  grid-area: order !important;
  justify-self: end;
  width: max-content;
  margin-left: 0;
  padding: 4px 8px;
  border-radius: 999px;
  color: var(--color-muted);
  background: rgb(var(--color-text-rgb) / 0.06);
  font-size: var(--font-size-table, 0.72rem);
  font-weight: var(--font-weight-label, 600);
  line-height: 1.2;
  white-space: nowrap;
}

.massage-reference-item {
  cursor: pointer;
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.massage-reference-item:hover,
.massage-reference-item:focus-visible,
.massage-reference-item.is-selected {
  border-color: rgb(var(--color-primary-rgb) / 0.46);
  box-shadow: 0 8px 18px rgb(var(--color-primary-rgb) / 0.13);
}

.massage-reference-item:hover,
.massage-reference-item.is-selected {
  transform: translateY(-1px);
}

.massage-reference-item:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}

@media (max-width: 760px) {
  .massage-model-editor__stage,
  .massage-model-editor__canvas {
    min-height: 430px;
  }

  .massage-model-editor__panel {
    top: 10px;
    right: 10px;
    width: calc(100% - 20px);
    max-height: 46%;
  }

  .massage-reference-columns {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}

.species-catalog__group {
  padding-top: 22px;
}

.species-catalog__list {
  display: grid;
  gap: 10px;
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
}

.species-catalog__list li {
  position: relative;
  z-index: 0;
  display: flex;
  min-height: 38px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 4px 8px;
  border: 0;
  border-radius: 13px;
  transform: scale(1);
  transform-origin: center;
  transition: transform 0.52s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.52s cubic-bezier(0.22, 1, 0.36, 1),
    background 0.48s ease,
    box-shadow 0.48s ease;
  will-change: transform;
}

.species-catalog__list--system li:nth-child(odd) {
  background: rgb(var(--color-identity-rgb) / 0.12);
  box-shadow: inset 4px 0 0 var(--color-identity);
}

.species-catalog__list--system li:nth-child(even) {
  background: rgb(var(--color-primary-rgb) / 0.075);
  box-shadow: inset 4px 0 0 var(--color-identity);
}

.species-catalog__list--custom li:nth-child(odd) {
  background: rgb(var(--color-secondary-rgb) / 0.13);
  box-shadow: inset 4px 0 0 var(--color-secondary);
}

.species-catalog__list--custom li:nth-child(even) {
  background: rgb(var(--color-identity-rgb) / 0.1);
  box-shadow: inset 4px 0 0 var(--color-secondary);
}

.species-catalog__list li:not(.species-catalog__item--editing):hover {
  z-index: 1;
  background: var(--color-surface);
  box-shadow: inset 4px 0 0 var(--color-primary),
    inset 0 1px 0 rgb(var(--color-primary-rgb) / 0.18),
    inset 0 -1px 0 rgb(var(--color-primary-rgb) / 0.18);
  transform: scale(1.008);
  filter: drop-shadow(0 8px 12px rgb(var(--color-primary-rgb) / 0.1));
}

.species-catalog__list--custom li:not(.species-catalog__item--editing):hover {
  box-shadow: inset 4px 0 0 var(--color-secondary),
    inset 0 1px 0 rgb(var(--color-secondary-rgb) / 0.24),
    inset 0 -1px 0 rgb(var(--color-secondary-rgb) / 0.24);
}

.species-catalog__identity {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 7px;
}

.species-catalog__care-choice {
  width: 100%;
  cursor: pointer;
}

.species-catalog__care-choice:has(.settings-autosave__field-error) {
  flex-wrap: wrap;
}

.species-catalog__care-choice .settings-autosave__field-error {
  flex: 0 0 100%;
}

.species-catalog__care-choice input[type="checkbox"] {
  box-sizing: border-box;
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  margin: 0 0 0 auto;
  accent-color: var(--color-primary);
  cursor: pointer;
}

.species-catalog__care-choice:focus-within {
  border-radius: 9px;
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}

.species-catalog__group [data-settings-save-status]:empty {
  display: none;
}

.species-catalog__identity strong {
  overflow: hidden;
  color: var(--color-text);
  font-size: var(--font-size-table, 12px);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.species-catalog__avatar {
  display: inline-flex;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: var(--color-identity);
  color: var(--color-surface);
  font-size: 11px;
  font-weight: 800;
  box-shadow: 0 6px 14px rgb(var(--color-identity-rgb) / 0.2);
}

.species-catalog__avatar--custom {
  background: var(--color-secondary);
  box-shadow: 0 6px 14px rgb(var(--color-secondary-rgb) / 0.2);
}

.species-catalog__badge {
  display: inline-flex;
  align-items: center;
  width: max-content;
  padding: 5px 7px;
  border-radius: 999px;
  background: var(--color-secondary-soft);
  color: var(--color-secondary-strong);
  font-size: var(--font-size-caption, 10px);
  font-weight: var(--font-weight-label, 800);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.purpose-catalog__species {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  width: max-content;
  max-width: 180px;
  padding: 5px 8px;
  overflow: hidden;
  border-radius: 999px;
  background: rgb(var(--color-primary-rgb) / 0.1);
  color: var(--color-primary);
  font-size: var(--font-size-caption, 10px);
  font-weight: var(--font-weight-label, 800);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.agenda-color-settings {
  overflow: hidden;
  background:
    linear-gradient(135deg, rgb(var(--color-identity-rgb) / 0.06), transparent 42%),
    var(--color-surface);
}

.agenda-color-settings__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--color-border);
}

.agenda-color-settings__count {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  padding: 7px 11px;
  border-radius: 999px;
  background: var(--color-identity-soft);
  color: var(--color-identity-strong);
  font-size: var(--font-size-table, 12px);
  font-weight: var(--font-weight-label, 800);
}

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

.agenda-color-option {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 16px;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.12);
  border-radius: 16px;
  background: rgb(var(--color-white-rgb) / 0.72);
  box-shadow: var(--shadow-xs);
  cursor: pointer;
  transition:
    border-color 0.28s ease,
    box-shadow 0.28s ease,
    transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}

.agenda-color-option:hover {
  border-color: rgb(var(--color-primary-rgb) / 0.3);
  box-shadow: 0 12px 24px rgb(var(--color-primary-rgb) / 0.08);
  transform: translateY(-2px);
}

.agenda-color-option__identity,
.agenda-color-option__control {
  display: flex;
  min-width: 0;
  align-items: center;
}

.agenda-color-option__identity {
  gap: 10px;
}

.agenda-color-option__avatar {
  position: relative;
  display: inline-flex;
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: var(--agenda-color-option, var(--color-identity));
  color: var(--color-surface);
  font-size: 13px;
  font-weight: 900;
  overflow: hidden;
}

.agenda-color-option__avatar--personal {
  box-shadow: inset 0 0 0 2px rgb(var(--color-secondary-rgb) / 0.32);
}

.agenda-color-option__copy {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.agenda-color-option__copy strong,
.agenda-color-option__copy small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.agenda-color-option__copy strong {
  color: var(--color-text);
  font-size: var(--font-size-table, 14px);
}

.agenda-color-option__copy small {
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 11px);
}

.agenda-color-option__control {
  flex: 0 0 auto;
  gap: 8px;
}

.agenda-color-option__picker {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  opacity: 0;
  cursor: pointer;
}

.agenda-color-option__picker::-webkit-color-swatch-wrapper {
  padding: 0;
}

.agenda-color-option__picker::-webkit-color-swatch {
  border: 0;
}

.agenda-color-option__picker::-moz-color-swatch {
  border: 0;
}

.agenda-color-option__picker:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}

.agenda-color-option__value {
  min-width: 66px;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 11px);
  font-weight: var(--font-weight-label, 800);
  letter-spacing: 0.03em;
}

.agenda-color-settings__actions {
  justify-content: flex-end;
  padding-top: 20px;
  border-top: 1px solid var(--color-border);
}

@media (max-width: 980px) and (min-width: 641px) {
  .agenda-color-settings__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .agenda-color-settings__header {
    align-items: stretch;
    flex-direction: column;
  }

  .agenda-color-settings__count {
    align-self: flex-start;
  }

  .agenda-color-settings__grid {
    grid-template-columns: 1fr;
  }

  .agenda-color-option {
    align-items: flex-start;
    flex-direction: column;
  }

  .agenda-color-option__control {
    width: 100%;
    justify-content: flex-end;
  }
}

.species-catalog__actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 5px;
}

.species-catalog__actions form {
  margin: 0;
}

.species-catalog__edit,
.species-catalog__delete {
  display: inline-flex;
  min-height: 30px;
  align-items: center;
  justify-content: center;
  padding: 5px 9px;
  border-radius: 9px;
  font: inherit;
  font-size: var(--font-size-control, 11px);
  font-weight: var(--font-weight-label, 800);
  cursor: pointer;
  text-decoration: none;
  box-shadow: 0 5px 12px rgb(var(--color-text-rgb) / 0.06);
  transition: background-color .24s ease, border-color .24s ease, color .24s ease, box-shadow .24s ease, transform .24s cubic-bezier(.22, 1, .36, 1);
}

.species-catalog__edit {
  border: 1px solid rgb(var(--color-primary-rgb) / 0.42);
  background: var(--color-surface);
  color: var(--color-primary);
}

.species-catalog__delete {
  border: 1px solid rgb(var(--color-danger-rgb) / 0.34);
  background: var(--color-surface);
  color: var(--color-danger-strong);
}

.species-catalog__edit:hover {
  background: var(--color-primary);
  color: var(--color-surface);
  box-shadow: 0 8px 15px rgb(var(--color-primary-rgb) / 0.18);
  transform: translateY(-2px);
}

.species-catalog__delete:hover {
  border-color: var(--color-danger-strong);
  background: var(--color-danger);
  color: var(--color-surface);
  box-shadow: 0 8px 15px rgb(var(--color-danger-rgb) / 0.18);
  transform: translateY(-2px);
}

.species-catalog__edit:focus-visible,
.species-catalog__delete:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}

.species-catalog__list .species-catalog__item--editing {
  background: rgb(var(--color-primary-rgb) / 0.1);
  box-shadow: inset 4px 0 0 var(--color-primary);
}

.species-catalog__inline-edit {
  display: flex;
  width: 100%;
  min-width: 0;
  align-items: center;
  gap: 10px;
  margin: 0;
}

.species-catalog__inline-input {
  flex: 1 1 auto;
  min-width: 120px;
  min-height: 30px;
  padding: 5px 9px;
  border-radius: 9px;
  font-size: var(--font-size-input, 12px);
}

.species-catalog__inline-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 7px;
}

.species-catalog__inline-save,
.species-catalog__inline-cancel {
  display: inline-flex;
  min-height: 30px;
  align-items: center;
  justify-content: center;
  padding: 6px 10px;
  border-radius: 9px;
  font: inherit;
  font-size: var(--font-size-table, 11px);
  font-weight: var(--font-weight-label, 800);
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 5px 12px rgb(var(--color-text-rgb) / 0.06);
  transition: background-color .22s ease, color .22s ease, box-shadow .22s ease, transform .22s ease;
}

.species-catalog__inline-save {
  border: 1px solid var(--color-primary);
  background: var(--color-primary);
  color: var(--color-surface);
}

.species-catalog__inline-cancel {
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  color: var(--color-text-soft);
}

.species-catalog__inline-save:hover {
  background: var(--color-primary-strong);
  box-shadow: 0 8px 14px rgb(var(--color-primary-rgb) / 0.18);
  transform: translateY(-1px);
}

.species-catalog__inline-cancel:hover {
  background: var(--color-identity-faint);
  color: var(--color-text);
  box-shadow: 0 8px 14px rgb(var(--color-identity-rgb) / 0.14);
  transform: translateY(-1px);
}

.species-catalog__inline-save:focus-visible,
.species-catalog__inline-cancel:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}

@media (max-width: 1279px) {
  .species-catalog-layout {
    grid-template-columns: 1fr;
  }

  .species-create-card {
    position: static;
  }
}

.hero-card--dashboard {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-5, 20px);
  margin: 0 calc(-1 * var(--dashboard-page-gutter, 28px)) var(--ui-space-7, 32px);
  padding: var(--ui-space-7, 32px) clamp(20px, 5vw, 72px);
  border: 0;
  border-radius: 0 0 var(--ui-radius-overlay, 32px) var(--ui-radius-overlay, 32px);
  background: var(--color-hero-night);
  color: var(--color-surface);
  box-shadow: none;
}

.hero-card--dashboard::before {
  top: -45%;
  right: -26%;
  left: -20%;
  z-index: 0;
  height: 183%;
  pointer-events: none;
  background: var(--color-secondary-muted);
  opacity: .1;
  mask-image: url("/assets/images/client-home-cat-paw-trail.png");
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: auto 100%;
  -webkit-mask-image: url("/assets/images/client-home-cat-paw-trail.png");
  -webkit-mask-position: center;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: auto 100%;
}

.hero-card--dashboard h1 {
  margin: 0;
  color: var(--color-surface);
  font-size: var(--font-size-page-title, clamp(2rem, 3vw, 3rem));
  line-height: var(--line-height-title, 1.04);
  font-weight: var(--font-weight-body, 400);
}

.hero-card--dashboard h1 strong {
  color: var(--color-secondary-muted);
  font-weight: var(--font-weight-title, 700);
}

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

.dashboard-hero__identity small {
  display: block;
  margin-bottom: var(--ui-space-2, 8px);
  color: var(--color-secondary-muted);
  font-size: var(--font-size-label, .875rem);
  font-weight: var(--font-weight-label, 650);
}

.dashboard-hero__identity img {
  flex: 0 0 58px;
  width: 58px;
  height: 58px;
  object-fit: contain;
  border-radius: 14px;
  background: var(--color-surface);
  box-shadow: 0 5px 14px rgb(var(--color-text-rgb) / 0.12);
}

.dashboard-hero__identity h1 {
  margin-bottom: 0;
}

.dashboard-hero__identity + p {
  margin-top: 12px;
}

.questionnaire-system-choice-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 12px;
  margin-top: 8px;
}

.questionnaire-system-choice-list span {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  color: var(--color-text);
  font-size: var(--font-size-table, 13px);
}

.questionnaire-system-choice-list i {
  flex: 0 0 14px;
  width: 14px;
  height: 14px;
  border: 1.5px solid var(--color-primary);
  border-radius: 4px;
}

.questionnaire-system-choice-list em {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-style: normal;
}
.questionnaire-system-choice-list {
  grid-template-columns: minmax(0, 1fr);
}
.questionnaire-system-choice {
  align-items: center;
  background: #fff;
  border: 1px solid #cadbd2;
  border-radius: 8px;
  display: flex;
  gap: 10px;
  justify-content: space-between;
  min-width: 0;
  padding: 7px 9px;
}
.questionnaire-system-choice__label,
.questionnaire-system-choice__detail-toggle {
  align-items: center;
  display: flex;
  gap: 7px;
  min-width: 0;
}
.questionnaire-system-choice__label { color: var(--color-text); font-size: var(--font-size-label, .78rem); }
.questionnaire-system-choice__label i {
  border: 1.5px solid var(--color-primary);
  border-radius: 4px;
  flex: 0 0 14px;
  height: 14px;
  width: 14px;
}
.questionnaire-system-choice__label em { font-style: normal; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.questionnaire-system-choice__detail-toggle { color: #3f705d; cursor: pointer; flex: 0 0 auto; font-size: var(--font-size-control, .7rem); font-weight: var(--font-weight-label, 850); white-space: nowrap; }
.questionnaire-system-choice__detail-toggle input { accent-color: #3f705d; height: 15px; margin: 0; width: 15px; }
.questionnaire-system-choice { flex-wrap: wrap; }
.questionnaire-system-choice__placeholder { flex: 1 0 100%; min-height: 34px; }

@media (max-width: 560px) {
  .questionnaire-system-choice-list {
    grid-template-columns: 1fr;
  }
}

.hero-card--dashboard p {
  max-width: 680px;
  color: rgb(var(--color-white-rgb) / .86);
  font-size: var(--font-size-body, 1rem);
}

.hero-card--dashboard p strong {
  color: inherit;
  font-weight: var(--font-weight-title, 700);
}

.app-content:has(> .dashboard-page) {
  --dashboard-page-gutter: var(--app-content-gutter, 28px);
  padding-top: 0;
}

.dashboard-page {
  max-width: none;
}

.dashboard-kpis-layout,
.dashboard-content-grid {
  width: min(100%, 1280px);
  margin-inline: auto;
}

@media (max-width: 560px) {
  .dashboard-hero__identity {
    gap: 10px;
  }

  .dashboard-hero__identity img {
    flex-basis: 46px;
    width: 46px;
    height: 46px;
    border-radius: 12px;
  }
}

.detail-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 24px;
  background: var(--color-surface-muted);
}

.animal-form-hero {
  align-items: center;
  flex-wrap: wrap;
}

.animal-form-hero > .actions-inline {
  flex: 0 0 auto;
  justify-content: flex-end;
  margin-left: auto;
}

.animal-form-hero__identity {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 20px;
}

.animal-form-hero__portrait {
  flex: 0 0 72px;
}

.animal-form-hero__copy {
  min-width: 0;
}

.animal-form-hero__copy h1 {
  margin-bottom: 8px;
}

.animal-form-hero__copy p {
  max-width: 760px;
  margin-bottom: 0;
  color: var(--color-text-soft);
}

@media (max-width: 620px) {
  .animal-form-hero {
    align-items: stretch;
    flex-direction: column;
  }

  .animal-form-hero > .actions-inline {
    align-self: flex-start;
    justify-content: flex-start;
    margin-left: 0;
  }
}

.animal-detail-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  overflow: hidden;
  padding: 0;
  background: var(--color-surface);
}

.animal-detail-hero__watermark {
  position: absolute;
  z-index: 0;
  top: 50%;
  right: 0;
  width: clamp(280px, 46vw, 560px);
  height: calc(100% + 28px);
  object-fit: cover;
  object-position: center;
  opacity: 0.16;
  filter: grayscale(0.2) blur(3px) saturate(0.8);
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 34%, black 100%);
  mask-image: linear-gradient(to right, transparent 0%, black 34%, black 100%);
  transform: translateY(-50%) scale(1.02);
  pointer-events: none;
  user-select: none;
}

@media (max-width: 680px) {
  .animal-detail-hero__watermark {
    width: 78%;
    opacity: 0.11;
  }
}

/* Retour rapide en haut de page, disponible dans toute l'application. */
.page-scroll-top{align-items:center;background:#486f65;border:1px solid rgba(255,255,255,.72);border-radius:50%;bottom:max(var(--floating-action-bottom),env(safe-area-inset-bottom));box-shadow:0 9px 22px rgba(39,59,53,.25);color:#fff;cursor:pointer;display:flex;height:var(--floating-action-size);justify-content:center;opacity:0;pointer-events:none;position:fixed;right:max(var(--floating-action-edge),env(safe-area-inset-right));transform:translateY(12px) scale(.94);transition:opacity .18s ease,transform .18s ease,background-color .18s ease,box-shadow .18s ease;width:var(--floating-action-size);z-index:80}.page-scroll-top.is-visible{opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}.page-scroll-top:hover{background:#375d53;box-shadow:0 11px 26px rgba(39,59,53,.32);transform:translateY(-2px)}.page-scroll-top:focus-visible{outline:3px solid rgba(107,75,119,.3);outline-offset:3px}.page-scroll-top span{border-left:3px solid currentColor;border-top:3px solid currentColor;height:12px;margin-top:6px;transform:rotate(45deg);width:12px}
/* In authenticated spaces, the scroll control forms a fixed pair with messaging. */
.page-scroll-top::after { content: none; }
.body-app .page-scroll-top,.client-portal-body--authenticated .page-scroll-top{bottom:max(var(--floating-action-bottom),env(safe-area-inset-bottom));right:calc(max(var(--floating-action-edge),env(safe-area-inset-right)) + var(--floating-action-size) + var(--floating-action-gap));z-index:81}
.page--floating-actions-safe{padding-bottom:76px}

@media(prefers-reduced-motion:reduce){.page-scroll-top{transition:none}}

/* Respiration entre les réglages du questionnaire et l’espace de construction. */
.questionnaire-builder__layout{margin-top:18px}
.questionnaire-builder.is-dragging-module .questionnaire-dropzone{background:#f3edf5;border-color:#bcaac2;color:#624e69;height:42px;margin:2px 0}.questionnaire-builder.is-dragging-module .questionnaire-dropzone.is-active{background:#e5f0eb;border-color:#5f8c79;color:#315f4d;box-shadow:0 0 0 3px rgba(63,112,93,.12);height:52px}.questionnaire-builder.is-dragging-module .questionnaire-paper-stage{box-shadow:inset 0 0 0 2px rgba(101,76,112,.12)}

.animal-photo-library{display:grid;gap:16px}.photo-library-hero{align-items:center;display:flex;gap:22px;justify-content:space-between;padding:23px 25px}.photo-library-hero h1{margin:6px 0 4px}.photo-library-hero p{color:#6d666d;margin:0}.photo-library-hero__actions{align-items:center;display:flex;flex-wrap:wrap;gap:9px;justify-content:flex-end}.photo-library-count{background:#e8f1ed;border:1px solid #bfd4ca;border-radius:9px;color:#315f4d;font-size:var(--font-size-table, .76rem);font-weight:var(--font-weight-label, 900);padding:9px 11px}.photo-library-upload{padding:18px}.photo-library-upload>header{align-items:center;border-bottom:1px solid #e0d8e1;display:flex;gap:11px;margin-bottom:14px;padding-bottom:12px}.photo-library-upload>header>span{align-items:center;background:#654c70;border-radius:8px;color:#fff;display:flex;font-size:var(--font-size-caption, 1.1rem);font-weight:var(--font-weight-label, 900);height:34px;justify-content:center;width:36px}.photo-library-upload header small{color:#756b78;font-size:var(--font-size-help, .68rem);font-weight:var(--font-weight-label, 900);letter-spacing:.08em;text-transform:uppercase}.photo-library-upload h2{font-size:var(--font-size-card-title, 1.05rem);margin:1px 0 0}.photo-library-upload form{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.photo-library-upload label,.photo-library-tools label{color:#5c525f;display:grid;font-size:var(--font-size-label, .74rem);font-weight:var(--font-weight-label, 850);gap:5px;min-width:0}.photo-library-upload label.is-wide{grid-column:1/-1}.photo-library-upload input,.photo-library-upload select,.photo-library-upload textarea,.photo-library-tools input,.photo-library-tools select{background:#fff;border:1px solid #cec4d0;border-radius:9px;color:#373039;font:inherit;min-height:43px;min-width:0;padding:9px 11px;width:100%}.photo-library-upload textarea{line-height:1.45;resize:vertical}.photo-library-upload footer{display:flex;gap:8px;grid-column:1/-1;justify-content:flex-end}.photo-library-tools{background:#f7f3f7;border:1px solid #d8cdda;border-radius:12px;display:grid;gap:12px;grid-template-columns:minmax(240px,1fr) minmax(220px,.35fr);padding:13px 15px}.photo-library-grid{display:grid;gap:15px;grid-template-columns:repeat(4,minmax(0,1fr))}.photo-library-card{background:#fff;border:1px solid #d9d0db;border-radius:13px;box-shadow:0 7px 18px rgba(52,42,56,.09);min-width:0;overflow:hidden}.photo-library-card__image{background:#e9e3ea;border:0;cursor:zoom-in;display:block;height:190px;overflow:hidden;padding:0;width:100%}.photo-library-card__image img{height:100%;object-fit:cover;transition:transform .22s ease;width:100%}.photo-library-card:hover .photo-library-card__image img{transform:scale(1.035)}.photo-library-card__body{display:grid;gap:7px;padding:13px}.photo-library-card__body h2{font-size:var(--font-size-card-title, .96rem);margin:0;overflow-wrap:anywhere}.photo-library-card__body p{color:#6f6871;font-size:var(--font-size-table, .76rem);line-height:1.4;margin:0}.photo-library-card__body time,.photo-library-card__body>a{color:#52705f;font-size:var(--font-size-control, .72rem);font-weight:var(--font-weight-label, 850)}.photo-library-card__meta{align-items:center;display:flex;gap:6px;justify-content:space-between}.photo-library-card__meta>span:last-child{color:#786f7a;font-size:var(--font-size-help, .67rem);font-weight:var(--font-weight-label, 800)}.photo-origin{border-radius:6px;display:inline-flex;font-size:var(--font-size-table, .65rem);font-weight:var(--font-weight-label, 900);padding:5px 7px}.photo-origin--identity{background:#eee7f1;color:#624b6b}.photo-origin--library{background:#e7f1ec;color:#315e4b}.photo-origin--session{background:#f7ecdc;color:#765329}.photo-library-card form{display:flex;justify-content:flex-end}.photo-library-empty{background:#f6f2f6;border:1px dashed #cbbfce;border-radius:12px;color:#716875;padding:24px;text-align:center}.photo-library-lightbox{align-items:center;justify-content:center}.photo-library-lightbox:not([hidden]){display:flex}.photo-library-lightbox__panel{background:#1f1c21;border-radius:14px;box-shadow:0 24px 60px rgba(0,0,0,.34);max-height:90vh;max-width:min(1040px,92vw);overflow:auto;padding:14px;position:relative}.photo-library-lightbox__panel img{display:block;max-height:78vh;max-width:100%;object-fit:contain}.photo-library-lightbox__panel p{color:#fff;font-weight:var(--font-weight-label, 800);margin:10px 36px 0 4px}.photo-library-lightbox__panel>button{align-items:center;background:#fff;border:0;border-radius:50%;color:#382f3b;cursor:pointer;display:flex;font-size:var(--font-size-control, 1.4rem);height:34px;justify-content:center;position:absolute;right:22px;top:22px;width:34px}
@media(max-width:1180px){.photo-library-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:820px){.photo-library-hero{align-items:stretch;flex-direction:column}.photo-library-hero__actions{justify-content:flex-start}.photo-library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-library-upload form{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:590px){.photo-library-tools,.photo-library-upload form,.photo-library-grid{grid-template-columns:minmax(0,1fr)}.photo-library-upload label.is-wide,.photo-library-upload footer{grid-column:auto}.photo-library-upload footer{display:grid}.photo-library-card__image{height:220px}}

.report-block-media{background:#f5f1f6;border:1px solid #d9cedc;border-radius:10px;padding:10px}.report-block-media__heading{align-items:center;display:flex;gap:10px;justify-content:space-between}.report-block-media__heading strong{color:#55475a;font-size:.76rem}.report-block-media__thumbs{display:grid;gap:8px;grid-template-columns:repeat(5,minmax(0,1fr));margin-top:10px}.report-block-media__thumbs figure{border-radius:8px;height:82px;margin:0;overflow:hidden;position:relative}.report-block-media__thumbs img{height:100%;object-fit:cover;width:100%}.report-block-media__thumbs button{align-items:center;background:#fff;border:0;border-radius:50%;color:#793f43;cursor:pointer;display:flex;height:24px;justify-content:center;position:absolute;right:5px;top:5px;width:24px}.report-preview__photo-grid{display:grid;gap:7px;grid-template-columns:repeat(2,minmax(0,1fr))}.report-preview__photo-grid img{border-radius:7px;height:145px;object-fit:cover;width:100%}.report-photo-picker{align-items:center;justify-content:center}.report-photo-picker:not([hidden]){display:flex}.report-photo-picker__panel{background:#fff;border-radius:15px;box-shadow:0 24px 65px rgba(25,20,27,.32);display:grid;max-height:88vh;max-width:min(1000px,92vw);overflow:hidden;width:100%}.report-photo-picker__panel>header,.report-photo-picker__panel>footer{align-items:center;display:flex;gap:12px;justify-content:space-between;padding:15px 18px}.report-photo-picker__panel>header{border-bottom:1px solid #ddd4df}.report-photo-picker__panel>header small{color:#746a77;font-size:var(--font-size-help, .68rem);font-weight:var(--font-weight-label, 900);letter-spacing:.08em;text-transform:uppercase}.report-photo-picker__panel h2{font-size:var(--font-size-card-title, 1.05rem);margin:2px 0 0}.report-photo-picker__panel>header button{background:#f1ebf2;border:0;border-radius:50%;color:#55405c;cursor:pointer;font-size:var(--font-size-control, 1.3rem);height:34px;width:34px}.report-photo-picker__panel>footer{border-top:1px solid #ddd4df}.report-photo-picker__grid{display:grid;gap:11px;grid-template-columns:repeat(4,minmax(0,1fr));overflow:auto;padding:16px}.report-photo-picker__item{background:#fff;border:1px solid #d7ced9;border-radius:10px;cursor:pointer;display:grid;min-width:0;overflow:hidden;position:relative}.report-photo-picker__item:has(input:checked){border-color:#4d806b;box-shadow:0 0 0 3px rgba(77,128,107,.15)}.report-photo-picker__item input{height:19px;position:absolute;right:8px;top:8px;width:19px;z-index:2}.report-photo-picker__item img{height:130px;object-fit:cover;width:100%}.report-photo-picker__item>span{display:grid;gap:2px;padding:9px}.report-photo-picker__item strong{font-size:var(--font-size-table, .76rem);overflow-wrap:anywhere}.report-photo-picker__item small{color:#746c76;font-size:var(--font-size-help, .67rem)}.report-photo-picker__item small:empty{display:none}@media(max-width:760px){.report-photo-picker__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-photo-picker__panel>footer{align-items:stretch;display:grid}.report-block-media__thumbs{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Éditeur modulaire des comptes rendus de pratique. */
.report-builder-page { --report-ink:#2f2933; --report-purple:#72577c; --report-purple-soft:#f0e9f2; --report-green:#477260; --report-paper:#fffdfa; }
.report-builder-hero { align-items:center; display:flex; gap:24px; justify-content:space-between; padding:20px 24px; }
.report-template-builder > .report-builder-hero { align-items:flex-start; }
.report-builder-hero h1 { margin:7px 0 3px; }
.report-builder-hero p { color:#655e68; margin:0; }
.report-builder-toolbar { align-items:end; display:grid; gap:16px; grid-template-columns:minmax(280px,1fr) auto auto; padding:16px 18px; }
.report-builder-toolbar__identity { display:grid; gap:6px; min-width:0; }
.report-builder-toolbar__identity label { color:#63596a; font-size:var(--font-size-label, .78rem); font-weight:var(--font-weight-label, 800); letter-spacing:.04em; text-transform:uppercase; }
.report-builder-toolbar__identity input { font-size:var(--font-size-input, 1rem); font-weight:var(--font-weight-body, 750); min-width:0; width:100%; }
.report-builder-toolbar__status { background:#eaf3ee; border:1px solid #bcd3c7; border-radius:8px; color:#315b49; font-size:var(--font-size-caption, .82rem); font-weight:var(--font-weight-label, 800); padding:8px 11px; white-space:nowrap; }
.report-builder-toolbar__status.is-pending { background:#fff6df; border-color:#e3c985; color:#755a19; }
.report-builder-toolbar__status.is-error { background:#fae8e7; border-color:#dba9a5; color:#843b36; }
.report-builder-send { align-items:flex-end; display:flex; flex-direction:column; gap:4px; }
.report-builder-send small { color:#6e6771; font-size:var(--font-size-help, .72rem); }
.report-builder-layout { align-items:start; display:grid; gap:20px; grid-template-columns:minmax(0,1.25fr) minmax(330px,.75fr); }
.report-builder-editor { display:grid; gap:16px; min-width:0; }
.report-builder-editor > .card,.report-preview { padding:18px; }
.report-builder-library { background:#fff; border-color:#cfc1d4; box-shadow:0 11px 25px rgba(58,43,64,.14); position:sticky; top:16px; z-index:12; }
.report-builder-library .report-builder-section-heading { margin-bottom:8px; }
.report-builder-library .report-builder-hint { margin:0 0 9px 45px; }
.report-builder-section-heading { align-items:center; display:flex; gap:11px; margin-bottom:14px; }
.report-builder-section-heading__index { align-items:center; background:#5d4967; border-radius:7px; color:#fff; display:inline-flex; font-size:var(--font-size-table, .72rem); font-weight:var(--font-weight-label, 900); height:30px; justify-content:center; min-width:34px; }
.report-builder-section-heading small,.report-preview header small { color:#7a6c81; display:block; font-size:.7rem; font-weight:850; letter-spacing:.08em; margin-bottom:1px; text-transform:uppercase; }
.report-builder-section-heading h2,.report-preview h2 { color:var(--report-ink); font-size:1.06rem; margin:0; }
.report-template-grid { display:grid; gap:9px; grid-template-columns:repeat(3,minmax(0,1fr)); }
.report-template-option { background:#fff; border:1px solid #d8cedc; border-radius:10px; color:var(--report-ink); cursor:pointer; display:grid; gap:3px; min-width:0; padding:11px 12px; text-align:left; }
.report-template-option strong { font-size:var(--font-size-body, .9rem); }
.report-template-option span { color:#6d6670; font-size:var(--font-size-table, .76rem); line-height:1.35; }
.report-template-option:hover,.report-template-option.is-active { background:var(--report-purple-soft); border-color:#8f7399; box-shadow:0 5px 13px rgba(72,50,80,.12); }
.report-builder-hint { color:#716a74; font-size:var(--font-size-help, .77rem); margin:10px 0 0; }
.report-module-library { display:flex; flex-wrap:wrap; gap:7px; }
.report-module-library button { background:#faf7fb; border:1px solid #d8cddd; border-radius:8px; color:#503d58; cursor:pointer; font-size:var(--font-size-control, .8rem); font-weight:var(--font-weight-label, 800); padding:8px 10px; }
.report-module-library button:hover { background:#e9dfee; border-color:#8d7198; }
.report-module-library button[draggable="true"] { cursor:grab; }
.report-module-library button.is-dragging { background:#5e4968; border-color:#5e4968; color:#fff; opacity:.72; }
.report-block-list { display:grid; gap:11px; }
.report-block-dropzone { align-items:center; border:1px dashed transparent; border-radius:8px; color:transparent; display:flex; font-size:.75rem; font-weight:800; height:6px; justify-content:center; margin:-6px 0; transition:height .16s ease,background-color .16s ease,border-color .16s ease,color .16s ease,margin .16s ease; }
.report-block-dropzone.is-active { background:#eee5f1; border-color:#8e7199; color:#553f5e; height:38px; margin:0; }
.report-block-card { background:#fff; border:1px solid #ddd4df; border-radius:11px; box-shadow:0 5px 13px rgba(54,43,59,.07); min-width:0; overflow:hidden; }
.report-block-card.is-dragging { opacity:.5; }
.report-block-card__header { align-items:center; background:#f7f2f8; display:flex; gap:9px; justify-content:space-between; padding:8px 10px; }
.report-block-card__header > strong { color:#433749; flex:1; font-size:.82rem; }
.report-block-card__drag { color:#846f8d; cursor:grab; font-weight:900; letter-spacing:-3px; }
.report-template-builder .report-block-card__drag{touch-action:none;user-select:none}
.report-block-card__controls { display:flex; gap:4px; }
.report-block-card__controls button { align-items:center; background:#fff; border:1px solid #d7ccd9; border-radius:6px; color:#4a3b50; cursor:pointer; display:inline-flex; font-size:.88rem; height:27px; justify-content:center; width:27px; }
.report-block-card__controls button:hover { background:#5e4968; border-color:#5e4968; color:#fff; }
.report-block-card__controls button.report-module-action--delete{color:#96534d}.report-block-card__controls button.report-module-action--delete svg{fill:none;height:15px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8;width:15px}.report-block-card__controls button.report-module-action--delete:hover,.report-block-card__controls button.report-module-action--delete:focus-visible{background:#96534d;border-color:#96534d;color:#fff;outline:0}.report-block-card__controls button.report-module-action--rest{color:#62566a;font-size:1rem;font-weight:800}.report-block-card__controls button.report-module-action--rest:hover,.report-block-card__controls button.report-module-action--rest:focus-visible{background:#62566a;border-color:#62566a;color:#fff;outline:0}
.report-block-card__fields { background:#fdfcfd; display:grid; gap:12px; grid-template-columns:minmax(0,1fr) minmax(170px,.34fr); padding:14px; }
.report-block-field { display:grid; gap:5px; min-width:0; }
.report-block-field > span { color:#584d5e; font-size:.72rem; font-weight:850; letter-spacing:.025em; }
.report-block-field input,.report-block-field select,.report-block-field textarea { background:#fff; border:1px solid #cfc5d2; border-radius:9px; box-shadow:0 2px 7px rgba(52,41,57,.06) inset,0 1px 2px rgba(52,41,57,.04); color:#342e37; font-family:inherit; font-size:.88rem; line-height:1.35; min-height:42px; min-width:0; padding:10px 12px; resize:vertical; transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease; width:100%; }
.report-block-field select { appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'%3E%3Cpath d='m1 1 6 6 6-6' fill='none' stroke='%23604b69' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); background-position:right 12px center; background-repeat:no-repeat; padding-right:38px; }
.report-block-field input:hover,.report-block-field select:hover,.report-block-field textarea:hover { border-color:#a894ae; }
.report-block-field input:focus,.report-block-field select:focus,.report-block-field textarea:focus { background:#fff; border-color:#705379; box-shadow:0 0 0 3px rgba(112,83,121,.14),0 5px 15px rgba(61,43,67,.08); outline:0; }
.report-block-field textarea { line-height:1.5; min-height:74px; overflow:hidden; }
.report-block-field--full { grid-column:1/-1; }
.report-checklist-editor { background:#f5f0f6; border:1px solid #d8cbdc; border-radius:10px; display:grid; gap:7px; padding:10px; }
.report-checklist-editor__heading { align-items:center; display:flex; justify-content:space-between; margin-bottom:2px; }
.report-checklist-editor__heading > span { color:#57475e; font-size:var(--font-size-caption, .74rem); font-weight:var(--font-weight-label, 850); }
.report-checklist-editor__add { background:#fff; border:1px solid #ad98b5; border-radius:7px; color:#533e5b; cursor:pointer; font-size:var(--font-size-control, .74rem); font-weight:var(--font-weight-label, 850); padding:6px 9px; }
.report-checklist-editor__add:hover { background:#624b6b; border-color:#624b6b; color:#fff; }
.report-checklist-row { align-items:center; background:#fff; border:1px solid #d8cfd9; border-radius:9px; box-shadow:0 3px 8px rgba(48,38,52,.06); display:grid; gap:9px; grid-template-columns:22px minmax(0,1fr) 29px; min-width:0; padding:7px 8px; }
.report-checklist-row > input[type="checkbox"] { appearance:none; background:#fff; border:2px solid #90779a; border-radius:5px; cursor:pointer; height:20px; margin:0; position:relative; width:20px; }
.report-checklist-row > input[type="checkbox"]:checked { background:#674d71; border-color:#674d71; }
.report-checklist-row > input[type="checkbox"]:checked::after { border:solid #fff; border-width:0 2px 2px 0; content:""; height:9px; left:6px; position:absolute; top:2px; transform:rotate(45deg); width:4px; }
.report-checklist-row > input[type="checkbox"]:focus-visible { box-shadow:0 0 0 3px rgba(103,77,113,.18); outline:0; }
.report-checklist-row > input[type="text"] { background:transparent; border:0; color:#38313b; font:inherit; min-width:0; padding:6px 4px; width:100%; }
.report-checklist-row > input[type="text"]:focus { outline:0; }
.report-checklist-row:focus-within { border-color:#8f7699; box-shadow:0 0 0 3px rgba(112,83,121,.11); }
.report-checklist-row__remove { align-items:center; background:#f8eeee; border:1px solid #e0c0bf; border-radius:7px; color:#8a4440; cursor:pointer; display:flex; font-size:var(--font-size-body, 1rem); height:28px; justify-content:center; width:28px; }
.report-checklist-row__remove:hover { background:#8b4642; border-color:#8b4642; color:#fff; }
.report-block-list__empty { border:1px dashed #cfc2d3; border-radius:9px; color:#726a76; margin:0; padding:18px; text-align:center; }
.report-preview { background:var(--report-paper); border-top:5px solid #6d5476; box-shadow:0 14px 35px rgba(57,44,61,.13); max-height:calc(100vh - 36px); overflow:auto; position:sticky; top:18px; }
.report-preview header { border-bottom:1px solid #dfd7d1; padding-bottom:13px; }
.report-preview h2 { font-family:Georgia,serif; font-size:1.28rem; }
.report-preview__meta { align-items:center; color:#756d72; display:flex; font-size:.8rem; justify-content:space-between; padding:11px 0; }
.report-preview__meta strong { color:#3f3741; }
.report-preview__body { display:grid; gap:11px; }
.report-preview-block { padding:3px 0; }
.report-preview-block--section,.report-preview-block--heading_content{border-bottom:2px solid #a8c3b7;padding-bottom:8px}
.report-preview-block--section.has-no-separator,.report-preview-block--heading_content.has-no-separator{border-bottom-color:transparent}
.report-preview-block--note { background:#f5edf6; border-radius:8px; padding:9px 11px; }
.report-preview-block h3 { color:inherit; font-family:inherit; font-size:1em; font-style:inherit; font-weight:850; margin:0 0 5px; text-decoration:inherit; }
.report-preview-block p,.report-preview-block li { color:inherit; font-family:inherit; font-size:inherit; font-style:inherit; font-weight:inherit; line-height:1.5; text-decoration:inherit; white-space:pre-wrap; }
.report-preview-block p { margin:0; }.report-preview-block ul { margin:5px 0 0; padding-left:18px; }
.report-preview-check { align-items:center; display:flex; gap:7px; list-style:none; margin:5px 0; }
.report-preview-check input { appearance:none; background:#fff; border:1.5px solid #806889; border-radius:4px; height:15px; margin:0; opacity:1; position:relative; width:15px; }
.report-preview-check input:checked { background:#674d71; border-color:#674d71; }
.report-preview-check input:checked::after { border:solid #fff; border-width:0 1.5px 1.5px 0; content:""; height:7px; left:4px; position:absolute; top:1px; transform:rotate(45deg); width:3px; }
.report-preview__media { align-items:center; background:#ede8ed; border:1px dashed #bcb0bf; border-radius:7px; color:#776d7a; display:flex; font-size:.77rem; justify-content:center; min-height:82px; }
.report-preview__separator { border:0; border-top:1px solid #cfc4cb; width:100%; }
.table-action--report { background:#ece4ef; border-color:#bca9c3; color:#4f3c57; }
@media (max-width:1100px) { .report-builder-layout{grid-template-columns:minmax(0,1fr)} .report-preview{max-height:none;position:static} }
@media (max-width:760px) { .report-builder-hero{align-items:stretch;flex-direction:column}.report-builder-toolbar{align-items:stretch;grid-template-columns:minmax(0,1fr)}.report-builder-send{align-items:stretch}.report-template-grid{grid-template-columns:minmax(0,1fr)}.report-builder-library{position:static}.report-builder-library .report-builder-hint{margin-left:0}.report-block-card__fields{grid-template-columns:minmax(0,1fr)}.report-block-field--full{grid-column:auto} }

/* Questionnaires clients - catalogue et éditeur commun à toutes les pratiques. */
.questionnaire-page,.questionnaire-builder{--questionnaire-purple:#654c70;--questionnaire-green:#3f705d;--questionnaire-ink:#342f37;container:questionnaire-builder/inline-size;min-width:0;}
.questionnaire-hero{align-items:center;display:flex;gap:24px;justify-content:space-between;padding:20px 24px}.questionnaire-hero h1{margin:7px 0 4px}.questionnaire-hero p{color:#665f69;margin:0}.questionnaire-catalog{padding:18px}.questionnaire-section-heading{align-items:center;display:flex;gap:11px;margin-bottom:14px}.questionnaire-section-heading>span{align-items:center;background:var(--questionnaire-purple);border-radius:7px;color:#fff;display:flex;font-size:var(--font-size-caption, .72rem);font-weight:var(--font-weight-label, 900);height:31px;justify-content:center;min-width:35px}.questionnaire-section-heading small{color:#75697b;display:block;font-size:var(--font-size-help, .68rem);font-weight:var(--font-weight-label, 850);letter-spacing:.08em;text-transform:uppercase}.questionnaire-section-heading h2{font-size:var(--font-size-card-title, 1.08rem);margin:1px 0 0}.questionnaire-template-list{display:grid;gap:10px}.questionnaire-template-card{align-items:center;background:#fff;border:1px solid #d8d0da;border-left:4px solid #7c6386;border-radius:11px;box-shadow:0 5px 14px rgba(50,41,54,.07);display:grid;gap:14px;grid-template-columns:48px minmax(0,1fr) auto auto;min-width:0;padding:12px 14px}.questionnaire-template-card.is-aenima{border-left-color:#3e7661}.questionnaire-template-card__mark{align-items:center;background:#eee6f0;border:1px solid #cbbcd0;border-radius:10px;color:#594161;display:flex;font-weight:var(--font-weight-label, 900);height:42px;justify-content:center;width:42px}.questionnaire-template-card.is-aenima .questionnaire-template-card__mark{background:#e5f0eb;border-color:#b8d1c5;color:#315f4d}.questionnaire-template-card__body{min-width:0}.questionnaire-template-card__body>div{display:flex;gap:6px}.questionnaire-template-card__body>div span{background:#f3eef4;border:1px solid #ddd1e0;border-radius:6px;color:#66506f;font-size:var(--font-size-table, .68rem);font-weight:var(--font-weight-label, 850);padding:3px 6px}.questionnaire-template-card__body h3{color:#373039;font-size:var(--font-size-card-title, .96rem);margin:6px 0 2px}.questionnaire-template-card__body p{color:#706a72;font-size:var(--font-size-table, .77rem);margin:0}.questionnaire-template-card__count{display:grid;text-align:center}.questionnaire-template-card__count strong{color:#57405f;font-size:var(--font-size-help, 1.05rem)}.questionnaire-template-card__count span{color:#776f79;font-size:var(--font-size-help, .68rem)}.questionnaire-template-card__actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.questionnaire-template-card__actions form{margin:0}.questionnaire-template-card__actions button{font:inherit}.table-action--danger{background:#f7eceb;border-color:#dec0bd;color:#873f3a}
.questionnaire-builder__settings{align-items:end;display:grid;gap:12px;grid-template-columns:minmax(230px,1fr) minmax(180px,.45fr) auto;padding:14px 16px}.questionnaire-builder__settings label{color:#574e5b;display:grid;font-size:var(--font-size-label, .72rem);font-weight:var(--font-weight-label, 850);gap:5px;min-width:0}.questionnaire-builder__settings input,.questionnaire-builder__settings select,.questionnaire-item-field input,.questionnaire-item-field textarea{background:#fff;border:1px solid #cec3d1;border-radius:9px;box-shadow:0 2px 7px rgba(45,35,49,.05) inset;color:#38313b;font:inherit;min-height:41px;min-width:0;padding:9px 11px;width:100%}.questionnaire-builder__settings input:focus,.questionnaire-builder__settings select:focus,.questionnaire-item-field input:focus,.questionnaire-item-field textarea:focus{border-color:#6d5277;box-shadow:0 0 0 3px rgba(109,82,119,.14);outline:0}.questionnaire-builder__description{grid-column:1/3}.questionnaire-builder__save-status{background:#e7f1ec;border:1px solid #bbd2c7;border-radius:8px;color:#315e4b;font-size:var(--font-size-control, .76rem);font-weight:var(--font-weight-label, 850);padding:8px 10px;white-space:nowrap}.questionnaire-builder__save-status.is-pending{background:#fff4d9;border-color:#dec37e;color:#73581c}.questionnaire-builder__save-status.is-error{background:#f9e7e6;border-color:#dbaaa7;color:#853d39}.questionnaire-builder__layout{align-items:start;display:grid;gap:18px;grid-template-columns:minmax(0,1.22fr) minmax(330px,.78fr)}.questionnaire-builder__work{display:grid;gap:15px;min-width:0}.questionnaire-field-library,.questionnaire-builder__composition,.questionnaire-client-preview{padding:17px}.questionnaire-field-library{background:#fff;border-color:#cdbed2;box-shadow:0 11px 24px rgba(58,44,63,.13);position:sticky;top:15px;z-index:12}.questionnaire-field-library>p{color:#706875;font-size:var(--font-size-table, .75rem);margin:-4px 0 9px 46px}.questionnaire-field-library [data-questionnaire-library]{display:flex;flex-wrap:wrap;gap:7px}.questionnaire-field-library button{background:#f8f4f9;border:1px solid #d4c6d8;border-radius:8px;color:#513d59;cursor:grab;font-size:var(--font-size-control, .78rem);font-weight:var(--font-weight-label, 850);padding:8px 10px}.questionnaire-field-library button:hover,.questionnaire-field-library button.is-dragging{background:#604869;border-color:#604869;color:#fff}.questionnaire-builder__composition [data-questionnaire-items]{display:grid;gap:10px}.questionnaire-dropzone{align-items:center;border:1px dashed transparent;border-radius:8px;color:transparent;display:flex;font-size:var(--font-size-table, .74rem);font-weight:var(--font-weight-label, 850);height:6px;justify-content:center;margin:-5px 0;transition:.16s ease}.questionnaire-dropzone.is-active{background:#ece3ef;border-color:#896b94;color:#503b58;height:38px;margin:0}.questionnaire-item-card{background:#fff;border:1px solid #d9d0db;border-radius:10px;box-shadow:0 4px 11px rgba(48,38,52,.07);min-width:0;overflow:hidden}.questionnaire-item-card__head{align-items:center;background:#f6f1f7;display:flex;gap:8px;padding:8px 10px}.questionnaire-item-card--section .questionnaire-item-card__head{background:#e9f2ed}.questionnaire-item-card__head>strong{color:#463a4b;flex:1;font-size:var(--font-size-table, .8rem)}.questionnaire-item-card__drag{color:#846d8e;cursor:grab;font-weight:var(--font-weight-label, 900);letter-spacing:-3px}.questionnaire-item-card__head>div{display:flex;gap:4px}.questionnaire-item-card__head button{align-items:center;background:#fff;border:1px solid #d4c9d7;border-radius:6px;color:#4c3c52;cursor:pointer;display:flex;height:27px;justify-content:center;width:27px}.questionnaire-item-card__head button:hover{background:#604969;border-color:#604969;color:#fff}.questionnaire-item-card__fields{background:#fdfcfd;display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}.questionnaire-item-field{color:#5a505f;display:grid;font-size:var(--font-size-table, .71rem);font-weight:var(--font-weight-label, 850);gap:5px;min-width:0}.questionnaire-item-field textarea{line-height:1.45;min-height:64px;resize:vertical}.questionnaire-item-field.is-wide{grid-column:1/-1}.questionnaire-required{align-items:center;background:#f3eef5;border:1px solid #d9cddd;border-radius:9px;color:#58455f;display:flex;font-size:var(--font-size-table, .75rem);font-weight:var(--font-weight-label, 850);gap:8px;min-height:41px;padding:8px 10px}.questionnaire-required input{appearance:none;background:#fff;border:2px solid #8c7396;border-radius:5px;height:19px;margin:0;position:relative;width:19px}.questionnaire-required input:checked{background:#654c70;border-color:#654c70}.questionnaire-required input:checked:after{border:solid #fff;border-width:0 2px 2px 0;content:"";height:8px;left:5px;position:absolute;top:2px;transform:rotate(45deg);width:4px}.questionnaire-client-preview{background:#fffdfa;border-top:5px solid #3f725f;max-height:calc(100vh - 32px);overflow:auto;position:sticky;top:16px}.questionnaire-client-preview header{border-bottom:1px solid #ded7d2;padding-bottom:12px}.questionnaire-client-preview header small{color:#6e7c73;font-size:.68rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.questionnaire-client-preview h2{font-family:Georgia,serif;font-size:1.25rem;margin:3px 0 0}.questionnaire-client-preview>[data-questionnaire-preview]{display:grid;gap:11px;padding-top:12px}.questionnaire-preview-section{border-bottom:2px solid #9ebbad;padding:8px 0 5px}.questionnaire-preview-section h3{color:#35614f;font-family:Georgia,serif;font-size:1rem;margin:0}.questionnaire-preview-section p{color:#716b72;font-size:.74rem;margin:3px 0}.questionnaire-preview-info{background:#f2edf4;border-left:3px solid #785d82;border-radius:0 8px 8px 0;color:#4f4254;font-size:.78rem;padding:9px 10px}.questionnaire-preview-info small{display:block;margin-top:3px}.questionnaire-preview-field{display:grid;gap:5px}.questionnaire-preview-field>strong{color:#413943;font-size:.78rem}.questionnaire-preview-field>small{color:#777079;font-size:.7rem}.questionnaire-preview-field>input,.questionnaire-preview-field>textarea{background:#fff;border:1px solid #d2c9d3;border-radius:8px;min-height:38px;padding:8px;width:100%}.questionnaire-preview-options{display:grid;gap:5px}.questionnaire-preview-options span{align-items:center;color:#5c555f;display:flex;font-size:.76rem;gap:7px}.questionnaire-preview-options input{appearance:none;background:#fff;border:1.5px solid #806889;border-radius:50%;height:15px;margin:0;opacity:1;width:15px}.questionnaire-preview-options input[type=checkbox]{border-radius:4px}.questionnaire-preview-photo{align-items:center;background:#f2eef2;border:1px dashed #ad9faf;border-radius:8px;color:#6f6572;display:flex;font-size:.76rem;justify-content:center;min-height:68px}
@media(max-width:1100px){.questionnaire-builder__layout{grid-template-columns:minmax(0,1fr)}.questionnaire-client-preview{max-height:none;position:static}.questionnaire-template-card{grid-template-columns:44px minmax(0,1fr) auto}.questionnaire-template-card__actions{grid-column:2/-1;justify-content:flex-start}}
@media(max-width:720px){.questionnaire-hero{align-items:stretch;flex-direction:column}.questionnaire-builder__settings{grid-template-columns:minmax(0,1fr)}.questionnaire-builder__description{grid-column:auto}.questionnaire-field-library{position:static}.questionnaire-field-library>p{margin-left:0}.questionnaire-item-card__fields{grid-template-columns:minmax(0,1fr)}.questionnaire-item-field.is-wide{grid-column:auto}.questionnaire-template-card{grid-template-columns:42px minmax(0,1fr)}.questionnaire-template-card__count{grid-column:1}.questionnaire-template-card__actions{grid-column:2}}

/* Prévisualisation isolée de l’interface qui sera présentée au client. */
.questionnaire-hero__actions{display:flex;flex-wrap:wrap;gap:8px}.table-action--preview{background:#e6f0eb;border-color:#abc8ba;color:#315e4b}.client-questionnaire-preview-shell{background:#eeeae4;color:#383238;min-height:100vh}.client-questionnaire-preview-page{margin:0 auto;max-width:1040px;padding:20px}.client-questionnaire-preview-bar{align-items:center;background:#3f6456;border:1px solid #345548;border-radius:12px;box-shadow:0 9px 23px rgba(37,51,45,.18);display:flex;gap:20px;isolation:isolate;justify-content:space-between;margin-bottom:16px;padding:12px 14px;position:sticky;top:12px;z-index:60}.client-questionnaire-preview-bar>div{display:grid;gap:2px}.client-questionnaire-preview-bar span{color:#fff;font-size:.78rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.client-questionnaire-preview-bar strong{color:#dce9e3;font-size:.76rem;font-weight:600}.client-questionnaire-preview-bar .btn{background:#fff;border-color:#fff;color:#3d554b;flex:none}.client-questionnaire-document{background:#fff;border:1px solid #ded7cf;border-radius:16px;box-shadow:0 18px 48px rgba(56,47,40,.14);margin:0 auto;max-width:820px;overflow:hidden}.client-questionnaire-document__hero{align-items:center;background:#f5f1eb;border-bottom:1px solid #ded6cd;display:flex;gap:15px;padding:24px 28px}.client-questionnaire-document__brand{align-items:center;background:#3e705c;border:4px solid #fff;border-radius:14px;box-shadow:0 6px 15px rgba(44,84,67,.2);color:#fff;display:flex;font-family:Georgia,serif;font-size:1.45rem;font-weight:900;height:58px;justify-content:center;width:58px}.client-questionnaire-document__hero>div:last-child{min-width:0}.client-questionnaire-document__hero span{color:#557365;font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.client-questionnaire-document__hero h1{color:#312c31;font-family:Georgia,serif;font-size:1.65rem;margin:3px 0}.client-questionnaire-document__hero p{color:#706970;font-size:.82rem;margin:0}.client-questionnaire-form{display:grid;gap:15px;padding:26px 28px}.client-questionnaire-section{align-items:center;border-bottom:2px solid #a8c3b7;display:flex;gap:11px;margin-top:8px;padding:8px 0}.client-questionnaire-section>span{align-items:center;background:#3f705d;border-radius:7px;color:#fff;display:flex;font-size:.7rem;font-weight:900;height:29px;justify-content:center;min-width:34px}.client-questionnaire-section h2{color:#345b4c;font-family:Georgia,serif;font-size:1.16rem;margin:0}.client-questionnaire-section p{color:#756f75;font-size:.76rem;margin:3px 0 0}.client-questionnaire-information{background:#f1ebf3;border-left:4px solid #73567d;border-radius:0 10px 10px 0;color:#4e4252;padding:11px 13px}.client-questionnaire-information strong{font-size:.84rem}.client-questionnaire-information p{font-size:.76rem;line-height:1.45;margin:4px 0 0}.client-questionnaire-field{border:0;display:grid;gap:7px;margin:0;min-width:0;padding:0}.client-questionnaire-field legend{color:#403941;font-size:.84rem;font-weight:850;padding:0}.client-questionnaire-field legend span{color:#98544d}.client-questionnaire-field__help{color:#777077;font-size:.73rem;line-height:1.4;margin:-2px 0 1px}.client-questionnaire-field>input,.client-questionnaire-field>textarea,.client-questionnaire-number{background:#fff;border:1px solid #cfc6d1;border-radius:10px;box-shadow:0 2px 7px rgba(50,41,54,.06) inset;color:#342e37;font:inherit;min-height:44px;padding:10px 12px;width:100%}.client-questionnaire-field>textarea{line-height:1.5;resize:vertical}.client-questionnaire-field>input:focus,.client-questionnaire-field>textarea:focus{border-color:#654c70;box-shadow:0 0 0 3px rgba(101,76,112,.14);outline:0}.client-questionnaire-number{align-items:center;display:flex;padding:0}.client-questionnaire-number input{border:0;flex:1;font:inherit;min-height:42px;min-width:0;padding:10px 12px}.client-questionnaire-number input:focus{outline:0}.client-questionnaire-number span{border-left:1px solid #d8cfd9;color:#625668;font-size:.78rem;font-weight:850;padding:10px 12px}.client-questionnaire-choices{display:grid;gap:7px;grid-template-columns:repeat(2,minmax(0,1fr))}.client-questionnaire-choices label{align-items:center;background:#faf8fa;border:1px solid #d5cdd6;border-radius:9px;cursor:pointer;display:flex;gap:9px;min-width:0;padding:9px 10px}.client-questionnaire-choices label:hover{background:#f1ebf3;border-color:#a892af}.client-questionnaire-choices input{appearance:none;background:#fff;border:2px solid #846c8d;border-radius:50%;height:19px;margin:0;position:relative;width:19px}.client-questionnaire-choices input[type=checkbox]{border-radius:5px}.client-questionnaire-choices input:checked{background:#654c70;border-color:#654c70}.client-questionnaire-choices input:checked:after{background:#fff;border-radius:50%;content:"";height:7px;left:4px;position:absolute;top:4px;width:7px}.client-questionnaire-choices input[type=checkbox]:checked:after{background:transparent;border:solid #fff;border-width:0 2px 2px 0;border-radius:0;height:8px;left:5px;top:2px;transform:rotate(45deg);width:4px}.client-questionnaire-choices span{font-size:.8rem;min-width:0}.client-questionnaire-photo{align-items:center;background:#f7f3f7;border:1px dashed #a693ab;border-radius:11px;color:#58475f;cursor:pointer;display:grid;gap:2px;justify-items:center;min-height:96px;padding:13px;width:100%}.client-questionnaire-photo>span{align-items:center;background:#6a5074;border-radius:50%;color:#fff;display:flex;font-size:1.1rem;height:29px;justify-content:center;width:29px}.client-questionnaire-photo strong{font-size:.82rem}.client-questionnaire-photo small{color:#7b727d}.client-questionnaire-empty{border:1px dashed #b9aebc;border-radius:10px;color:#716975;padding:24px;text-align:center}.client-questionnaire-empty p{font-size:.8rem;margin:5px 0 0}.client-questionnaire-form__footer{align-items:center;border-top:1px solid #ddd5dc;display:flex;gap:12px;justify-content:flex-end;margin-top:8px;padding-top:18px}.client-questionnaire-form__footer small{color:#7a727b;font-size:.72rem}.client-questionnaire-form__footer .btn:disabled{cursor:not-allowed;opacity:.55}
@media(max-width:650px){.client-questionnaire-preview-page{padding:10px}.client-questionnaire-preview-bar{align-items:center;gap:10px;top:8px}.client-questionnaire-preview-bar>div{min-width:0}.client-questionnaire-preview-bar strong{line-height:1.25}.client-questionnaire-preview-bar .btn{padding:8px 10px}.client-questionnaire-document__hero{align-items:flex-start;padding:19px}.client-questionnaire-form{padding:19px}.client-questionnaire-choices{grid-template-columns:minmax(0,1fr)}.client-questionnaire-form__footer{align-items:stretch;flex-direction:column}.questionnaire-hero__actions{display:grid}}

/* Identité professionnelle et éditeur documentaire A3. */
.brand-mark--logo{background:#fff;padding:4px}.brand-mark--logo img,.client-questionnaire-document__brand img,.questionnaire-a3-paper__logo img{height:100%;object-fit:contain;width:100%}.questionnaire-a3-paper__logo--animal{padding:0}.questionnaire-a3-paper__logo--animal img{object-fit:cover}.practitioner-identity-page{display:grid;gap:16px}.practitioner-logo-card{align-items:center;display:grid;gap:22px;grid-template-columns:132px minmax(0,1fr);padding:22px}.practitioner-logo-card__preview{align-items:center;background:#fff;border:1px solid #d8cfd9;border-radius:16px;box-shadow:0 9px 22px rgba(55,43,60,.12);display:flex;height:120px;justify-content:center;overflow:hidden;padding:12px;width:120px}.practitioner-logo-card__preview img{height:100%;object-fit:contain;width:100%}.practitioner-logo-card__preview span{color:#5f4968;font-family:Georgia,serif;font-size:var(--font-size-body, 2rem);font-weight:var(--font-weight-label, 900)}.practitioner-logo-card__copy>span{color:#6d5a74;font-size:var(--font-size-table, .7rem);font-weight:var(--font-weight-label, 900);letter-spacing:.08em;text-transform:uppercase}.practitioner-logo-card__copy h2{margin:3px 0 5px}.practitioner-logo-card__copy p{color:#716975;font-size:var(--font-size-table, .82rem);margin:0 0 14px}.practitioner-logo-card form{align-items:center;display:flex;flex-wrap:wrap;gap:9px}.practitioner-logo-upload{cursor:pointer}.practitioner-logo-upload input{height:1px;overflow:hidden;position:absolute;width:1px}.practitioner-logo-upload span{background:#f3edf5;border:1px solid #cdbfd2;border-radius:9px;color:#55405e;display:block;font-size:var(--font-size-table, .8rem);font-weight:var(--font-weight-label, 850);padding:10px 13px}
.questionnaire-practitioner-logo{align-items:center;display:grid;gap:16px;grid-template-columns:66px minmax(0,1fr) auto;padding:15px 17px}.questionnaire-practitioner-logo__preview{align-items:center;background:#fff;border:1px solid #d6ccd8;border-radius:12px;box-shadow:0 6px 15px rgba(55,43,60,.1);display:flex;height:58px;justify-content:center;overflow:hidden;padding:6px;width:58px}.questionnaire-practitioner-logo__preview img{height:100%;object-fit:contain;width:100%}.questionnaire-practitioner-logo__preview span{color:#5f4968;font-family:Georgia,serif;font-size:var(--font-size-body, 1.35rem);font-weight:var(--font-weight-label, 900)}.questionnaire-practitioner-logo__copy small{color:#6d5a74;font-size:var(--font-size-help, .67rem);font-weight:var(--font-weight-label, 900);letter-spacing:.08em;text-transform:uppercase}.questionnaire-practitioner-logo__copy h2{font-size:var(--font-size-section-title, 1.03rem);margin:1px 0 2px}.questionnaire-practitioner-logo__copy p{color:#716975;font-size:var(--font-size-table, .76rem);margin:0}.questionnaire-practitioner-logo form{align-items:center;display:flex;gap:8px}
.questionnaire-builder__settings{grid-template-columns:minmax(220px,1fr) minmax(180px,.42fr) minmax(230px,.65fr) auto}.questionnaire-builder__description{grid-column:auto}.questionnaire-orientation{border:0;margin:0;min-width:0;padding:0}.questionnaire-orientation legend{color:#574e5b;font-size:var(--font-size-label, .72rem);font-weight:var(--font-weight-label, 850);margin-bottom:5px}.questionnaire-orientation>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.questionnaire-orientation button{background:#fff;border:1px solid #cec3d1;color:#5b505f;cursor:pointer;font:inherit;font-size:var(--font-size-control, .78rem);font-weight:var(--font-weight-label, 850);min-height:41px;padding:8px 11px}.questionnaire-orientation button:first-child{border-radius:9px 0 0 9px}.questionnaire-orientation button:last-child{border-left:0;border-radius:0 9px 9px 0}.questionnaire-orientation button.is-active{background:#654c70;border-color:#654c70;color:#fff}.questionnaire-builder__layout{grid-template-columns:250px minmax(0,1fr)}.questionnaire-field-library{max-height:calc(100vh - 30px);overflow:auto}.questionnaire-field-library [data-questionnaire-library]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.questionnaire-field-library button{text-align:left}.questionnaire-paper-stage{background:#e9e5e0;border:1px solid #d6d0ca;border-radius:14px;box-shadow:inset 0 2px 10px rgba(54,46,40,.08);min-width:0;overflow:auto;padding:24px}.questionnaire-a3-paper{background:#fff;border:1px solid #d8d1ca;box-shadow:0 16px 38px rgba(52,43,38,.16);margin:0 auto;transition:width .28s ease,min-height .28s ease;width:794px}.questionnaire-a3-paper--portrait{min-height:1123px;width:794px}.questionnaire-a3-paper--landscape{min-height:794px;width:1123px}.questionnaire-a3-paper__header{align-items:center;background:#f5f1eb;border-bottom:1px solid #ded6cd;display:grid;gap:15px;grid-template-columns:62px minmax(0,1fr) auto;padding:22px 25px}.questionnaire-a3-paper__logo{align-items:center;background:#3e705c;border:4px solid #fff;border-radius:13px;box-shadow:0 6px 14px rgba(44,84,67,.2);color:#fff;display:flex;font-family:Georgia,serif;font-size:1.4rem;font-weight:900;height:58px;justify-content:center;overflow:hidden;padding:4px;width:58px}.questionnaire-a3-paper__logo:has(img){background:#fff}.questionnaire-a3-paper__header small{color:#557365;font-size:.68rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.questionnaire-a3-paper__header h2{font-family:Georgia,serif;font-size:1.42rem;margin:2px 0}.questionnaire-a3-paper__header p{color:#706970;font-size:.76rem;margin:0}.questionnaire-a3-paper__format{background:#e6efe9;border:1px solid #bad0c4;border-radius:7px;color:#365f4f;font-size:.7rem;font-weight:900;padding:6px 8px;white-space:nowrap}.questionnaire-a3-paper .questionnaire-builder__composition{padding:22px 25px}.questionnaire-a3-paper .questionnaire-item-card{border-left-width:3px;box-shadow:0 3px 9px rgba(48,38,52,.06)}.questionnaire-a3-paper .questionnaire-item-card__fields{background:#fff}.client-questionnaire-document__brand:has(img){background:#fff;overflow:hidden;padding:5px}
@media(max-width:1150px){.questionnaire-builder__settings{grid-template-columns:repeat(2,minmax(0,1fr))}.questionnaire-builder__layout{grid-template-columns:minmax(0,1fr)}.questionnaire-field-library{max-height:calc(100vh - 24px);position:sticky;top:12px}.questionnaire-field-library [data-questionnaire-library]{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:720px){.practitioner-logo-card{grid-template-columns:minmax(0,1fr)}.questionnaire-practitioner-logo{grid-template-columns:58px minmax(0,1fr)}.questionnaire-practitioner-logo form{align-items:stretch;display:grid;grid-column:1/-1}.questionnaire-builder__settings{grid-template-columns:minmax(0,1fr)}.questionnaire-field-library{max-height:none;position:static}.questionnaire-field-library [data-questionnaire-library]{grid-template-columns:repeat(2,minmax(0,1fr))}.questionnaire-paper-stage{padding:10px}.questionnaire-a3-paper__header{align-items:start;grid-template-columns:54px minmax(0,1fr)}.questionnaire-a3-paper__format{grid-column:2}.questionnaire-a3-paper__logo{height:50px;width:50px}}

/* Ciblage d'une espèce sur un modèle de questionnaire. */
.questionnaire-builder__settings{align-items:start;grid-template-columns:minmax(220px,1fr) minmax(150px,.32fr) minmax(180px,.4fr) minmax(210px,.5fr)}
.questionnaire-builder__model-name{grid-column:1}.questionnaire-builder__client-type{grid-column:2}.questionnaire-builder__practice{grid-column:3}.questionnaire-builder__species{grid-column:4}.questionnaire-builder__species small{color:#756d78;font-size:var(--font-size-caption, .66rem);font-weight:var(--font-weight-label, 600);line-height:1.35;margin-top:1px}.questionnaire-builder__species small a{color:#654c70;font-weight:var(--font-weight-label, 850);text-decoration:none}.questionnaire-builder__species small a:hover,.questionnaire-builder__species small a:focus-visible{color:#3f705d}.questionnaire-builder__description{grid-column:1/4}.questionnaire-builder__description textarea{background:#fff;border:1px solid #cec3d1;border-radius:9px;box-shadow:0 2px 7px rgba(45,35,49,.05) inset;box-sizing:border-box;color:#38313b;font:inherit;line-height:1.4;min-height:72px;min-width:0;padding:9px 11px;resize:vertical;width:100%}.questionnaire-builder__description textarea:focus{border-color:#6d5277;box-shadow:0 0 0 3px rgba(109,82,119,.14);outline:0}.questionnaire-builder__save-status{align-self:end;grid-column:1/-1;justify-self:end}
.questionnaire-builder__save-status{align-items:center;background:transparent;border:0;border-radius:0;color:#4c6f60;display:inline-flex;font-size:var(--font-size-control, .7rem);font-weight:var(--font-weight-label, 750);gap:6px;padding:0;white-space:nowrap}.questionnaire-builder__save-status::before{background:#4f846c;border-radius:50%;content:"";height:7px;width:7px}.questionnaire-builder__save-status.is-pending{background:transparent;border:0;color:#80631f}.questionnaire-builder__save-status.is-pending::before{background:#d29a27}.questionnaire-builder__save-status.is-error{background:transparent;border:0;color:#97413d}.questionnaire-builder__save-status.is-error::before{background:#b84f49}
@media(max-width:1150px){.questionnaire-builder__description{grid-column:1/-1}.questionnaire-builder__save-status{grid-column:1/-1;grid-row:auto;justify-self:start}}
@media(max-width:720px){.questionnaire-builder__settings{grid-template-columns:minmax(0,1fr)}.questionnaire-builder__model-name,.questionnaire-builder__client-type,.questionnaire-builder__practice,.questionnaire-builder__species,.questionnaire-builder__description,.questionnaire-builder__save-status{grid-column:auto}.questionnaire-builder__save-status{grid-row:auto;justify-self:start}}


.questionnaire-builder__settings select{box-sizing:border-box;max-width:100%;width:fit-content}
@container questionnaire-builder (max-width:52rem){
  .questionnaire-builder__settings{grid-template-columns:repeat(2,minmax(0,1fr))}
  .questionnaire-builder__model-name,.questionnaire-builder__client-type,.questionnaire-builder__practice,.questionnaire-builder__species{grid-column:auto}
  .questionnaire-builder__description{grid-column:1/-1}
}
@container questionnaire-builder (max-width:30rem){
  .questionnaire-builder__settings{grid-template-columns:minmax(0,1fr)}
}

/* Profil du praticien. */
.practitioner-profile-page{display:grid;gap:16px}.practitioner-profile-hero{align-items:center;display:flex;gap:18px;padding:22px 25px}.practitioner-profile-hero__photo{align-items:center;background:#fff;border:4px solid #fff;border-radius:17px;box-shadow:0 7px 18px rgba(44,58,51,.17);color:#426557;display:flex;font-family:Georgia,serif;font-size:1.55rem;font-weight:900;height:72px;justify-content:center;overflow:hidden;width:72px}.practitioner-profile-hero__photo img{height:100%;object-fit:cover;width:100%}.practitioner-profile-hero h1{margin:6px 0 3px}.practitioner-profile-hero p{color:#696369;margin:0}.practitioner-profile-grid{align-items:start;display:grid;gap:16px;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr)}.practitioner-profile-media{display:grid;gap:16px}.practitioner-profile-card{padding:18px}.practitioner-profile-card>header{align-items:center;border-bottom:1px solid #e0d8e1;display:flex;gap:11px;margin-bottom:15px;padding-bottom:12px}.practitioner-profile-card>header>span{align-items:center;background:#654c70;border-radius:7px;color:#fff;display:flex;font-size:var(--font-size-caption, .7rem);font-weight:var(--font-weight-label, 900);height:31px;justify-content:center;min-width:35px}.practitioner-profile-card>header small{color:#746879;font-size:var(--font-size-help, .67rem);font-weight:var(--font-weight-label, 900);letter-spacing:.08em;text-transform:uppercase}.practitioner-profile-card>header h2{font-size:var(--font-size-card-title, 1.06rem);margin:1px 0 0}.practitioner-profile-fields{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.practitioner-profile-fields label{color:#5c525f;display:grid;font-size:var(--font-size-label, .74rem);font-weight:var(--font-weight-label, 850);gap:5px;min-width:0}.practitioner-profile-fields label.is-wide{grid-column:1/-1}.practitioner-profile-fields input{background:#fff;border:1px solid #cec4d0;border-radius:9px;box-shadow:inset 0 2px 6px rgba(48,38,52,.05);color:#373039;font:inherit;min-height:43px;min-width:0;padding:9px 11px;width:100%}.practitioner-profile-fields input:focus{border-color:#6d5277;box-shadow:0 0 0 3px rgba(109,82,119,.14);outline:0}.practitioner-profile-card footer{display:flex;justify-content:flex-end;margin-top:15px}.practitioner-profile-media__preview{align-items:center;background:#fff;border:1px solid #d5ccd7;border-radius:14px;box-shadow:0 7px 17px rgba(55,43,60,.1);display:flex;height:104px;justify-content:center;margin:0 auto 13px;overflow:hidden;padding:9px;width:142px}.practitioner-profile-media__preview--photo{border-radius:50%;height:112px;padding:0;width:112px}.practitioner-profile-media__preview img{height:100%;object-fit:contain;width:100%}.practitioner-profile-media__preview--photo img{object-fit:cover}.practitioner-profile-media__preview span{color:#604a69;font-family:Georgia,serif;font-size:var(--font-size-body, 1.8rem);font-weight:var(--font-weight-label, 900)}.practitioner-profile-card>p{color:#706872;font-size:var(--font-size-table, .76rem);line-height:1.45;text-align:center}.practitioner-profile-card>form:not(:first-of-type),.practitioner-profile-media .practitioner-profile-card>form{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
@media(max-width:1300px){.practitioner-profile-grid{grid-template-columns:minmax(0,1fr)}.practitioner-profile-media{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.practitioner-profile-hero{align-items:flex-start}.practitioner-profile-fields,.practitioner-profile-media{grid-template-columns:minmax(0,1fr)}.practitioner-profile-fields label.is-wide{grid-column:auto}.practitioner-profile-media .practitioner-profile-card>form{align-items:stretch;display:grid}}
.practitioner-profile-fields select{appearance:none;background:#fff;border:1px solid #cec4d0;border-radius:9px;color:#373039;font:inherit;min-height:43px;min-width:0;padding:9px 34px 9px 11px;width:100%}.practitioner-profile-fields select:focus{border-color:#6d5277;box-shadow:0 0 0 3px rgba(109,82,119,.14);outline:0}
.practitioner-profile-fields > .field > .btn{margin-top:var(--ui-space-3,12px)}
.practitioner-opening-hours__slot--invalid{background:#fff4f5;border:1px solid #d8344a;border-radius:9px;padding:7px}.practitioner-opening-hours__slot--invalid input[aria-invalid="true"]{border-color:#c31935;box-shadow:0 0 0 2px rgb(195 25 53/.12)}.practitioner-opening-hours__error{color:#b31530;font-size:var(--font-size-help,.72rem);font-weight:var(--font-weight-label,750);grid-column:1/-1;line-height:1.4}
.practitioner-profile-fields textarea{background:#fff;border:1px solid #cec4d0;border-radius:9px;color:#373039;font:inherit;line-height:1.45;min-height:116px;min-width:0;padding:10px 11px;resize:vertical;width:100%}.practitioner-profile-fields textarea:focus{border-color:#6d5277;box-shadow:0 0 0 3px rgba(109,82,119,.14);outline:0}.practitioner-directory-description small{color:#706872;font-size:var(--font-size-help, .72rem);font-weight:var(--font-weight-label, 650);line-height:1.35}
.practitioner-opening-hours-card{margin-top:16px}.practitioner-opening-hours-card__intro{color:#625b64;font-size:var(--font-size-table, .86rem);line-height:1.5;margin:0 0 16px;max-width:760px;text-align:left}.practitioner-opening-hours__holiday{align-items:center;background:#f4f0f6;border:1px solid #ddd1e1;border-radius:10px;cursor:pointer;display:flex;gap:10px;margin:0 0 15px;padding:11px 13px}.practitioner-opening-hours__holiday input{accent-color:#654c70;height:18px;width:18px}.practitioner-opening-hours__holiday span{display:grid;gap:2px}.practitioner-opening-hours__holiday strong{color:#47394c;font-size:var(--font-size-table, .86rem)}.practitioner-opening-hours__holiday small{color:#716777;font-size:var(--font-size-help, .76rem)}.practitioner-opening-hours__safety{align-items:center;background:#f8f5f8;border:1px solid #ddd1e1;border-radius:10px;display:grid;gap:11px;grid-template-columns:minmax(0,1fr) 78px auto;margin:0 0 15px;padding:11px 13px}.practitioner-opening-hours__safety>span{display:grid;gap:2px;min-width:0}.practitioner-opening-hours__safety strong{color:#47394c;font-size:var(--font-size-table, .86rem)}.practitioner-opening-hours__safety small{color:#716777;font-size:var(--font-size-help, .76rem);line-height:1.35}.practitioner-opening-hours__safety input{background:#fff;border:1px solid #d3c9d6;border-radius:7px;color:#413744;font:inherit;min-height:38px;min-width:0;padding:5px 7px;text-align:center;width:100%}.practitioner-opening-hours__safety b{color:#625b64;font-size:var(--font-size-table, .78rem)}.practitioner-opening-hours__days{display:grid;gap:9px;grid-template-columns:repeat(2,minmax(0,1fr))}.practitioner-opening-hours__day{background:#fcfbfc;border:1px solid #e2dce4;border-radius:10px;padding:11px}.practitioner-opening-hours__day-heading{align-items:center;color:#4f4255;display:flex;justify-content:space-between;margin:0 0 8px}.practitioner-opening-hours__day-heading strong{font-size:var(--font-size-body, .88rem)}.practitioner-opening-hours__day-heading span{background:#ece7ee;border-radius:999px;color:#706573;font-size:var(--font-size-caption, .68rem);font-weight:var(--font-weight-label, 800);padding:4px 7px}.practitioner-opening-hours__slots{display:grid;gap:7px}.practitioner-opening-hours__slot{align-items:end;display:grid;gap:7px;grid-template-columns:1fr 1fr 31px}.practitioner-opening-hours__slot label{color:#706573;display:grid;font-size:var(--font-size-label, .67rem);font-weight:var(--font-weight-label, 750);gap:3px}.practitioner-opening-hours__slot input{background:#fff;border:1px solid #d3c9d6;border-radius:7px;color:#413744;font:inherit;min-height:36px;padding:5px 7px;width:100%}.practitioner-opening-hours__remove{background:#fff;border:1px solid #e0bac0;border-radius:7px;color:#ae4251;cursor:pointer;font-size:var(--font-size-body, 1.25rem);height:36px;line-height:1;padding:0}.practitioner-opening-hours__remove:hover,.practitioner-opening-hours__remove:focus-visible{background:#fcedef;border-color:#bd5360;outline:0}.practitioner-opening-hours__add{font-size:var(--font-size-control, .76rem);margin-top:9px;padding:6px 9px}.practitioner-opening-hours-card footer{border-top:1px solid #e4dce6;margin-top:16px;padding-top:14px}@media(max-width:760px){.practitioner-opening-hours__days{grid-template-columns:1fr}}@media(max-width:520px){.practitioner-opening-hours__safety{align-items:start;grid-template-columns:minmax(0,1fr) auto}.practitioner-opening-hours__safety input{grid-column:1/2}.practitioner-opening-hours__safety b{align-self:center;grid-column:2}.practitioner-opening-hours__slot{grid-template-columns:1fr 1fr 29px}.practitioner-opening-hours__slot input{font-size:var(--font-size-input, .78rem)}}
.practitioner-opening-hours__safety--select{grid-template-columns:minmax(0,1fr) minmax(160px,220px)}.practitioner-opening-hours__safety select{background:#fff;border:1px solid #d3c9d6;border-radius:7px;color:#413744;font:inherit;min-height:38px;min-width:0;padding:5px 28px 5px 9px;width:100%}.practitioner-opening-hours__safety select:focus{border-color:#6d5277;box-shadow:0 0 0 3px rgba(109,82,119,.14);outline:0}@media(max-width:520px){.practitioner-opening-hours__safety--select{grid-template-columns:minmax(0,1fr)}.practitioner-opening-hours__safety select{grid-column:1}}
.practitioner-profile-media .practitioner-opening-hours-card{margin-top:0}.practitioner-profile-media .practitioner-opening-hours-card__intro{font-size:var(--font-size-table, .76rem);margin-bottom:11px}.practitioner-profile-media .practitioner-opening-hours__holiday{margin-bottom:10px;padding:8px 9px}.practitioner-profile-media .practitioner-opening-hours__holiday small{font-size:var(--font-size-help, .68rem)}.practitioner-profile-media .practitioner-opening-hours__days{gap:6px;grid-template-columns:1fr}.practitioner-profile-media .practitioner-opening-hours__day{align-items:start;display:grid;gap:7px;grid-template-columns:72px minmax(0,1fr) auto;padding:8px}.practitioner-profile-media .practitioner-opening-hours__day-heading{align-items:flex-start;display:grid;gap:3px;margin:0}.practitioner-profile-media .practitioner-opening-hours__day-heading strong{font-size:var(--font-size-table, .76rem)}.practitioner-profile-media .practitioner-opening-hours__day-heading span{font-size:var(--font-size-caption, .59rem);padding:3px 5px;width:max-content}.practitioner-profile-media .practitioner-opening-hours__slots{gap:5px}.practitioner-profile-media .practitioner-opening-hours__slot{gap:4px;grid-template-columns:1fr 1fr 26px}.practitioner-profile-media .practitioner-opening-hours__slot label{font-size:var(--font-size-label, .58rem)}.practitioner-profile-media .practitioner-opening-hours__slot input{font-size:var(--font-size-input, .72rem);min-height:31px;padding:4px}.practitioner-profile-media .practitioner-opening-hours__remove{font-size:var(--font-size-body, 1.05rem);height:31px}.practitioner-profile-media .practitioner-opening-hours__add{align-self:center;font-size:var(--font-size-control, .66rem);margin:0;padding:5px 6px;white-space:nowrap}.practitioner-profile-media .practitioner-opening-hours-card footer{margin-top:11px;padding-top:10px}.practitioner-profile-media .practitioner-opening-hours-card footer .btn{font-size:var(--font-size-control, .78rem);padding:var(--ui-space-2, 8px) 10px}@media(max-width:1300px){.practitioner-profile-media .practitioner-opening-hours__day{grid-template-columns:84px minmax(0,1fr) auto}}@media(max-width:500px){.practitioner-profile-media .practitioner-opening-hours__day{grid-template-columns:1fr}.practitioner-profile-media .practitioner-opening-hours__day-heading{align-items:center;display:flex}.practitioner-profile-media .practitioner-opening-hours__add{justify-self:start}}
.practitioner-opening-hours-card{margin-top:0}.practitioner-opening-hours-card__intro{font-size:var(--font-size-table, .78rem);margin-bottom:11px}.practitioner-opening-hours-card .practitioner-opening-hours__holiday{margin-bottom:10px;padding:8px 10px}.practitioner-opening-hours-card .practitioner-opening-hours__holiday small{font-size:var(--font-size-help, .69rem)}.practitioner-opening-hours-card .practitioner-opening-hours__days{gap:7px;grid-template-columns:repeat(2,minmax(0,1fr))}.practitioner-opening-hours-card .practitioner-opening-hours__day{align-items:start;display:grid;gap:7px;grid-template-columns:72px minmax(0,1fr) auto;padding:8px}.practitioner-opening-hours-card .practitioner-opening-hours__day-heading{align-items:flex-start;display:grid;gap:3px;margin:0}.practitioner-opening-hours-card .practitioner-opening-hours__day-heading strong{font-size:var(--font-size-table, .77rem)}.practitioner-opening-hours-card .practitioner-opening-hours__day-heading span{font-size:var(--font-size-caption, .6rem);padding:3px 5px;width:max-content}.practitioner-opening-hours-card .practitioner-opening-hours__slots{gap:5px}.practitioner-opening-hours-card .practitioner-opening-hours__slot{gap:4px;grid-template-columns:1fr 1fr 26px}.practitioner-opening-hours-card .practitioner-opening-hours__slot label{font-size:var(--font-size-label, .6rem)}.practitioner-opening-hours-card .practitioner-opening-hours__slot input{font-size:var(--font-size-input, .74rem);min-height:32px;padding:4px}.practitioner-opening-hours-card .practitioner-opening-hours__remove{font-size:var(--font-size-body, 1.05rem);height:32px}.practitioner-opening-hours-card .practitioner-opening-hours__add{align-self:center;font-size:var(--font-size-control, .67rem);margin:0;padding:5px 7px;white-space:nowrap}.practitioner-opening-hours-card footer{margin-top:11px;padding-top:10px}.practitioner-opening-hours-card footer .btn{font-size:var(--font-size-control, .8rem);padding:var(--ui-space-2, 8px) 11px}@media(max-width:760px){.practitioner-opening-hours-card .practitioner-opening-hours__days{grid-template-columns:1fr}}@media(max-width:500px){.practitioner-opening-hours-card .practitioner-opening-hours__day{grid-template-columns:1fr}.practitioner-opening-hours-card .practitioner-opening-hours__day-heading{align-items:center;display:flex}.practitioner-opening-hours-card .practitioner-opening-hours__add{justify-self:start}}
.practitioner-opening-hours-card .practitioner-opening-hours__day{grid-template-columns:72px minmax(0,1fr)}.practitioner-opening-hours-card .practitioner-opening-hours__slots{min-width:0}.practitioner-opening-hours-card .practitioner-opening-hours__slot{min-width:0}.practitioner-opening-hours-card .practitioner-opening-hours__slot label{min-width:0}.practitioner-opening-hours-card .practitioner-opening-hours__slot input{box-sizing:border-box;min-width:0}.practitioner-opening-hours-card .practitioner-opening-hours__add{grid-column:2;justify-self:start}@media(max-width:680px){.practitioner-opening-hours-card .practitioner-opening-hours__day{grid-template-columns:minmax(0,1fr)}.practitioner-opening-hours-card .practitioner-opening-hours__add{grid-column:1}}
.scheduling-rules-page .practitioner-opening-hours-card { container-type: inline-size; }
.scheduling-rules-page .practitioner-opening-hours__settings { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ui-space-4); }
.scheduling-rules-page .practitioner-opening-hours__section-header { margin-top: var(--ui-space-6); }
.scheduling-rules-page .practitioner-opening-hours__settings > :is(label, fieldset) { box-sizing: border-box; min-width: 0; min-height: 9rem; margin: 0; padding: var(--ui-space-4); border: 1px solid var(--color-border); border-top: 4px solid var(--color-secondary-strong); border-radius: var(--ui-radius-card); background: var(--color-surface); box-shadow: var(--ui-shadow-card-crisp); }
.scheduling-rules-page .practitioner-opening-hours__settings strong { color: var(--color-primary-deep); font-size: var(--font-size-body); line-height: var(--line-height-title); }
.scheduling-rules-page .practitioner-opening-hours__settings small { color: var(--color-text-soft); font-size: var(--font-size-help); line-height: 1.4; }
.scheduling-rules-page .practitioner-opening-hours__settings .practitioner-opening-hours__holiday { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-content: start; align-items: start; gap: var(--ui-space-3); }
.scheduling-rules-page .practitioner-opening-hours__settings .practitioner-opening-hours__holiday span { grid-column: 1; grid-row: 1; min-width: 0; }
.scheduling-rules-page .practitioner-opening-hours__settings .practitioner-opening-hours__holiday input { grid-column: 2; grid-row: 1; width: 1.3rem; height: 1.3rem; accent-color: var(--color-secondary-strong); }
.scheduling-rules-page .practitioner-opening-hours__settings .practitioner-cabinet-settings > .practitioner-opening-hours__holiday { min-height: 0; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
.scheduling-rules-page .practitioner-opening-hours__settings .practitioner-cabinet-settings:has([data-cabinet-enabled]:checked) { grid-column: 1 / -1; }
.scheduling-rules-page .practitioner-cabinet-settings__address:not([hidden]) { margin-top: var(--ui-space-4); }
.scheduling-rules-page .practitioner-opening-hours__settings .practitioner-opening-hours__safety { display: flex; flex-wrap: wrap; align-content: space-between; align-items: center; justify-content: flex-start; gap: var(--ui-space-3); }
.scheduling-rules-page .practitioner-opening-hours__settings .practitioner-opening-hours__safety > span { flex: 0 0 100%; min-width: 0; max-width: 100%; }
.scheduling-rules-page .practitioner-opening-hours__settings .practitioner-opening-hours__safety input { flex: 0 1 5rem; width: 5rem; max-width: 100%; box-sizing: border-box; }
.scheduling-rules-page .practitioner-opening-hours__settings .practitioner-opening-hours__safety select { flex: 0 1 13rem; width: 13rem; max-width: 100%; box-sizing: border-box; }
@container (max-width: 780px) { .scheduling-rules-page .practitioner-opening-hours__settings { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container (max-width: 440px) { .scheduling-rules-page .practitioner-opening-hours__settings { grid-template-columns: minmax(0, 1fr); } .scheduling-rules-page .practitioner-opening-hours__settings > :is(label, fieldset) { min-height: 0; } }
.scheduling-rules-page .practitioner-opening-hours__days { gap: var(--ui-space-5); margin-top: var(--ui-space-5); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.scheduling-rules-page .practitioner-opening-hours__day { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto auto; align-self: start; gap: 0; min-width: 0; padding: 0; border: 1px solid var(--color-border); border-top: 4px solid var(--color-secondary-strong); border-radius: var(--ui-radius-card); background: var(--color-surface); box-shadow: var(--ui-shadow-card-crisp); }
.scheduling-rules-page .practitioner-opening-hours__day:not(:has(.practitioner-opening-hours__slot)) { border-top-color: var(--color-secondary-muted); }
.scheduling-rules-page .practitioner-opening-hours__day-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--ui-space-2); margin: 0; padding: var(--ui-space-4) var(--ui-space-5); border-bottom: 1px solid var(--color-border); color: var(--color-primary-deep); }
.scheduling-rules-page .practitioner-opening-hours__day-heading strong { font-size: var(--font-size-card-title); line-height: var(--line-height-title); }
.scheduling-rules-page .practitioner-opening-hours__day-heading span { width: auto; padding: var(--ui-space-1) var(--ui-space-2); border: 1px solid var(--color-secondary-muted); border-radius: var(--ui-radius-badge); background: var(--color-secondary-faint); color: var(--color-secondary-deep); font-size: var(--font-size-help); }
.scheduling-rules-page .practitioner-opening-hours__day:not(:has(.practitioner-opening-hours__slot)) .practitioner-opening-hours__day-heading span { border-color: var(--color-border); background: var(--color-surface-muted); color: var(--color-text-soft); }
.scheduling-rules-page .practitioner-opening-hours__slots { display: grid; gap: var(--ui-space-2); min-width: 0; padding: var(--ui-space-4) var(--ui-space-5); }
.scheduling-rules-page .practitioner-opening-hours__slots:not(:has(.practitioner-opening-hours__slot)) { display: none; }
.scheduling-rules-page .practitioner-opening-hours__slot { display: grid; grid-template-columns: repeat(2, minmax(0, 8rem)) auto; align-items: end; justify-content: start; gap: var(--ui-space-2); min-width: 0; padding: var(--ui-space-3); border: 1px solid var(--color-border); border-radius: var(--ui-radius-control); background: var(--color-primary-soft); }
.scheduling-rules-page .practitioner-opening-hours__slot label { display: grid; gap: var(--ui-space-1); min-width: 0; color: var(--color-primary-deep); font-size: var(--font-size-help); font-weight: var(--font-weight-label); }
.scheduling-rules-page .practitioner-opening-hours__slot input { box-sizing: border-box; width: 100%; max-width: 100%; min-height: 2.4rem; padding: var(--ui-space-1); border: 1px solid var(--color-border); border-radius: var(--ui-radius-field); background: var(--color-surface); color: var(--color-text); font-size: var(--font-size-body); }
.scheduling-rules-page .practitioner-opening-hours__slot input:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; }
.scheduling-rules-page .practitioner-opening-hours__remove { align-self: end; width: 2.4rem; height: 2.4rem; border: 1px solid var(--color-secondary-muted); border-radius: var(--ui-radius-field); background: var(--color-surface); color: var(--color-secondary-deep); }
.scheduling-rules-page .practitioner-opening-hours__remove:hover, .scheduling-rules-page .practitioner-opening-hours__remove:focus-visible { border-color: var(--color-secondary-deep); background: var(--color-secondary-soft); color: var(--color-secondary-deep); outline: 2px solid var(--color-focus); outline-offset: 2px; }
.scheduling-rules-page .practitioner-opening-hours__add { grid-column: 1; justify-self: start; margin: 0; padding: var(--ui-space-2) var(--ui-space-3); border: 1px solid var(--color-secondary-strong); border-radius: var(--ui-radius-control); background: var(--color-secondary-faint); color: var(--color-secondary-deep); font-size: var(--font-size-control); font-weight: var(--font-weight-label); }
.scheduling-rules-page .practitioner-opening-hours__add:hover, .scheduling-rules-page .practitioner-opening-hours__add:focus-visible { border-color: var(--color-secondary-deep); background: var(--color-secondary-soft); color: var(--color-secondary-deep); }
.scheduling-rules-page .practitioner-opening-hours__day-actions { display: flex; padding: var(--ui-space-3) var(--ui-space-5); border-top: 1px solid var(--color-border); border-radius: 0 0 var(--ui-radius-card) var(--ui-radius-card); background: var(--color-secondary-faint); }
.scheduling-rules-page .practitioner-opening-hours__day-actions .practitioner-opening-hours__add { width: max-content; max-width: 100%; }
@container (max-width: 780px) { .scheduling-rules-page .practitioner-opening-hours__days { grid-template-columns: minmax(0, 1fr); } }
@container (max-width: 400px) { .scheduling-rules-page .practitioner-opening-hours__slot { grid-template-columns: repeat(2, minmax(0, 1fr)) auto; padding: var(--ui-space-2); } .scheduling-rules-page .practitioner-opening-hours__day-heading, .scheduling-rules-page .practitioner-opening-hours__slots, .scheduling-rules-page .practitioner-opening-hours__day-actions { padding-inline: var(--ui-space-3); } }
.practitioner-home-address{position:relative}.practitioner-home-address>span{color:#706872;font-size:var(--font-size-table, .72rem);font-weight:var(--font-weight-label, 650);line-height:1.35}.practitioner-home-address__suggestions{background:#fff;border:1px solid #cec4d0;border-radius:9px;box-shadow:0 12px 24px rgba(48,38,52,.15);display:grid;gap:3px;left:0;max-height:190px;overflow:auto;padding:5px;position:absolute;right:0;top:100%;z-index:20}.practitioner-home-address__suggestions button{background:#fff;border:0;border-radius:6px;color:#373039;cursor:pointer;font:inherit;font-size:var(--font-size-control, .8rem);padding:8px;text-align:left}.practitioner-home-address__suggestions button:hover,.practitioner-home-address__suggestions button:focus-visible{background:#f0e9f2;outline:0}.practitioner-home-service-area{border:1px solid #d8cddd;border-radius:12px;display:grid;gap:12px;margin:0;padding:14px}.practitioner-home-service-area legend{color:#5c525f;font-size:var(--font-size-label, .76rem);font-weight:var(--font-weight-label, 900);padding:0 5px}.practitioner-home-service-area>p{color:#706872;font-size:var(--font-size-table, .76rem);line-height:1.45;margin:0}.practitioner-home-service-area>label{color:#5c525f;display:grid;font-size:var(--font-size-label, .74rem);font-weight:var(--font-weight-label, 850);gap:7px}.practitioner-home-service-area__radius{align-items:center;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto}.practitioner-home-service-area__radius input{accent-color:#654c70;box-shadow:none;min-height:auto;padding:0}.practitioner-home-service-area__radius output{background:#f0e9f2;border:1px solid #c8b8ce;border-radius:999px;color:#513d59;font-size:var(--font-size-table, .8rem);font-weight:var(--font-weight-label, 900);min-width:74px;padding:7px 9px;text-align:center}.practitioner-home-service-area__map{margin-top:0}
.practitioner-home-service-area .practitioner-home-service-area__map{background:#fbf7f9;border-color:#d9bdcb;border-radius:14px;box-shadow:0 8px 20px rgb(91 48 70/.09);padding:10px}.practitioner-home-service-area__map .availability-map__canvas{border:1px solid #ead9e1;border-radius:9px;touch-action:none}.practitioner-home-service-area__map .availability-map__radius{background:rgb(219 112 166/.28);border-color:#9b3f6d}.practitioner-home-service-area__map .availability-map__marker{cursor:grab;height:16px;width:16px}.practitioner-home-service-area__map .availability-map__marker::after{content:"";inset:-10px;position:absolute}.practitioner-home-service-area__map .availability-map__marker:active{cursor:grabbing}.practitioner-home-service-area__map .availability-map__controls{right:20px;top:20px}.practitioner-home-service-area__map .availability-map__controls button{background:#fff;border-color:#d5aabd;border-radius:10px;box-shadow:0 4px 10px rgb(91 48 70/.14);color:#7c3659;height:42px;width:42px}.practitioner-home-service-area__map .availability-map__controls button:hover,.practitioner-home-service-area__map .availability-map__controls button:focus-visible{background:#f7e5ee;border-color:#9b3f6d;color:#6b294b}.practitioner-home-service-area__map>p{color:#78646e;margin-top:8px}
.practitioner-default-service-area-card .availability-map__canvas{height:210px}@media(max-width:720px){.practitioner-default-service-area-card .availability-map__canvas{height:180px}}
.practitioner-service-area-columns{display:grid;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr))}.practitioner-service-area-columns>form{align-content:start;display:grid;gap:12px;min-width:0}.practitioner-service-area-columns>form>footer{margin-top:0}.practitioner-service-area-columns__actions{align-items:center;display:flex;flex-wrap:wrap;gap:9px}.practitioner-home-service-area--secondary{background:#fbf7f9;border-color:#d9bdcb}@media(max-width:1280px){.practitioner-service-area-columns{grid-template-columns:minmax(0,1fr)}}
.scheduling-rules-page .practitioner-service-area-columns{grid-template-columns:minmax(0,1fr)}
.practitioner-profile-fields>.practitioner-home-service-area{grid-column:span 1}.practitioner-directory-panel{align-content:start;border:1px solid #d8cddd;border-radius:12px;display:grid;gap:13px;margin:0;padding:14px}.practitioner-directory-panel__heading{border-bottom:1px solid #e4dce6;display:grid;gap:2px;padding-bottom:10px}.practitioner-directory-panel__heading small{color:#746879;font-size:var(--font-size-help, .67rem);font-weight:var(--font-weight-label, 900);letter-spacing:.08em}.practitioner-directory-panel__heading strong{color:#493d50;font-size:var(--font-size-card-title, .92rem)}.practitioner-directory-panel .practitioner-practices{grid-column:auto}.practitioner-directory-panel .practitioner-practices>div{grid-template-columns:1fr}.practitioner-directory-panel .practitioner-practices:last-of-type>div{grid-template-columns:repeat(2,minmax(0,1fr))}.practitioner-directory-panel .practitioner-directory-description{grid-column:auto}.practitioner-directory-panel>label{color:#5c525f;display:grid;font-size:var(--font-size-label, .74rem);font-weight:var(--font-weight-label, 850);gap:5px;min-width:0}.practitioner-directory-panel input,.practitioner-directory-panel textarea{background:#fff;border:1px solid #cec4d0;border-radius:9px;color:#373039;font:inherit;min-width:0;padding:9px 11px;width:100%}.practitioner-directory-panel input{min-height:43px}.practitioner-directory-panel textarea{min-height:116px}.practitioner-directory-panel input:focus,.practitioner-directory-panel textarea:focus{border-color:#6d5277;box-shadow:0 0 0 3px rgba(109,82,119,.14);outline:0}@media(max-width:760px){.practitioner-profile-fields>.practitioner-home-service-area{grid-column:auto}.practitioner-directory-panel{grid-column:auto}.practitioner-directory-panel .practitioner-practices:last-of-type>div{grid-template-columns:repeat(2,minmax(0,1fr))}}
.practitioner-directory-gallery-card{min-width:0}.practitioner-directory-gallery__summary{display:grid;gap:4px;margin-bottom:13px;text-align:left}.practitioner-directory-gallery__summary strong{color:#493d50;font-size:var(--font-size-body, .9rem);font-weight:var(--font-weight-label, 800)}.practitioner-directory-gallery__summary span{color:#706872;font-size:var(--font-size-table, .76rem);line-height:1.45}.practitioner-directory-gallery{display:grid;gap:9px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:14px;min-width:0}.practitioner-directory-gallery__item{background:#f7f2f0;border:1px solid #ddd3db;border-radius:11px;display:grid;margin:0;min-width:0;overflow:visible;padding:5px;position:relative}.practitioner-directory-gallery__item img{aspect-ratio:4/3;border-radius:7px;display:block;height:auto;object-fit:cover;width:100%}.practitioner-directory-gallery__item form{display:flex;justify-content:center;margin:0;position:absolute;right:8px;top:8px}.practitioner-directory-gallery__delete{align-items:center;background:#fff;border:1px solid #d7cbd8;border-radius:999px;box-shadow:0 8px 16px rgba(55,43,60,.16);color:#8a3f3f;cursor:pointer;display:flex;font:inherit;font-size:var(--font-size-body, 1rem);font-weight:var(--font-weight-label, 850);height:28px;justify-content:center;line-height:1;min-height:28px;padding:0;width:28px}.practitioner-directory-gallery__delete:hover,.practitioner-directory-gallery__delete:focus-visible{background:#f7e8e6;color:#712f2f;outline:2px solid rgba(138,63,63,.24);outline-offset:2px}.practitioner-directory-gallery__empty,.practitioner-directory-gallery__limit{background:#f7f3f6;border:1px dashed #d8cddd;border-radius:10px;color:#706872;font-size:var(--font-size-table, .76rem);line-height:1.45;margin:0 0 13px;padding:12px;text-align:left!important}.practitioner-profile-media .practitioner-profile-card>.practitioner-directory-gallery__upload{align-items:start;display:grid;gap:9px;justify-content:start;margin-top:0;min-width:0}.practitioner-directory-gallery__upload .practitioner-logo-upload{justify-self:start;max-width:100%}.practitioner-directory-gallery__status{color:#706872;font-size:var(--font-size-caption, .72rem);line-height:1.4;max-width:100%}.practitioner-directory-gallery__status.is-error{color:#9b3434;font-weight:var(--font-weight-label, 750)}.practitioner-directory-gallery__status.is-saving{color:#55405e;font-weight:var(--font-weight-label, 750)}@media(max-width:1300px){.practitioner-directory-gallery-card{grid-column:1/-1}.practitioner-directory-gallery{grid-template-columns:repeat(6,minmax(0,1fr))}}@media(max-width:850px){.practitioner-directory-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:500px){.practitioner-directory-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.practitioner-profile-media .practitioner-profile-card>.practitioner-directory-gallery__upload{align-items:start;display:grid}}
.client-portal-practitioner-profile-hero{align-items:center}.client-portal-practitioner-profile-hero__media{align-items:center;display:flex;flex:0 0 auto;gap:10px}.client-portal-practitioner-profile-hero__photo{align-items:center;background:#fff;border:4px solid #fff;border-radius:17px;box-shadow:0 7px 18px rgb(var(--color-primary-rgb)/.16);color:var(--color-primary);display:flex;font-family:Georgia,serif;font-size:1.5rem;font-weight:900;height:78px;justify-content:center;overflow:hidden;width:78px}.client-portal-practitioner-profile-hero__photo img{height:100%;object-fit:cover;width:100%}.client-portal-practitioner-profile-hero__logo{align-items:center;background:#fff;border:1px solid var(--color-border);border-radius:12px;box-shadow:0 6px 14px rgb(var(--color-primary-rgb)/.08);display:flex;height:54px;justify-content:center;overflow:hidden;padding:6px;width:78px}.client-portal-practitioner-profile-hero__logo img{height:100%;object-fit:contain;width:100%}.client-portal-practitioner-profile-hero__description{color:var(--color-text-soft);line-height:1.55;margin:14px 0 0;max-width:760px}@media(max-width:640px){.client-portal-practitioner-profile-hero{align-items:flex-start}.client-portal-practitioner-profile-hero__media{gap:8px}.client-portal-practitioner-profile-hero__photo{height:62px;width:62px}.client-portal-practitioner-profile-hero__logo{height:46px;width:66px}}
.client-portal-practitioner-showcase{background:var(--color-surface);border:1px solid var(--color-border);border-radius:20px;box-shadow:var(--shadow-soft);display:grid;gap:24px;margin-bottom:18px;min-width:0;padding:24px}.client-portal-practitioner-showcase__identity{display:grid;gap:8px;justify-items:start;min-width:0;text-align:left}.client-portal-practitioner-showcase__heading{align-items:center;display:flex;gap:16px;min-width:0}.client-portal-practitioner-showcase__identity h1{color:var(--color-primary);margin:0;min-width:0}.client-portal-practitioner-showcase__logo{align-items:center;background:#fff;border:1px solid var(--color-border);border-radius:14px;box-shadow:0 6px 14px rgb(var(--color-primary-rgb)/.08);display:flex;flex:0 0 auto;height:72px;justify-content:center;max-width:180px;min-width:92px;padding:8px}.client-portal-practitioner-showcase__logo img{height:100%;max-width:100%;object-fit:contain;width:auto}.client-portal-practitioner-showcase__identity .client-portal-directory-card__practices{font-size:var(--font-size-table, .76rem);gap:6px;justify-content:flex-start;margin:2px 0 0}.client-portal-practitioner-showcase__identity .client-portal-directory-card__practices span{padding:4px 8px}.client-portal-practitioner-showcase__address{align-items:center;color:var(--color-text-soft);display:flex;font-size:var(--font-size-control, .78rem);gap:6px;line-height:1.4;margin:0;max-width:760px}.client-portal-practitioner-showcase__address svg{fill:currentColor;flex:0 0 auto;height:15px;width:15px}.client-portal-practitioner-showcase__gallery{align-items:stretch;display:grid;gap:16px;grid-template-columns:minmax(0,38fr) minmax(0,62fr);min-width:0}.client-portal-practitioner-showcase__primary-photo,.client-portal-practitioner-showcase__additional-photo{background:#f2eee8;border:1px solid var(--color-border);border-radius:16px;margin:0;min-width:0;overflow:hidden}.client-portal-practitioner-showcase__primary-photo{align-items:center;box-shadow:0 8px 20px rgb(var(--color-primary-rgb)/.12);color:var(--color-primary);display:flex;flex-direction:column;font-family:Georgia,serif;font-size:var(--font-size-body, 3rem);font-weight:var(--font-weight-label, 900);justify-content:center}.client-portal-practitioner-showcase__primary-photo small{color:var(--color-text-soft);font-family:inherit;font-size:var(--font-size-help, .78rem);font-weight:var(--font-weight-label, 700);margin-top:6px}.client-portal-practitioner-showcase__primary-photo img,.client-portal-practitioner-showcase__additional-photo img{display:block;height:100%;object-fit:cover;width:100%}.client-portal-practitioner-showcase__additional{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr));min-width:0}.client-portal-practitioner-showcase__additional-photo,.client-portal-practitioner-showcase__placeholder{aspect-ratio:1}.client-portal-practitioner-showcase__placeholder{align-items:center;background:#f7f3ef;border:1px dashed #d6cbc2;border-radius:14px;color:#9b8f86;display:flex;font-size:var(--font-size-table, .72rem);font-weight:var(--font-weight-label, 750);justify-content:center;min-width:0}.client-portal-practitioner-description{background:#f4eee9;border:1px solid #dfd0c6;border-radius:18px;margin-bottom:18px;padding:22px 24px}.client-portal-practitioner-description h2{color:var(--color-primary);margin:0 0 10px}.client-portal-practitioner-description p{color:var(--color-text-soft);line-height:1.65;margin:0;max-width:920px}@media(max-width:760px){.client-portal-practitioner-showcase{gap:20px;padding:18px}.client-portal-practitioner-showcase__gallery{grid-template-columns:minmax(0,1fr)}.client-portal-practitioner-showcase__primary-photo{aspect-ratio:1;justify-self:center;max-width:420px;width:100%}.client-portal-practitioner-showcase__additional{width:100%}.client-portal-practitioner-description{padding:18px}}@media(max-width:430px){.client-portal-practitioner-showcase{border-radius:16px;padding:15px}.client-portal-practitioner-showcase__heading{align-items:flex-start;gap:11px}.client-portal-practitioner-showcase__identity h1{font-size:var(--font-size-page-title, 1.45rem)}.client-portal-practitioner-showcase__logo{height:58px;max-width:130px;min-width:72px;padding:6px}.client-portal-practitioner-showcase__additional{gap:7px}.client-portal-practitioner-showcase__additional-photo,.client-portal-practitioner-showcase__placeholder{border-radius:10px}.client-portal-practitioner-description{border-radius:15px;padding:16px}}
.client-portal-practitioner-showcase__tabs{border-bottom:1px solid var(--color-border);display:flex;gap:28px;margin-top:2px;min-width:0;overflow-x:auto}.client-portal-practitioner-showcase__tabs button{background:transparent;border:0;color:var(--color-text-soft);cursor:pointer;font:inherit;font-size:var(--font-size-control, .92rem);font-weight:var(--font-weight-label, 700);min-height:46px;padding:4px 2px;position:relative;white-space:nowrap}.client-portal-practitioner-showcase__tabs button::after{background:transparent;border-radius:999px;bottom:-1px;content:"";height:3px;left:0;position:absolute;right:0}.client-portal-practitioner-showcase__tabs button:hover{color:var(--color-primary)}.client-portal-practitioner-showcase__tabs button[aria-selected="true"]{color:var(--color-primary);font-weight:var(--font-weight-label, 850)}.client-portal-practitioner-showcase__tabs button[aria-selected="true"]::after{background:var(--color-secondary)}.client-portal-practitioner-showcase__tabs button:focus-visible{outline:3px solid rgb(var(--color-secondary-rgb)/.28);outline-offset:3px}.client-portal-practitioner-showcase__tab-layout{display:grid;gap:28px;grid-template-columns:minmax(0,3fr) minmax(180px,1fr);min-width:0}.client-portal-practitioner-showcase__tab-layout[hidden]{display:none!important}.client-portal-practitioner-showcase__tab-main,.client-portal-practitioner-showcase__tab-aside{min-width:0}.client-portal-practitioner-showcase__tab-main h2{color:var(--color-primary);font-size:var(--font-size-section-title, 1.18rem);margin:0 0 14px}.client-portal-practitioner-showcase__description{color:var(--color-text-soft);line-height:1.65;margin:0}.client-portal-practitioner-showcase__empty{color:var(--color-text-soft);margin:0}.client-portal-practitioner-services{display:grid;gap:10px}.client-portal-practitioner-service{align-items:start;background:#faf8f5;border:1px solid var(--color-border);border-radius:13px;display:grid;gap:18px;grid-template-columns:minmax(0,1fr) auto;min-width:0;padding:15px 17px}.client-portal-practitioner-service h3{color:var(--color-primary);font-size:var(--font-size-card-title, .96rem);margin:0}.client-portal-practitioner-service p{color:var(--color-text-soft);font-size:var(--font-size-table, .82rem);line-height:1.5;margin:5px 0 0}.client-portal-practitioner-service>strong{color:var(--color-secondary-deep);font-size:var(--font-size-body, .96rem);white-space:nowrap}@media(max-width:760px){.client-portal-practitioner-showcase__tabs{gap:20px}.client-portal-practitioner-showcase__tab-layout{grid-template-columns:minmax(0,1fr)}.client-portal-practitioner-showcase__tab-aside{display:none}.client-portal-practitioner-service{gap:10px}}@media(max-width:430px){.client-portal-practitioner-showcase__tabs{gap:16px}.client-portal-practitioner-showcase__tabs button{font-size:var(--font-size-control, .82rem)}.client-portal-practitioner-service{grid-template-columns:minmax(0,1fr)}.client-portal-practitioner-service>strong{justify-self:start}}
.client-portal-practitioner-showcase__phone a{color:inherit;text-decoration:none}.client-portal-practitioner-showcase__phone a:hover,.client-portal-practitioner-showcase__phone a:focus-visible{color:var(--color-primary);outline:0}
.client-portal-practitioner-showcase__tab-layout--information{grid-template-columns:minmax(0,1fr)}.client-portal-practitioner-information-grid{display:grid;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:24px;min-width:0}.client-portal-practitioner-opening-hours,.client-portal-practitioner-service-area{background:#faf8f5;border:1px solid var(--color-border);border-radius:15px;min-width:0;padding:17px}.client-portal-practitioner-opening-hours h3,.client-portal-practitioner-service-area h3{color:var(--color-primary);font-size:var(--font-size-card-title, .96rem);margin:0 0 12px}.client-portal-practitioner-opening-hours table{border-collapse:collapse;font-size:var(--font-size-table, .8rem);width:100%}.client-portal-practitioner-opening-hours tr+tr{border-top:1px solid rgb(var(--color-primary-rgb)/.1)}.client-portal-practitioner-opening-hours th,.client-portal-practitioner-opening-hours td{padding:8px 4px;text-align:left;vertical-align:top}.client-portal-practitioner-opening-hours th{color:var(--color-text);font-weight:var(--font-weight-label, 600);width:42%}.client-portal-practitioner-opening-hours td{color:var(--color-primary);font-weight:var(--font-weight-body, 450)}.client-portal-practitioner-opening-hours td span{color:var(--color-text-soft);font-weight:var(--font-weight-body, 450)}.client-portal-practitioner-opening-hours td .client-portal-practitioner-opening-hours__slot{color:inherit;display:block;font-weight:inherit}.client-portal-practitioner-opening-hours__slot+.client-portal-practitioner-opening-hours__slot{margin-top:4px}.client-portal-practitioner-service-area__heading{align-items:start;display:flex;gap:12px;justify-content:space-between}.client-portal-practitioner-service-area__heading>span{background:rgb(var(--color-primary-rgb)/.08);border-radius:999px;color:var(--color-primary);font-size:var(--font-size-caption, .7rem);font-weight:var(--font-weight-label, 800);padding:5px 8px;white-space:nowrap}.client-portal-practitioner-service-area__map{margin:0}.client-portal-practitioner-service-area__map .availability-map__canvas{cursor:default;height:300px;touch-action:auto}.client-portal-practitioner-service-area__map .availability-map__radius{background:rgb(219 112 166/.28);border-color:#9b3f6d}@media(max-width:820px){.client-portal-practitioner-information-grid{grid-template-columns:minmax(0,1fr)}.client-portal-practitioner-service-area__map .availability-map__canvas{height:260px}}@media(max-width:430px){.client-portal-practitioner-opening-hours,.client-portal-practitioner-service-area{padding:14px}.client-portal-practitioner-service-area__heading{display:grid}.client-portal-practitioner-service-area__heading>span{justify-self:start}}
.client-portal-practitioner-information-grid--with-secondary-area{grid-template-columns:repeat(3,minmax(0,1fr))}.client-portal-practitioner-information-grid--with-secondary-area .client-portal-practitioner-service-area__map .availability-map__canvas{height:250px}.client-portal-practitioner-service-area--secondary{background:#fbf4f7;border-color:#e3c7d4}.client-portal-practitioner-service-area__notice{color:var(--color-text-soft);font-size:var(--font-size-help, .76rem);line-height:1.45;margin:-4px 0 12px}@media(max-width:1040px){.client-portal-practitioner-information-grid--with-secondary-area{grid-template-columns:repeat(2,minmax(0,1fr))}.client-portal-practitioner-information-grid--with-secondary-area .client-portal-practitioner-opening-hours{grid-column:1/-1}}@media(max-width:820px){.client-portal-practitioner-information-grid--with-secondary-area{grid-template-columns:minmax(0,1fr)}.client-portal-practitioner-information-grid--with-secondary-area .client-portal-practitioner-opening-hours{grid-column:auto}.client-portal-practitioner-information-grid--with-secondary-area .client-portal-practitioner-service-area__map .availability-map__canvas{height:260px}}
.client-portal-practitioner-service-area--sectors{grid-column:1/-1}.client-portal-practitioner-service-area__sectors{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr));gap:16px;margin:14px 0}.client-portal-practitioner-service-area__sector{background:#fff;border:1px solid var(--color-border);border-radius:14px;min-width:0;overflow:hidden;padding:12px}.client-portal-practitioner-service-area__sector .client-portal-practitioner-service-area__heading{align-items:center;margin-bottom:10px}.client-portal-practitioner-service-area__sector .client-portal-practitioner-service-area__heading strong{color:var(--color-primary)}.client-portal-practitioner-service-area--sectors .availability-map__radius{border-style:dashed}.client-portal-practitioner-service-area--sectors .client-portal-practitioner-service-area__notice{margin:12px 0 0}
.practitioner-practices{border:0;grid-column:1/-1;margin:0;min-width:0;padding:0}.practitioner-practices legend{color:#5c525f;font-size:var(--font-size-label, .76rem);font-weight:var(--font-weight-label, 900);padding:0}.practitioner-practices>p{color:#786f7b;font-size:var(--font-size-table, .71rem);margin:3px 0 8px}.practitioner-practices>div{display:grid;gap:7px;grid-template-columns:repeat(4,minmax(0,1fr))}.practitioner-practices>div label{display:block}.practitioner-practices input{height:1px;opacity:0;position:absolute;width:1px}.practitioner-practices label span{align-items:center;background:#f8f5f8;border:1px solid #d7ced9;border-radius:9px;color:#5b4d61;cursor:pointer;display:flex;font-size:var(--font-size-label, .75rem);font-weight:var(--font-weight-label, 850);justify-content:center;min-height:42px;padding:8px;text-align:center}.practitioner-practices label span:hover{background:#f0e9f2;border-color:#ad9ab4}.practitioner-practices input:focus+span{box-shadow:0 0 0 3px rgba(109,82,119,.14)}.practitioner-practices input:checked+span{background:#654c70;border-color:#654c70;color:#fff;box-shadow:0 5px 11px rgba(75,55,84,.18)}
@media(max-width:760px){.practitioner-practices>div{grid-template-columns:repeat(2,minmax(0,1fr))}}
.practitioner-logo-autosave{color:#756d78;font-size:var(--font-size-table, .68rem);line-height:1.3;text-align:center}.practitioner-logo-autosave.is-saving{color:#3f6d5a;font-weight:var(--font-weight-label, 850)}.practitioner-logo-autosave.is-error{color:#a72136;font-weight:var(--font-weight-label, 850)}

.animal-detail-hero__identity {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr);
  align-items: start;
  gap: 20px;
  padding: 32px 30px 28px;
}

.animal-detail-hero__portrait {
  position: relative;
  width: 72px;
  min-height: 86px;
}

.animal-detail-hero__photo {
  display: block;
  width: 72px;
  height: 86px;
  border: 3px solid var(--color-surface);
  border-radius: 20px 20px 20px 7px;
  background: var(--color-surface-muted);
  object-fit: contain;
  box-shadow:
    6px 6px 0 var(--color-secondary-soft),
    0 15px 26px rgb(var(--color-primary-rgb) / 0.18);
  transform: rotate(-2deg);
}

.animal-photo-form {
  position: absolute;
  right: -8px;
  bottom: -9px;
  z-index: 3;
}

.animal-photo-upload {
  position: relative;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 2px solid var(--color-surface);
  border-radius: 11px;
  background: var(--color-secondary);
  color: var(--color-surface);
  box-shadow: 0 8px 18px rgb(var(--color-secondary-rgb) / 0.28);
  cursor: pointer;
  transition:
    transform 0.24s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.24s ease;
}

.animal-photo-upload:hover {
  box-shadow: 0 11px 22px rgb(var(--color-secondary-rgb) / 0.34);
  transform: translateY(-2px) scale(1.04);
}

.animal-photo-upload:focus-within {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}

.animal-photo-upload svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.animal-photo-upload__input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}

.animal-photo-form[data-uploading="true"] .animal-photo-upload {
  opacity: 0.7;
  pointer-events: none;
}

.animal-detail-hero__monogram {
  position: relative;
  width: 72px;
  min-height: 86px;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 2px;
  border: 1px solid rgb(var(--color-white-rgb) / 0.24);
  border-radius: 20px 20px 20px 7px;
  background: var(--animal-species-color, var(--color-primary));
  color: var(--animal-species-contrast-color, var(--color-surface));
  box-shadow:
    6px 6px 0 var(--color-secondary-soft),
    0 15px 26px color-mix(
      in srgb,
      var(--animal-species-color, var(--color-primary)) 28%,
      transparent
    );
  transform: rotate(-2deg);
}

.animal-detail-hero__monogram::after {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 8px;
  height: 8px;
  border: 2px solid currentColor;
  border-radius: 50%;
  content: "";
  opacity: 0.72;
}

.animal-detail-hero__monogram strong {
  font-size: 2.2rem;
  line-height: 1;
}

.animal-detail-hero__monogram span {
  color: currentColor;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 0.76;
}

.animal-detail-hero__copy {
  min-width: 0;
}

.animal-detail-hero__copy h1 {
  margin-bottom: 8px;
  font-size: var(--font-size-page-title, clamp(2.2rem, 4vw, 3.4rem));
  letter-spacing: -0.045em;
  line-height: var(--line-height-title, 0.98);
}

.animal-detail-hero__title-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  margin: 7px 0 8px;
}

.animal-detail-hero__title-row h1 {
  min-width: 0;
  margin: 0;
}

.animal-detail-back {
  min-height: 42px;
  padding: 9px 15px;
  white-space: nowrap;
}

.animal-detail-hero__copy > p {
  max-width: 700px;
  margin-bottom: 0;
  color: var(--color-text-soft);
}

.animal-detail-tags {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 12px;
  margin-top: 22px;
}

.animal-detail-tag {
  position: relative;
  min-width: 132px;
  display: grid;
  gap: 2px;
  padding: 11px 16px 12px 19px;
  border: 1px solid rgb(var(--color-text-rgb) / 0.1);
  border-radius: 12px 12px 12px 4px;
  background: var(--color-surface);
  color: var(--color-text);
  box-shadow:
    0 8px 0 rgb(var(--color-text-rgb) / 0.045),
    0 13px 24px rgb(var(--color-text-rgb) / 0.09);
  transition:
    transform 0.34s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.34s ease;
}

.animal-detail-tag::before {
  position: absolute;
  inset: 8px auto 8px 7px;
  width: 4px;
  border-radius: 999px;
  background: var(--color-primary);
  content: "";
}

.animal-detail-tag small {
  color: var(--color-text-soft);
  font-size: var(--font-size-caption, 9px);
  font-weight: var(--font-weight-label, 800);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.animal-detail-tag strong {
  overflow: hidden;
  font-size: var(--font-size-caption, 14px);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.animal-detail-tag--species {
  transform: rotate(-0.7deg);
}

.animal-detail-tag--age {
  transform: rotate(0.3deg);
}

.animal-detail-tag--age::before {
  background: var(--color-secondary-strong);
}

.animal-detail-tag--breed {
  transform: rotate(0.55deg);
}

.animal-detail-tag--breed::before {
  background: var(--color-identity);
}

.animal-detail-tag--owner {
  min-width: 180px;
  transform: rotate(-0.35deg);
}

.animal-detail-tag--owner::before {
  background: var(--color-secondary);
}

.animal-detail-tag:hover {
  z-index: 1;
  box-shadow:
    0 5px 0 rgb(var(--color-text-rgb) / 0.05),
    0 16px 28px rgb(var(--color-primary-rgb) / 0.15);
  transform: translateY(-3px) rotate(0);
}

.animal-detail-actions {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 10px;
  margin: 0 30px 28px 126px;
  padding-top: 18px;
  border-top: 1px solid rgb(var(--color-primary-rgb) / 0.16);
}

.btn.animal-detail-action {
  flex: 0 0 auto;
  width: max-content;
  max-width: 100%;
  min-height: 50px;
  padding: var(--ui-space-3, 12px) var(--ui-space-4, 16px);
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
}

@media (max-width: 1300px) {
  .animal-detail-actions {
    justify-content: flex-start;
  }
}

@media (max-width: 1040px) {
  .animal-detail-actions {
    justify-content: flex-start;
  }
}

@media (max-width: 680px) {
  .animal-detail-hero__identity {
    grid-template-columns: 62px minmax(0, 1fr);
    gap: 16px;
    padding: 28px 20px 24px;
  }

  .animal-detail-hero__monogram {
    width: 58px;
    min-height: 72px;
    border-radius: 16px 16px 16px 6px;
    box-shadow:
      5px 5px 0 var(--color-secondary-soft),
      0 14px 24px rgb(var(--color-primary-rgb) / 0.2);
  }

  .animal-detail-hero__portrait {
    width: 58px;
    min-height: 72px;
  }

  .animal-detail-hero__photo {
    width: 58px;
    height: 72px;
    border-radius: 16px 16px 16px 6px;
    box-shadow:
      5px 5px 0 var(--color-secondary-soft),
      0 14px 24px rgb(var(--color-primary-rgb) / 0.18);
  }

  .animal-detail-hero__monogram strong {
    font-size: 1.8rem;
  }

  .animal-detail-actions {
    margin: 0 20px 22px;
  }

}

@media (max-width: 440px) {
  .animal-detail-hero__identity {
    grid-template-columns: minmax(0, 1fr);
  }

  .animal-detail-tag,
  .animal-detail-tag--owner {
    min-width: calc(50% - 6px);
  }

}

.detail-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

.detail-pill {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding: 9px 13px 10px 17px;
  border: 1px solid rgb(var(--color-text-rgb) / 0.1);
  border-radius: 11px 11px 11px 4px;
  background: var(--color-surface);
  color: var(--color-text);
  font-size: var(--font-size-table, 13px);
  font-weight: var(--font-weight-label, 800);
  box-shadow:
    0 6px 0 rgb(var(--color-text-rgb) / 0.04),
    0 11px 20px rgb(var(--color-text-rgb) / 0.08);
}

.detail-pill::before {
  position: absolute;
  inset: 7px auto 7px 6px;
  width: 4px;
  border-radius: 999px;
  background: var(--color-identity);
  content: "";
}

.badge {
  display: inline-block;
  margin-bottom: var(--ui-space-3, 12px);
  padding: 7px var(--ui-space-3, 12px);
  border: 1px solid rgb(var(--color-secondary-rgb) / 0.16);
  border-radius: 10px 10px 10px 4px;
  background: var(--color-accent-soft);
  color: var(--color-accent-strong);
  font-size: var(--font-size-caption, 12px);
  font-weight: var(--font-weight-label, 700);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  box-shadow: 0 5px 0 rgb(var(--color-secondary-rgb) / 0.07);
}

.alert {
  margin-bottom: var(--ui-space-4, 16px);
  padding: var(--ui-space-3, 12px) 14px;
  border-radius: var(--ui-radius-control, 14px);
  border: 1px solid transparent;
}

.alert-error {
  background: var(--ui-danger-surface, #fff1f2);
  border-color: var(--ui-danger-border, #fecdd3);
  color: var(--ui-danger-text, #9f1239);
}

.alert-error a {
  color: inherit;
  font-weight: var(--font-weight-label, 800);
}

.alert-success {
  background: var(--color-success-soft);
  border-color: var(--color-success);
  color: var(--color-success-strong);
}

html[data-ui-components] .alert-warning {
  background: var(--ui-warning-surface);
  border-color: var(--ui-warning-border);
  color: var(--ui-warning-text);
}

html[data-ui-components] .alert-info {
  background: var(--ui-info-surface);
  border-color: var(--ui-info-border);
  color: var(--ui-info-text);
}

.alert--auto-dismiss {
  opacity: 0;
  transform: translateY(-5px);
  transition: opacity var(--ui-motion-drawer, .28s) ease, transform var(--ui-motion-drawer, .28s) ease;
}

/* Attente de navigation ----------------------------------------------- */
.loading-overlay {
  align-items: center;
  background: rgba(15, 49, 50, .28);
  display: flex;
  inset: 0;
  justify-content: center;
  position: fixed;
  z-index: 2000;
}

.loading-overlay[hidden] { display: none; }
.loading-overlay__panel {
  align-items: center;
  background: var(--color-surface, #fff);
  border: 1px solid rgba(255,255,255,.7);
  border-radius: 18px;
  box-shadow: 0 22px 60px rgba(13, 45, 46, .28);
  color: var(--color-text, #173c3d);
  display: grid;
  gap: 6px;
  justify-items: center;
  min-width: 210px;
  padding: 22px 26px;
}

.loading-overlay__panel strong { font-size: var(--font-size-body); }
.loading-overlay__panel > span:last-child { color: var(--color-text-soft, #667675); font-size: var(--font-size-help); }
.loading-overlay__spinner {
  animation: aenima-loading-spin .8s linear infinite;
  border: 3px solid rgba(57,119,119,.2);
  border-radius: 50%;
  border-top-color: var(--color-primary, #397777);
  height: 28px;
  margin-bottom: 4px;
  width: 28px;
}

@keyframes aenima-loading-spin { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
  .loading-overlay__spinner { animation-duration: 1.8s; }
}

.nutrition-reference-profile-editor__hint {
    margin: .85rem 0 0;
    color: var(--color-text-muted, #68727a);
    font-size: var(--font-size-help, .82rem);
    line-height: 1.45;
}

.nutrition-reference-profile__missing-values {
    margin: .7rem 0;
    color: var(--color-text-muted, #68727a);
    font-size: var(--font-size-table, .8rem);
    font-style: italic;
}

.nutrition-reference-profile--region {
    padding: 1rem;
}

.nutrition-reference-profile__cycles {
    display: grid;
    gap: .65rem;
    margin-top: .8rem;
}

.nutrition-reference-profile-editor__cycles {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem;
    margin: .8rem 0 1rem;
}

.nutrition-reference-profile-editor__cycles > span {
    flex-basis: 100%;
    color: var(--color-text-muted, #68727a);
    font-size: var(--font-size-table, .8rem);
    font-weight: var(--font-weight-label, 600);
}

.nutrition-reference-profile-editor__cycles a {
    padding: .4rem .6rem;
    border: 1px solid var(--color-border, #d7dce0);
    border-radius: 0;
    color: inherit;
    font-size: var(--font-size-control, .8rem);
    text-decoration: none;
}

.nutrition-reference-profile-editor__cycles a.is-active {
    border-color: var(--color-primary, #547c68);
    background: var(--color-primary, #547c68);
    color: #fff;
}

.nutrition-reference-profile__cycle {
    padding: .7rem .8rem;
    border: 1px solid color-mix(in srgb, var(--color-border, #d7dce0) 75%, transparent);
    border-radius: .7rem;
    background: color-mix(in srgb, var(--color-surface, #fff) 86%, var(--color-primary, #547c68) 14%);
}

.nutrition-reference-profile__cycle-heading {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    align-items: baseline;
}

.nutrition-reference-profile__cycle-heading span {
    color: var(--color-text-muted, #68727a);
    font-size: var(--font-size-caption, .78rem);
}

.field {
  display: block;
  margin-bottom: var(--ui-space-4, 16px);
}

.field span {
  display: block;
  margin-bottom: 6px;
}

.field.practice-model-field--inline {
  display: grid;
  grid-template-columns: auto minmax(150px, 260px);
  align-items: center;
  gap: var(--ui-space-2, 8px);
  margin-bottom: 0;
}

.field.practice-model-field--inline > span {
  margin-bottom: 0;
  white-space: nowrap;
}

@media (max-width: 560px) {
  .field.practice-model-field--inline {
    grid-template-columns: 1fr;
    gap: var(--ui-space-1, 4px);
  }
}

.field-inline {
  display: flex;
  align-items: center;
  gap: 10px;
}

.field-inline-card {
  min-height: 52px;
  padding: var(--ui-space-3, 12px) 14px;
  border: 1px solid var(--color-border);
  border-radius: var(--ui-radius-control, 14px);
  background: var(--color-surface-muted);
}

.field-inline span {
  margin-bottom: 0;
}

.field-inline input[type="checkbox"] {
  width: 18px;
  height: 18px;
}

.field-span-2 {
  grid-column: 1 / -1;
}

.filters-bar {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(180px, 1fr) auto auto;
  gap: 12px;
  align-items: center;
  margin-bottom: 24px;
  padding: 14px;
  border: 1px solid var(--color-border);
  border-radius: 18px;
  background: var(--color-surface-muted);
}

.filters-bar .input {
  box-sizing: border-box;
  height: var(--ui-filter-control-height);
  line-height: 1.2;
  max-width: 100%;
  min-height: var(--ui-filter-control-height);
  padding-block: 0;
}

.filters-bar input.input[type="search"] {
  min-width: 0;
}

.filters-bar select.input {
  field-sizing: content;
  width: auto;
}

.filters-bar .btn {
  align-items: center;
  box-sizing: border-box;
  display: inline-flex;
  height: var(--ui-filter-control-height);
  justify-content: center;
  min-height: var(--ui-filter-control-height);
  padding-block: 0;
}

.ui-filter-field {
  align-content: end;
  display: grid;
  gap: 6px;
  grid-template-rows: var(--ui-filter-label-height) var(--ui-filter-control-height);
  margin: 0;
  min-width: 0;
}

.ui-filter-field > span:first-child {
  align-self: end;
  color: var(--color-primary-strong);
  font-size: var(--font-size-label, .74rem);
  font-weight: var(--font-weight-label, 850);
  line-height: 1.1;
}

.ui-filter-field .input {
  width: 100%;
}

.ui-filter-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  min-height: var(--ui-filter-control-height);
}

.filters-bar--compact {
  grid-template-columns: minmax(0, 1fr) auto;
}

.clients-filter-search {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  min-width: 0;
}

.clients-filter-reset {
  min-width: 0;
  padding-inline: 16px;
  white-space: nowrap;
}

.clients-list-panel {
  container-type: inline-size;
  min-width: 0;
  border-color: color-mix(in srgb, var(--color-primary) 20%, var(--color-border));
  background: color-mix(in srgb, var(--color-surface) 95%, var(--color-primary));
}

.clients-list-panel__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: var(--ui-space-3, 12px);
  margin-bottom: 20px;
}

.clients-list-panel__status-toggle {
  background: var(--ui-back-icon-background, #f4ce55);
  border-color: color-mix(in srgb, var(--ui-back-icon-background, #f4ce55) 72%, var(--color-primary));
  box-shadow: 0 10px 22px rgb(var(--color-text-rgb) / .12);
  color: var(--ui-back-icon-foreground, #253130);
  justify-self: end;
  margin-top: 0.1rem;
  white-space: nowrap;
}

.clients-list-panel__status-toggle:hover,
.clients-list-panel__status-toggle:focus-visible {
  background: color-mix(in srgb, var(--ui-back-icon-background, #f4ce55) 86%, var(--color-surface));
  border-color: color-mix(in srgb, var(--ui-back-icon-background, #f4ce55) 62%, var(--color-primary));
  color: var(--ui-back-icon-foreground, #253130);
}

.clients-list-panel__header h2 {
  margin-bottom: 6px;
}

.clients-list-panel__header p {
  margin: 0;
  color: var(--color-text-soft);
}

.clients-table-wrap {
  margin: 0 -2px -6px;
  padding: 0 2px 6px;
  overflow-x: auto;
  overflow-y: visible;
  scrollbar-color: rgb(var(--color-text-rgb) / 0.2) transparent;
  scrollbar-width: thin;
}

.clients-table-wrap::-webkit-scrollbar {
  height: 8px;
}

.clients-table-wrap::-webkit-scrollbar-track {
  background: transparent;
}

.clients-table-wrap::-webkit-scrollbar-thumb {
  background: rgb(var(--color-text-rgb) / 0.18);
  border-radius: 999px;
}

.clients-table-wrap::-webkit-scrollbar-thumb:hover {
  background: rgb(var(--color-text-rgb) / 0.28);
}

.table.clients-table {
  min-width: 1080px;
  table-layout: auto;
  border-collapse: separate;
  border-spacing: 0 10px;
}

.table.clients-table th,
.table.clients-table td {
  border: 0;
  min-width: 0;
}

.table.clients-table th {
  padding: 2px 10px var(--ui-space-1, 4px);
  font-size: var(--font-size-table, 11px);
}

.table.clients-table td {
  height: auto;
  padding: var(--ui-space-1, 4px) var(--ui-space-2, 8px);
  vertical-align: middle;
  transition: background 0.48s ease, box-shadow 0.48s ease;
}

.clients-table tbody tr {
  position: relative;
  z-index: 0;
  transition: filter 0.18s ease;
}

.clients-table tbody tr:hover {
  z-index: 1;
  filter: drop-shadow(0 5px 9px rgb(var(--color-primary-rgb) / 0.08));
}

.clients-table th:first-child,
.clients-table td:first-child {
  border-radius: 13px 0 0 13px;
}

.clients-table th:last-child,
.clients-table td:last-child {
  border-radius: 0 13px 13px 0;
}

.clients-table--persons th:first-child,
.clients-table--persons td:first-child {
  width: 21%;
}

.clients-table--persons th:nth-child(2),
.clients-table--persons td:nth-child(2) {
  width: 23%;
}

.clients-table--persons th:nth-child(3),
.clients-table--persons td:nth-child(3) {
  width: 20%;
}

.clients-table--organizations th:first-child,
.clients-table--organizations td:first-child {
  width: 20%;
}

.clients-table--organizations th:nth-child(2),
.clients-table--organizations td:nth-child(2) {
  width: 22%;
}

.clients-table--organizations th:nth-child(3),
.clients-table--organizations td:nth-child(3) {
  width: 24%;
}

.clients-table--persons th:last-child,
.clients-table--persons td:last-child {
  min-width: 360px;
  text-align: right;
  width: 36%;
  white-space: nowrap;
}

.clients-table--organizations th:last-child,
.clients-table--organizations td:last-child {
  min-width: 360px;
  text-align: right;
  white-space: nowrap;
  width: 34%;
}

.clients-table--animals th:first-child,
.clients-table--animals td:first-child {
  width: 22%;
}

.clients-table--animals th:nth-child(2),
.clients-table--animals td:nth-child(2) {
  width: 31%;
}

.clients-table--animals th:nth-child(3),
.clients-table--animals td:nth-child(3) {
  width: auto;
}

.clients-table--animals th:last-child,
.clients-table--animals td:last-child {
  min-width: 250px;
  text-align: right;
  width: 250px;
  white-space: nowrap;
}

/* Client account settings */
.client-account-settings-navigation {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-3, 12px);
  width: fit-content;
  max-width: 100%;
  margin-bottom: 0;
}
.client-account-settings-hero .badge { justify-self: start; }
.client-account-settings-navigation .btn { min-width: 0; white-space: normal; text-align: center; }
@media (max-width: 900px) {
  .client-account-settings-navigation { grid-template-columns: minmax(0, 1fr); }
}
.client-account-settings-page {
  margin-inline: auto;
  max-width: 980px;
  width: 100%;
}
.client-email-change-card { display: grid; gap: 18px; width: min(100%, 620px); box-sizing: border-box; min-width: 0; }
.client-email-change-card p { margin: 0; overflow-wrap: anywhere; }
.client-email-change-form { display: grid; justify-items: start; gap: 18px; min-width: 0; }
.client-email-change-form .field { max-width: 100%; min-width: 0; }
.client-email-change-form input { width: auto; max-width: 100%; box-sizing: border-box; }
.practitioner-email-change-card { max-width: 720px; width: min(100%, 720px); }
.practitioner-email-change-card > h2 { margin-top: 0; }
.client-email-change-card > .btn { justify-self: start; }

.client-account-settings-hero,
.client-account-settings-card,
.client-account-settings-card__header > div,
.client-account-closure-form,
.client-account-closure-status {
  min-width: 0;
}

.client-account-settings-card {
  display: grid;
  gap: 24px;
  padding: clamp(22px, 4vw, 36px);
}

.client-account-settings-card__header {
  align-items: flex-start;
  border-bottom: 1px solid rgb(var(--color-primary-rgb) / .14);
  display: flex;
  gap: 14px;
  padding-bottom: 20px;
}

.client-account-settings-card__header > span {
  align-items: center;
  background: var(--color-primary);
  border-radius: 9px;
  color: var(--color-surface);
  display: inline-flex;
  flex: 0 0 42px;
  font-weight: var(--font-weight-label, 800);
  height: 42px;
  justify-content: center;
}

.client-account-settings-card__header small,
.client-account-closure-status__dates small {
  color: var(--color-text-soft);
  display: block;
  font-size: var(--font-size-help, .76rem);
  font-weight: var(--font-weight-label, 760);
  letter-spacing: .06em;
  text-transform: uppercase;
}

.client-account-settings-card__header h2,
.client-account-closure-explanation h3 {
  margin: 2px 0 6px;
}

.client-account-settings-card__header p,
.client-account-closure-status p {
  color: var(--color-text-soft);
  margin: 0;
}

.client-account-closure-explanation {
  background: rgb(var(--color-primary-rgb) / .05);
  border: 1px solid rgb(var(--color-primary-rgb) / .14);
  border-radius: 14px;
  padding: 20px 22px;
}

.client-account-closure-explanation ul {
  display: grid;
  gap: 9px;
  margin: 14px 0 0;
  padding-left: 22px;
}

.client-account-closure-form {
  display: grid;
  gap: 18px;
  max-width: 520px;
}

.client-account-closure-status {
  background: var(--color-surface-soft);
  border: 1px solid rgb(var(--color-secondary-rgb) / .42);
  border-radius: 14px;
  display: grid;
  gap: 16px;
  padding: 20px 22px;
}

.client-account-closure-status > .badge {
  justify-self: start;
}

.client-account-closure-status__dates {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.client-account-closure-status__dates > div {
  border-left: 3px solid var(--color-secondary);
  min-width: 0;
  padding: 5px 0 5px 12px;
}

.client-account-closure-status__dates strong {
  display: block;
  margin-top: 4px;
}

.client-account-settings-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.client-account-preference-form {
  display: grid;
  gap: 18px;
  max-width: 620px;
}

.client-account-preference-choice {
  align-items: flex-start;
  background: rgb(var(--color-primary-rgb) / .05);
  border: 1px solid rgb(var(--color-primary-rgb) / .18);
  border-radius: 14px;
  cursor: pointer;
  display: flex;
  gap: 12px;
  padding: 18px 20px;
}

.client-account-preference-choice input {
  accent-color: var(--color-primary);
  flex: 0 0 auto;
  height: 20px;
  margin: 2px 0 0;
  width: 20px;
}

.client-account-preference-choice > span {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.client-account-preference-choice strong {
  color: var(--color-text);
}

.client-account-preference-choice small {
  color: var(--color-text-soft);
  line-height: 1.45;
}

@media (max-width: 680px) {
  .client-account-closure-status__dates {
    grid-template-columns: minmax(0, 1fr);
  }

  .client-account-settings-card__header {
    align-items: flex-start;
  }
}

.clients-table--persons tbody tr:nth-child(odd) td {
  background: rgb(var(--color-identity-rgb) / 0.12);
}

.clients-table--persons tbody tr:nth-child(even) td {
  background: rgb(var(--color-primary-rgb) / 0.075);
}

.clients-table--persons tbody tr td:first-child {
  box-shadow: inset 4px 0 0 var(--color-identity);
}

.clients-table--organizations tbody tr:nth-child(odd) td {
  background: rgb(var(--color-secondary-rgb) / 0.13);
}

.clients-table--organizations tbody tr:nth-child(even) td {
  background: rgb(var(--color-identity-rgb) / 0.1);
}

.clients-table--organizations tbody tr td:first-child {
  box-shadow: inset 4px 0 0 var(--color-secondary);
}

.clients-table--animals tbody tr:nth-child(odd) td {
  background: rgb(var(--color-primary-rgb) / 0.09);
}

.clients-table--animals tbody tr:nth-child(even) td {
  background: rgb(var(--color-identity-rgb) / 0.12);
}

.clients-table--animals tbody tr td:first-child {
  box-shadow: inset 4px 0 0 var(--color-primary);
}

.clients-table tbody tr:hover td {
  background: var(--color-surface);
  box-shadow: inset 0 1px 0 rgb(var(--color-primary-rgb) / 0.18),
    inset 0 -1px 0 rgb(var(--color-primary-rgb) / 0.18);
}

.clients-table--persons tbody tr:hover td:first-child {
  box-shadow: inset 4px 0 0 var(--color-primary),
    inset 0 1px 0 rgb(var(--color-primary-rgb) / 0.18),
    inset 0 -1px 0 rgb(var(--color-primary-rgb) / 0.18);
}

.clients-table--organizations tbody tr:hover td:first-child {
  box-shadow: inset 4px 0 0 var(--color-secondary),
    inset 0 1px 0 rgb(var(--color-secondary-rgb) / 0.24),
    inset 0 -1px 0 rgb(var(--color-secondary-rgb) / 0.24);
}

.clients-table--animals tbody tr:hover td:first-child {
  box-shadow: inset 4px 0 0 var(--color-primary),
    inset 0 1px 0 rgb(var(--color-primary-rgb) / 0.18),
    inset 0 -1px 0 rgb(var(--color-primary-rgb) / 0.18);
}

.client-identity {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
}

.client-identity__primary {
  align-items: center;
  display: flex;
  flex: 1 1 0;
  gap: 7px;
  max-width: 100%;
  min-width: 0;
}

.client-identity__avatar {
  display: inline-flex;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: var(--color-primary);
  color: var(--color-surface);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.04em;
  box-shadow: 0 6px 14px rgb(var(--color-primary-rgb) / 0.16);
}

.practitioner-identity__avatar--image {
  background: var(--color-surface);
  border: 1px solid rgb(var(--color-primary-rgb) / 0.2);
  overflow: hidden;
  padding: 2px;
}

.practitioner-identity__avatar--image img {
  display: block;
  height: 100%;
  object-fit: contain;
  width: 100%;
}

.animal-practitioners-table td:first-child {
  min-width: 220px;
}

.table.clients-table.animal-practitioners-table {
  min-width: 620px;
  table-layout: fixed;
}

.table.clients-table.animal-practitioners-table th:first-child,
.table.clients-table.animal-practitioners-table td:first-child {
  width: 34%;
}

.table.clients-table.animal-practitioners-table th:nth-child(2),
.table.clients-table.animal-practitioners-table td:nth-child(2) {
  width: 25%;
}

.table.clients-table.animal-practitioners-table th:nth-child(3),
.table.clients-table.animal-practitioners-table td:nth-child(3) {
  width: 19%;
}

.table.clients-table.animal-practitioners-table th:last-child,
.table.clients-table.animal-practitioners-table td:last-child {
  min-width: 0;
  text-align: right;
  white-space: nowrap;
  width: 22%;
}

.animal-practitioners-table .client-identity__primary > span:last-child {
  display: grid;
  min-width: 0;
}

.animal-practitioners-table .client-identity__primary small {
  color: var(--color-text-soft);
  font-size: var(--font-size-caption);
}

.clients-table--organizations .client-identity__avatar {
  background: var(--color-secondary);
  box-shadow: 0 8px 18px rgb(var(--color-secondary-rgb) / 0.2);
}

.animal-identity__avatar {
  background: var(--animal-species-color, var(--color-identity));
  color: var(--animal-species-contrast-color, var(--color-surface));
  box-shadow: 0 6px 14px color-mix(
    in srgb,
    var(--animal-species-color, var(--color-identity)) 28%,
    transparent
  );
}

.animal-identity__avatar--photo {
  overflow: hidden;
  padding: 0;
  border: 1px solid color-mix(
    in srgb,
    var(--animal-species-color, var(--color-identity)) 42%,
    #fff
  );
  background: #fff;
}

.animal-identity__avatar--photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

[data-animal-species-contrast="dark"] {
  --animal-species-contrast-color: var(--color-text);
}

[data-animal-species-contrast="light"] {
  --animal-species-contrast-color: var(--color-surface);
}

.client-identity__name {
  display: inline-block;
  flex: 1 1 0;
  min-width: 0;
  overflow: hidden;
  margin: -3px -5px;
  padding: 3px 5px;
  border-radius: 8px;
  color: var(--color-text);
  font-weight: var(--font-weight-title, 700);
  text-decoration: none;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: color 0.28s ease, background 0.28s ease, transform 0.28s ease;
}

.client-identity__name:hover {
  color: var(--color-primary);
  background: rgb(var(--color-primary-rgb) / 0.09);
  transform: translateX(2px);
}

.client-identity__name:focus-visible {
  outline: none;
  color: var(--color-primary);
  background: rgb(var(--color-primary-rgb) / 0.12);
  box-shadow: 0 0 0 3px var(--color-focus);
}

.animal-share-notification {
  align-items: center;
  background: rgb(var(--color-secondary-rgb) / 0.14);
  border: 1px solid rgb(var(--color-secondary-rgb) / 0.34);
  border-radius: 999px;
  color: var(--color-secondary-strong);
  display: inline-flex;
  flex: 0 0 auto;
  font-size: var(--font-size-caption, 0.68rem);
  font-weight: var(--font-weight-label, 800);
  line-height: 1;
  padding: 4px 7px;
  white-space: nowrap;
}

.client-inline-contact {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.client-inline-contact strong {
  color: var(--color-text);
  font-size: var(--font-size-table, 12px);
  font-style: normal;
  overflow-wrap: anywhere;
}

.client-inline-contact span {
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 11px);
  overflow-wrap: anywhere;
}

.client-inline-contact i {
  margin: 0 3px;
  font-style: normal;
}

.client-inline-meta {
  display: flex;
  min-width: 0;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px;
}

.client-meta-badge,
.client-location {
  display: inline-flex;
  flex: 0 1 auto;
  align-items: center;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  padding: 5px 7px;
  border-radius: 999px;
  font-size: var(--font-size-caption, 10px);
  font-weight: var(--font-weight-label, 800);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.client-location {
  background: rgb(var(--color-primary-rgb) / 0.1);
  color: var(--color-primary-strong);
}

.client-meta-badge--stable,
.client-meta-badge--private {
  background: var(--color-identity-soft);
  color: var(--color-identity-strong);
}

.client-meta-badge--category,
.client-meta-badge--public {
  background: var(--color-secondary-soft);
  color: var(--color-secondary-strong);
}

.animal-meta-badge,
.animal-activity {
  display: inline-flex;
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
  align-items: center;
  overflow: hidden;
  padding: 5px 7px;
  border-radius: 999px;
  font-size: var(--font-size-caption, 10px);
  font-weight: var(--font-weight-label, 800);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.animal-meta-badge--species {
  background: rgb(var(--color-primary-rgb) / 0.13);
  color: var(--color-primary-strong);
}

.animal-meta-badge--breed {
  background: var(--color-identity-soft);
  color: var(--color-identity-strong);
}

.animal-meta-badge--male {
  background: rgb(var(--color-primary-rgb) / 0.13);
  color: var(--color-primary-strong);
}

.animal-meta-badge--female,
.animal-activity {
  background: var(--color-secondary-soft);
  color: var(--color-secondary-strong);
}

.animal-meta-badge--unknown {
  background: rgb(var(--color-text-rgb) / 0.08);
  color: var(--color-text-soft);
}

.animal-owner {
  display: block;
  overflow: hidden;
  color: var(--color-text);
  font-size: var(--font-size-table, 12px);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.clients-table .table-actions {
  display: inline-flex;
  flex-wrap: nowrap;
  justify-content: flex-end;
  gap: 5px;
  margin-left: 0;
  min-width: 0;
  width: auto;
}

.clients-table .table-actions form {
  margin: 0;
}

.clients-table .table-action {
  flex: 0 0 auto;
  min-height: 32px;
  padding: 6px 9px;
  border-radius: var(--ui-radius-control, 9px);
  font-size: var(--font-size-control, 11px);
  white-space: nowrap;
}

.clients-table .table-action:first-child {
  border-color: var(--color-primary-strong);
  background: var(--color-primary);
  color: var(--color-surface);
  box-shadow: 0 7px 14px rgb(var(--color-primary-rgb) / 0.16);
}

.clients-table .table-action:first-child:hover {
  background: var(--color-primary-strong);
  box-shadow: 0 11px 20px rgb(var(--color-primary-rgb) / 0.22);
}

.clients-table .table-action:disabled,
.clients-table .table-action:disabled:hover,
.clients-table .table-action:disabled:focus-visible {
  background: #edf0ef;
  border-color: #d5dada;
  box-shadow: none;
  color: #78817f;
  cursor: not-allowed;
  opacity: 1;
  transform: none;
}

@container (max-width: 520px) {
  .clients-list-panel__header {
    grid-template-columns: minmax(0, 1fr);
  }

  .clients-list-panel__status-toggle {
    justify-self: start;
  }

  .table.clients-table--persons,
  .table.clients-table--organizations {
    min-width: 960px;
  }
}

.client-type-selector {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.client-type-selector__choice {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  margin: 0;
  padding: 14px;
  border: 1px solid var(--color-border);
  border-radius: 14px;
  background: var(--color-surface-muted);
  cursor: pointer;
}

.client-type-selector__choice:has(input:checked) {
  border-color: rgb(var(--color-identity-rgb) / 0.5);
  background: var(--color-identity-faint);
  box-shadow: inset 4px 0 0 var(--color-identity);
}

.client-type-selector__choice input {
  margin-top: 3px;
}

.client-type-selector__copy strong,
.client-type-selector__copy span {
  display: block;
}

.client-type-selector__copy span {
  margin-top: 4px;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 13px);
}

@media (max-width: 560px) {
  .client-type-selector {
    grid-template-columns: 1fr;
  }
}

.dashboard-kpis-layout {
  display: grid;
  grid-template-columns: minmax(420px, 500px) minmax(300px, 1fr);
  align-items: stretch;
  gap: 28px;
  margin: 24px 0;
}

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

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

.dashboard-kpi {
  display: grid;
  gap: 8px;
  position: relative;
  overflow: hidden;
  min-height: 0;
  aspect-ratio: 1;
}

.dashboard-kpis__visual {
  display: grid;
  align-self: center;
  justify-self: center;
  width: 65%;
  height: auto;
  min-height: 0;
  overflow: hidden;
  border: 0;
  border-radius: var(--radius-lg);
  background: transparent;
}

.dashboard-kpis__visual img {
  width: 100%;
  height: auto;
  object-fit: contain;
  object-position: center 60%;
}

.dashboard-kpi__label {
  color: var(--color-text-soft);
  font-size: var(--font-size-label, 12px);
  line-height: 1.25;
}

.dashboard-kpi__value {
  position: relative;
  z-index: 1;
  max-width: calc(100% - 18px);
  font-size: var(--font-size-body, clamp(1.55rem, 2vw, 2rem));
  line-height: 1.05;
}

.dashboard-kpi__value--currency {
  max-width: 100%;
  font-size: var(--font-size-body, clamp(1.05rem, 1.4vw, 1.2rem));
  letter-spacing: -0.02em;
  white-space: nowrap;
}

.dashboard-kpi__icon {
  display: block;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background-image: url('/assets/img/zoodja-dashboard-kpi-sheet.png');
  background-repeat: no-repeat;
  background-size: 691.2px 460.8px;
}

/* Positions dans la planche validée : Mon compte, Traitements, Prendre rendez-vous,
   Massage animalier, Factures et Suivi de santé. */
.dashboard-kpi__icon--clients { background-position: -72px -8px; }
.dashboard-kpi__icon--animals { background-position: -392px -88px; }
.dashboard-kpi__icon--appointments { background-position: -261px -8px; }
.dashboard-kpi__icon--sessions { background-position: -8px -165px; }
.dashboard-kpi__icon--invoices { background-position: -198px -243px; }
.dashboard-kpi__icon--revenue { background-position: -261px -88px; }
.dashboard-kpi__icon--storage { background-position: -8px -88px; }
.dashboard-kpi__icon--questionnaires { background-position: -8px -243px; }
.dashboard-kpi__icon--reports { background-position: -72px -243px; }

.dashboard-section-heading {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3, 12px);
}

.dashboard-section-heading .dashboard-kpi__icon {
  flex: 0 0 54px;
}

.dashboard-kpi__icon--unpaid {
  position: relative;
}

.dashboard-kpi__unpaid-cross {
  position: absolute;
  top: 0;
  right: 0;
  width: 22px;
  height: 22px;
}

.dashboard-kpi__unpaid-cross circle {
  fill: var(--color-surface);
  stroke: var(--color-danger-strong);
  stroke-width: 1.5;
}

.dashboard-kpi__unpaid-cross path {
  fill: none;
  stroke: var(--color-danger-strong);
  stroke-linecap: round;
  stroke-width: 2.5;
}

.dashboard-kpi__icon-link {
  position: absolute;
  right: 10px;
  bottom: 10px;
  z-index: 2;
  display: grid;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  place-items: center;
  transition: transform .18s ease;
}

.dashboard-kpi__icon-link:hover,
.dashboard-kpi__icon-link:focus-visible {
  transform: translateY(-2px);
}

.dashboard-kpi__icon-link:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}

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

.dashboard-content-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 24px;
}

.dashboard-content-grid > .card {
  min-width: 0;
  margin: 0;
}

.dashboard-alert__list {
  margin: 0;
  padding-left: 0;
  list-style: none;
}

.dashboard-alert__list li + li {
  margin-top: 8px;
}

.dashboard-alert__list li {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--color-border);
}

.dashboard-page {
  --dashboard-accent: var(--color-primary);
  --dashboard-accent-soft: var(--color-primary-soft);
  --dashboard-accent-border: rgb(var(--color-primary-rgb) / 0.22);
  --dashboard-accent-ink: var(--color-primary-strong);
  --dashboard-terracotta: var(--color-secondary);
  --dashboard-terracotta-strong: var(--color-secondary-strong);
}

.dashboard-page .hero-card--dashboard .badge {
  justify-self: start;
  background: rgb(var(--color-white-rgb) / .1);
  border-color: rgb(var(--color-white-rgb) / .22);
  color: var(--color-surface);
}

.dashboard-page .dashboard-alert h2,
.dashboard-page > .card .page-header h2,
.dashboard-page .detail-grid .page-header h2,
.dashboard-page .dashboard-content-grid .page-header h2 {
  align-items: center;
  display: flex;
  gap: 9px;
  color: var(--color-primary-strong);
  font-weight: var(--font-weight-body, 400);
}

.dashboard-page .dashboard-alert h2 strong,
.dashboard-page > .card .page-header h2 strong,
.dashboard-page .detail-grid .page-header h2 strong,
.dashboard-page .dashboard-content-grid .page-header h2 strong {
  color: var(--color-secondary-muted);
  font-weight: var(--font-weight-title, 700);
}

.dashboard-page .dashboard-alert h2::before,
.dashboard-page > .card .page-header h2::before,
.dashboard-page .detail-grid .page-header h2::before,
.dashboard-page .dashboard-content-grid .page-header h2::before {
  background: var(--dashboard-accent);
  border: 1px solid var(--color-highlight-strong);
  border-radius: var(--ui-radius-control, 3px);
  content: "";
  flex: 0 0 7px;
  height: 7px;
}

.dashboard-page .dashboard-alert__list strong {
  background: var(--dashboard-accent-soft);
  border: 1px solid var(--dashboard-accent-border);
  border-radius: 6px;
  color: var(--dashboard-accent-ink);
  min-width: 34px;
  padding: 3px 7px;
  text-align: center;
}

.dashboard-page .dashboard-alert__list li {
  border-bottom-color: var(--dashboard-accent-border);
}

.dashboard-page .dashboard-alert .actions-inline .btn-secondary:nth-child(odd) {
  border-color: var(--color-secondary-muted);
  color: var(--dashboard-terracotta-strong);
}

.dashboard-page .dashboard-alert .actions-inline .btn-secondary:nth-child(even) {
  border-color: var(--dashboard-accent-border);
  color: var(--color-highlight-strong);
}

.dashboard-page .page-header .btn-secondary,
.dashboard-page .actions-inline .btn-secondary {
  border-color: var(--dashboard-accent-border);
}

.dashboard-page .page-header .btn-secondary:hover,
.dashboard-page .actions-inline .btn-secondary:hover {
  border-color: var(--dashboard-accent);
  color: var(--color-highlight-strong);
}

.dashboard-page .table thead th {
  border-bottom-color: var(--dashboard-accent-border);
  box-shadow: inset 0 -2px 0 rgb(var(--color-highlight-rgb) / 0.22);
}
.dashboard-page .table tbody a { color: var(--color-highlight-strong); }
.dashboard-page .table tbody a:hover { color: var(--color-primary-deep); }

.dashboard-page > .card,
.dashboard-page .detail-grid > .card,
.dashboard-page .dashboard-content-grid > .card,
.dashboard-page .dashboard-alert {
  border-top-color: rgb(var(--color-highlight-rgb) / 0.32);
}

.input {
  width: 100%;
  padding: var(--ui-field-padding, 13px 15px);
  border: 1px solid var(--ui-border-control, var(--color-border));
  border-radius: var(--ui-radius-field);
  background: var(--color-surface);
  color: var(--color-text);
  box-shadow: var(--ui-shadow-control, var(--shadow-xs));
}

.input:focus {
  outline: none;
  border-color: rgb(var(--color-identity-rgb) / 0.72);
  box-shadow: var(--ui-focus-ring, 0 0 0 4px var(--color-focus));
}

.input[type="color"] {
  width: 40px;
  min-width: 40px;
  height: 40px;
  padding: var(--ui-space-1, 4px);
  border-radius: var(--ui-radius-field);
  cursor: pointer;
}

.input[type="color"]::-webkit-color-swatch-wrapper {
  padding: 0;
}

.input[type="color"]::-webkit-color-swatch {
  border: 0;
  border-radius: var(--ui-radius-control, 8px);
}

.input[type="color"]::-moz-color-swatch {
  border: 0;
  border-radius: var(--ui-radius-control, 8px);
}

.textarea {
  resize: vertical;
}

.textarea-code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  min-height: 260px;
}

.btn {
  display: inline-flex;
  min-height: var(--ui-control-height, 44px);
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: var(--ui-control-padding, 11px 18px);
  border: 1px solid transparent;
  border-radius: var(--ui-radius-control, 12px);
  font: inherit;
  font-size: var(--font-size-control, .84rem);
  font-weight: var(--font-weight-label, 800);
  line-height: 1.15;
  cursor: pointer;
  text-decoration: none;
  box-shadow: var(--ui-shadow-control, var(--shadow-xs));
  transition:
    transform var(--ui-motion-control, .24s) var(--ui-ease, cubic-bezier(.22, 1, .36, 1)),
    box-shadow var(--ui-motion-control, .24s) ease,
    background-color var(--ui-motion-control, .24s) ease,
    border-color var(--ui-motion-control, .24s) ease,
    color var(--ui-motion-control, .24s) ease;
}

.btn:hover {
  text-decoration: none;
  transform: translateY(-2px);
}

.btn:active {
  transform: translateY(0);
  box-shadow: var(--shadow-xs);
  transition-duration: .08s;
}

.btn:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 3px;
}

.btn__icon {
  display: block;
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  transition: transform var(--ui-motion-fast, .16s) var(--ui-ease, ease-out);
}

.btn:is(:hover, :focus-visible) .btn__icon--end {
  transform: translateX(3px);
}

@media (prefers-reduced-motion: reduce) {
  .btn__icon { transition: none; }
  .btn:is(:hover, :focus-visible) .btn__icon--end { transform: none; }
}

.btn:disabled,
.btn[aria-disabled="true"] {
  opacity: .52;
  cursor: not-allowed;
  filter: saturate(.58);
  pointer-events: none;
  transform: none;
}

.table-action[aria-disabled="true"] {
  background: var(--color-surface-muted);
  border-color: var(--color-border);
  color: var(--color-text-muted);
  cursor: not-allowed;
  pointer-events: none;
}

.btn-primary {
  background: var(--color-primary);
  color: var(--color-surface);
  border-color: var(--color-primary-strong);
  box-shadow: 0 10px 24px rgb(var(--color-primary-rgb) / 0.22);
}

.btn-primary:hover {
  background: var(--color-primary-strong);
  color: var(--color-surface);
  border-color: var(--color-primary-strong);
  box-shadow: 0 14px 28px rgb(var(--color-primary-rgb) / 0.28);
}

.btn-accent {
  background: var(--color-secondary-strong);
  color: var(--color-surface);
  border-color: var(--color-secondary-deep);
  box-shadow: 0 10px 24px rgb(var(--color-secondary-rgb) / .24);
}

.btn-accent:hover,
.btn-accent:focus-visible {
  background: var(--color-secondary-deep);
  color: var(--color-surface);
  border-color: var(--color-secondary-deep);
  box-shadow: 0 14px 28px rgb(var(--color-secondary-rgb) / .3);
}

.btn-secondary {
  background: var(--color-surface);
  color: var(--color-primary-strong);
  border-color: rgb(var(--color-primary-rgb) / 0.34);
  box-shadow: 0 8px 18px rgb(var(--color-text-rgb) / 0.08);
}

.btn-secondary:hover,
.btn-secondary:focus-visible {
  border-color: rgb(var(--color-identity-rgb) / 0.52);
  background: var(--color-primary-soft);
  color: var(--color-identity-strong);
  box-shadow: 0 12px 24px rgb(var(--color-identity-rgb) / 0.16);
}

.btn:is(.btn-back, .btn-arrow) {
  background: transparent;
  color: var(--color-primary-strong);
  border: 0;
  box-shadow: none;
  padding: 0;
  gap: var(--ui-space-4, 16px);
  width: auto;
  min-height: 0;
  white-space: normal;
}

.btn:is(.btn-back, .btn-arrow)::before {
  content: var(--arrow-content, '\2190');
  box-sizing: border-box;
  padding: 0;
  transition: padding var(--ui-motion-fast, .16s) ease-out;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  border-radius: var(--ui-radius-round, 50%);
  background: var(--ui-back-icon-background, #f4ce55);
  color: var(--ui-back-icon-foreground, #253130);
  font-size: var(--font-size-section-title);
  line-height: 1;
}
.btn-arrow--left { --arrow-content: '\2190'; }
.btn-arrow--right { --arrow-content: '\2192'; }
.btn-arrow--down { --arrow-content: '\2193'; }
.btn-arrow--up { --arrow-content: '\2191'; }
.btn:is(.btn-back, .btn-arrow) { --arrow-hover-padding: 0 6px 0 0; }
.btn.btn-arrow--right { --arrow-hover-padding: 0 0 0 6px; }
.btn.btn-arrow--down { --arrow-hover-padding: 6px 0 0 0; }
.btn.btn-arrow--up { --arrow-hover-padding: 0 0 6px 0; }
.btn:is(.btn-back, .btn-arrow):is(:hover, :focus-visible)::before {
  padding: var(--arrow-hover-padding);
}
@media (prefers-reduced-motion: reduce) {
  .btn:is(.btn-back, .btn-arrow):is(:hover, :focus-visible)::before { padding: 0; transition: none; }
}
.btn:is(.btn-back, .btn-arrow):hover,
.btn:is(.btn-back, .btn-arrow):focus-visible {
  background: transparent;
  color: var(--color-primary-strong);
  box-shadow: none;
  transform: none;
}
.client-page-banner .btn:is(.btn-back, .btn-arrow),
.client-page-banner .btn:is(.btn-back, .btn-arrow):hover,
.client-page-banner .btn:is(.btn-back, .btn-arrow):focus-visible { color: var(--color-surface); }

.client-questionnaire-preview-bar .btn:hover,
.client-questionnaire-preview-bar .btn:focus-visible,
.client-questionnaire-preview-bar .btn:active {
  background: #294e40;
  border-color: #ffffff;
  color: #ffffff;
  box-shadow: 0 10px 22px rgba(24, 48, 39, 0.3);
}

.btn-logout {
  background: var(--color-surface);
  color: var(--color-secondary-deep);
  border-color: rgb(var(--color-secondary-rgb) / 0.58);
  box-shadow: 0 8px 20px rgb(var(--color-secondary-rgb) / 0.14);
}

.btn-logout:hover {
  background: var(--color-secondary-soft);
  color: var(--color-secondary-deep);
  border-color: var(--color-secondary);
  box-shadow: 0 12px 24px rgb(var(--color-secondary-rgb) / 0.2);
}

.btn-sessions {
  background: var(--color-primary);
  color: var(--color-surface);
  border-color: var(--color-primary-strong);
  box-shadow: 0 10px 24px rgb(var(--color-primary-rgb) / 0.22);
}

.btn-sessions:hover {
  background: var(--color-primary-strong);
  color: var(--color-surface);
  border-color: var(--color-primary-strong);
}

.btn-nutrition {
  background: var(--color-identity-strong);
  color: var(--color-surface);
  border-color: var(--color-identity-strong);
  box-shadow: 0 10px 24px rgb(var(--color-identity-rgb) / 0.24);
}

.btn-nutrition:hover {
  background: var(--color-identity);
  color: var(--color-surface);
  border-color: var(--color-identity);
}

.btn-edit {
  background: var(--color-secondary-strong);
  color: var(--color-surface);
  border-color: var(--color-secondary-deep);
  box-shadow: 0 10px 24px rgb(var(--color-secondary-rgb) / 0.24);
}

.btn-edit:hover {
  background: var(--color-secondary-deep);
  color: var(--color-surface);
  border-color: var(--color-secondary-deep);
  box-shadow: 0 14px 28px rgb(var(--color-secondary-rgb) / 0.29);
}

.btn-ghost {
  background: var(--color-surface);
  color: var(--color-text);
  border-color: rgb(var(--color-text-rgb) / 0.2);
  box-shadow: 0 7px 16px rgb(var(--color-text-rgb) / 0.07);
}

.btn-ghost:hover {
  border-color: rgb(var(--color-identity-rgb) / 0.5);
  background: var(--color-identity-faint);
  color: var(--color-identity-strong);
  box-shadow: 0 11px 22px rgb(var(--color-identity-rgb) / 0.15);
}

.btn-danger {
  background: var(--color-danger);
  color: var(--color-surface);
  border-color: var(--color-danger-strong);
  box-shadow: 0 10px 22px rgb(var(--color-danger-rgb) / 0.22);
}

.btn-danger:hover {
  background: var(--color-danger-strong);
  color: var(--color-surface);
  border-color: var(--color-danger-strong);
  box-shadow: 0 14px 26px rgb(var(--color-danger-rgb) / 0.27);
}

.btn-sm {
  min-height: 34px;
  padding: 7px var(--ui-space-3, 12px);
  border-radius: var(--ui-radius-control, 11px);
  font-size: var(--font-size-control, .74rem);
}

.btn-block {
  width: 100%;
}

.form-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--ui-space-3, 12px);
  margin-top: 26px;
}

.danger-zone {
  margin: 0;
  padding: 0;
}

.annotation-bottom-actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 12px;
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid var(--color-border);
}

.annotation-autosave-status {
  margin-right: auto;
  color: var(--color-text-soft);
  font-size: var(--font-size-caption, .88rem);
}

.annotation-autosave-status.is-saving {
  color: var(--color-primary);
}

.annotation-autosave-status.is-error {
  color: var(--color-danger);
}

@media (max-width: 560px) {
  .annotation-bottom-actions {
    flex-wrap: wrap;
    justify-content: stretch;
  }

  .annotation-bottom-actions > .btn,
  .annotation-bottom-actions .danger-zone,
  .annotation-bottom-actions .danger-zone .btn {
    flex: 1 1 100%;
  }
}

.table-wrap {
  overflow-x: auto;
}

.table {
  font-size: var(--font-size-table, 1rem);
  width: 100%;
  border-collapse: collapse;
  background: transparent;
}

.table th,
.table td {
  padding: 14px var(--ui-space-3, 12px);
  border-bottom: 1px solid var(--color-border);
  text-align: left;
  vertical-align: top;
}

.table th {
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 13px);
  font-weight: var(--font-weight-label, 700);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.table tbody tr:hover {
  background: var(--color-identity-faint);
}

.activity-journal-wrap {
  margin: 0 -2px -6px;
  padding: 0 2px 6px;
}

.table.activity-journal-table {
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0 8px;
}

.table.activity-journal-table th,
.table.activity-journal-table td {
  overflow: hidden;
  padding: 6px 9px;
  border: 0;
  font-size: var(--font-size-table, 12px);
  line-height: 1.35;
  vertical-align: middle;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.table.activity-journal-table th {
  padding-top: 2px;
  padding-bottom: var(--ui-space-1, 4px);
  font-size: var(--font-size-table, 11px);
}

.activity-journal-table th:first-child,
.activity-journal-table td:first-child {
  width: 72px;
}

.activity-journal-table th:nth-child(2),
.activity-journal-table td:nth-child(2) {
  width: 126px;
}

.activity-journal-table th:nth-child(3),
.activity-journal-table td:nth-child(3) {
  width: 24%;
}

.activity-journal-table th:last-child,
.activity-journal-table td:last-child {
  width: 122px;
}

.activity-journal-table td:first-child {
  border-radius: 13px 0 0 13px;
  box-shadow: inset 4px 0 0 var(--color-identity);
}

.activity-journal-table td:last-child {
  border-radius: 0 13px 13px 0;
}

.activity-journal-table tbody tr:nth-child(odd) td {
  background: rgb(var(--color-identity-rgb) / 0.1);
}

.activity-journal-table tbody tr:nth-child(even) td {
  background: rgb(var(--color-primary-rgb) / 0.07);
}

.activity-journal-table tbody tr {
  position: relative;
  z-index: 0;
  transform: scale(1);
  transform-origin: center;
  transition: transform 0.52s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.52s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}

.activity-journal-table tbody tr:hover {
  z-index: 1;
  background: transparent;
  transform: scale(1.006);
  filter: drop-shadow(0 8px 12px rgb(var(--color-primary-rgb) / 0.1));
}

.activity-journal-table tbody tr:hover td {
  background: var(--color-surface);
  box-shadow: inset 0 1px 0 rgb(var(--color-primary-rgb) / 0.18),
    inset 0 -1px 0 rgb(var(--color-primary-rgb) / 0.18);
}

.activity-journal-table tbody tr:hover td:first-child {
  box-shadow: inset 4px 0 0 var(--color-primary),
    inset 0 1px 0 rgb(var(--color-primary-rgb) / 0.18),
    inset 0 -1px 0 rgb(var(--color-primary-rgb) / 0.18);
}

.activity-journal__date time {
  color: var(--color-primary-strong);
  font-size: var(--font-size-help, 12px);
  font-weight: var(--font-weight-label, 800);
  font-variant-numeric: tabular-nums;
}

.activity-type-badge {
  display: inline-flex;
  max-width: 100%;
  align-items: center;
  gap: 5px;
  overflow: hidden;
  padding: 5px 7px;
  border-radius: 999px;
  font-size: var(--font-size-caption, 12px);
  font-weight: var(--font-weight-label, 800);
}

.activity-type-badge svg {
  flex: 0 0 14px;
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.activity-type-badge span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.activity-type-badge--appointment,
.activity-type-badge--intervention {
  background: rgb(var(--color-primary-rgb) / 0.13);
  color: var(--color-primary-strong);
}

.activity-type-badge--session,
.activity-type-badge--annotation {
  background: var(--color-identity-soft);
  color: var(--color-identity-strong);
}

.activity-type-badge--invoice,
.activity-type-badge--mixture {
  background: var(--color-secondary-soft);
  color: var(--color-secondary-strong);
}

.activity-type-badge--email,
.activity-type-badge--other {
  background: rgb(var(--color-text-rgb) / 0.08);
  color: var(--color-text);
}

.activity-journal__title,
.activity-journal__title a {
  color: var(--color-text);
  font-size: var(--font-size-control, 12px);
  font-weight: var(--font-weight-label, 800);
}

.activity-journal__title a {
  display: inline-block;
  max-width: 100%;
  overflow: hidden;
  margin: -3px -5px;
  padding: 3px 5px;
  border-radius: 8px;
  text-decoration: none;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: color 0.28s ease, background 0.28s ease, transform 0.28s ease;
}

.activity-journal__title a:hover {
  background: rgb(var(--color-primary-rgb) / 0.09);
  color: var(--color-primary);
  text-decoration: none;
  transform: translateX(2px);
}

.activity-journal__title a:focus-visible {
  outline: 0;
  background: rgb(var(--color-primary-rgb) / 0.12);
  color: var(--color-primary);
  text-decoration: none;
  box-shadow: 0 0 0 3px rgb(var(--color-primary-rgb) / 0.2);
}

.activity-journal__detail {
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 12px);
}

.activity-state {
  display: inline-flex;
  max-width: 100%;
  align-items: center;
  overflow: hidden;
  padding: 5px 7px;
  border-radius: 999px;
  font-size: var(--font-size-table, 12px);
  font-weight: var(--font-weight-label, 800);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.client-related-card h2 {
  margin-bottom: 18px;
}

.client-related-wrap {
  margin: 0 -3px -7px;
  padding: 0 3px 7px;
}

.table.client-related-table {
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0 8px;
}

.table.client-related-table th,
.table.client-related-table td {
  overflow: hidden;
  padding: var(--ui-space-2, 8px) 11px;
  border: 0;
  font-size: var(--font-size-table, 12px);
  line-height: 1.35;
  vertical-align: middle;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.table.client-related-table th {
  padding-top: 1px;
  padding-bottom: var(--ui-space-1, 4px);
  font-size: var(--font-size-table, 11px);
}

.client-related-table td:first-child {
  border-radius: 13px 0 0 13px;
  box-shadow: inset 4px 0 0 var(--client-related-accent, var(--color-identity));
}

.client-related-table td:last-child {
  border-radius: 0 13px 13px 0;
}

.client-related-table tbody tr:nth-child(odd) td {
  background: rgb(var(--color-identity-rgb) / 0.1);
}

.client-related-table tbody tr:nth-child(even) td {
  background: rgb(var(--color-primary-rgb) / 0.07);
}

.client-related-table tbody tr {
  position: relative;
  z-index: 0;
  transform: scale(1);
  transform-origin: center;
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.5s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}

.table.client-related-table tbody tr:hover {
  z-index: 1;
  background: transparent;
  transform: scale(1.006);
  filter: drop-shadow(0 8px 12px rgb(var(--color-primary-rgb) / 0.1));
}

.client-related-table tbody tr:hover td {
  background: var(--color-surface);
  box-shadow: inset 0 1px 0 rgb(var(--color-primary-rgb) / 0.18),
    inset 0 -1px 0 rgb(var(--color-primary-rgb) / 0.18);
}

.client-related-table tbody tr:hover td:first-child {
  box-shadow: inset 4px 0 0 var(--client-related-accent, var(--color-primary)),
    inset 0 1px 0 rgb(var(--color-primary-rgb) / 0.18),
    inset 0 -1px 0 rgb(var(--color-primary-rgb) / 0.18);
}

.client-related-table--animals {
  --client-related-accent: var(--color-identity);
}

.client-related-table--interventions {
  --client-related-accent: var(--color-secondary);
  min-width: 820px;
}

.client-related-table--animal-interventions {
  --client-related-accent: var(--color-secondary);
  min-width: 760px;
}

.client-related-table--invoices {
  --client-related-accent: var(--color-accent);
}

.client-related-link {
  display: inline-block;
  max-width: 100%;
  overflow: hidden;
  margin: -3px -5px;
  padding: 3px 5px;
  border-radius: 8px;
  color: var(--color-text);
  font-weight: var(--font-weight-label, 800);
  text-decoration: none;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: color 0.28s ease, background 0.28s ease, transform 0.28s ease;
}

.client-related-link:hover {
  background: rgb(var(--color-primary-rgb) / 0.09);
  color: var(--color-primary);
  text-decoration: none;
  transform: translateX(2px);
}

.client-related-link:focus-visible {
  outline: 0;
  background: rgb(var(--color-primary-rgb) / 0.12);
  color: var(--color-primary);
  text-decoration: none;
  box-shadow: 0 0 0 3px rgb(var(--color-primary-rgb) / 0.2);
}

.client-related-link--date,
.client-related-table time,
.client-related-amount {
  font-variant-numeric: tabular-nums;
}

.client-related-pill,
.client-related-status {
  display: inline-flex;
  max-width: 100%;
  align-items: center;
  overflow: hidden;
  padding: 5px 8px;
  border-radius: 999px;
  font-size: var(--font-size-caption, 12px);
  font-weight: var(--font-weight-label, 800);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.client-related-pill--identity {
  background: var(--color-identity-soft);
  color: var(--color-identity-strong);
}

.client-related-pill--primary {
  background: rgb(var(--color-primary-rgb) / 0.12);
  color: var(--color-primary-strong);
}

.client-related-pill--secondary,
.client-related-status {
  background: rgb(var(--color-text-rgb) / 0.08);
  color: var(--color-text);
}

.status-tone--pending {
  background: rgb(var(--color-secondary-rgb) / 0.14);
  color: var(--color-secondary-strong);
}

.status-tone--info {
  background: rgb(var(--color-primary-rgb) / 0.14);
  color: var(--color-primary-strong);
}

.status-tone--success {
  background: var(--color-identity-soft);
  color: var(--color-identity-strong);
}

.status-tone--danger {
  background: var(--color-danger-soft);
  color: var(--color-danger-strong);
}

.status-tone--neutral {
  background: rgb(var(--color-text-rgb) / 0.08);
  color: var(--color-text);
}

.client-related-amount {
  color: var(--color-primary-strong);
  font-weight: var(--font-weight-label, 800);
}

.client-related-table--interventions th:first-child,
.client-related-table--interventions td:first-child {
  width: 160px;
}

.client-related-table--interventions th:nth-child(2),
.client-related-table--interventions td:nth-child(2) {
  width: 16%;
}

.client-related-table--interventions th:nth-child(3),
.client-related-table--interventions td:nth-child(3) {
  width: 27%;
}

.client-related-table--interventions th:last-child,
.client-related-table--interventions td:last-child {
  width: 170px;
}

.client-related-table--animal-interventions th:first-child,
.client-related-table--animal-interventions td:first-child {
  width: 160px;
}

.client-related-table--animal-interventions th:nth-child(2),
.client-related-table--animal-interventions td:nth-child(2) {
  width: 28%;
}

.client-related-table--animal-interventions th:nth-child(4),
.client-related-table--animal-interventions td:nth-child(4) {
  width: 170px;
}

.client-related-table--animal-interventions th:last-child,
.client-related-table--animal-interventions td:last-child {
  width: 125px;
}

.animal-interventions-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.animal-interventions-heading h2 {
  margin: 0;
}

.client-related-table--invoices th:first-child,
.client-related-table--invoices td:first-child {
  width: 34%;
}

.client-related-table--invoices th:last-child,
.client-related-table--invoices td:last-child {
  width: 92px;
}

.table-action {
  display: inline-flex;
  min-height: 36px;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-2, 8px);
  padding: var(--ui-space-2, 8px) var(--ui-space-3, 12px);
  border: 1px solid rgb(var(--color-primary-rgb) / 0.3);
  border-radius: var(--ui-radius-control, 11px);
  background: var(--color-surface);
  color: var(--color-primary);
  font: inherit;
  font-size: var(--font-size-control, .76rem);
  font-weight: var(--font-weight-label, 800);
  line-height: 1.1;
  cursor: pointer;
  text-decoration: none;
  box-shadow: 0 7px 14px rgb(var(--color-text-rgb) / 0.07);
  transition: transform var(--ui-motion-control, .24s) var(--ui-ease, cubic-bezier(.22, 1, .36, 1)), box-shadow var(--ui-motion-control, .24s) ease, background-color var(--ui-motion-control, .24s) ease, border-color var(--ui-motion-control, .24s) ease, color var(--ui-motion-control, .24s) ease;
}

.table-actions {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2, 8px);
  width: max-content;
}

.table-action.table-action--icon {
  width: var(--ui-control-height, 44px);
  height: var(--ui-control-height, 44px);
  min-height: var(--ui-control-height, 44px);
  padding: var(--ui-space-2, 8px);
  flex: 0 0 auto;
  gap: 0;
}
.table-action--icon svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.table-action:hover {
  border-color: var(--color-primary-strong);
  background: var(--color-primary);
  color: var(--color-surface);
  text-decoration: none;
  transform: translateY(-2px);
  box-shadow: 0 11px 20px rgb(var(--color-primary-rgb) / 0.2);
}

.table-action:active {
  transform: translateY(0);
}

.table-action:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}

.empty-state {
  color: var(--color-text-soft);
  padding: 8px 0 2px;
}

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

.client-overview-stack {
  display: grid;
  gap: 18px;
  margin-bottom: 24px;
}

.client-contact-list {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  column-gap: 24px;
}

.client-notes-card p {
  margin-bottom: 0;
}

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

.detail-list div {
  display: grid;
  gap: 4px;
}

.detail-list dt {
  font-size: var(--font-size-label, 13px);
  color: var(--color-text-soft);
}

.detail-list dd {
  margin: 0;
}

.appointment-booking-management {
  display: grid;
  gap: 22px;
  max-width: 1080px;
  margin-inline: auto;
}

.appointment-booking-management .detail-hero {
  margin-bottom: 0;
}

.appointment-booking-management__card,
.appointment-booking-management__actions {
  display: grid;
  gap: 18px;
}

.appointment-booking-management__card .page-header {
  align-items: flex-start;
  margin: 0;
}

.appointment-booking-management__eyebrow {
  display: block;
  margin-bottom: 4px;
  color: var(--color-text-soft);
  font-size: var(--font-size-caption, .82rem);
  font-weight: var(--font-weight-label, 700);
  letter-spacing: .04em;
  text-transform: uppercase;
}

.appointment-booking-management__details {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
}

.appointment-booking-management__details > div {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 13px 14px;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  background: var(--color-surface-muted);
}

.appointment-booking-management__details dt {
  color: var(--color-text-soft);
  font-size: var(--font-size-label, .76rem);
  font-weight: var(--font-weight-label, 700);
  letter-spacing: .04em;
  text-transform: uppercase;
}

.appointment-booking-management__details dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}

.appointment-booking-management__client-note {
  white-space: pre-wrap;
}

.appointment-booking-management__details-wide {
  grid-column: span 2;
}

.appointment-booking-management__actions > h2,
.appointment-booking-management__actions > p {
  margin: 0;
}

.appointment-booking-management__actions > p {
  color: var(--color-text-soft);
}

.appointment-booking-management__button-group {
  margin-top: 0;
}

.appointment-booking-management__proposal-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 310px));
  align-items: start;
  gap: 12px;
}

.appointment-booking-management__proposal-form .field {
  width: min(100%, 310px);
}

.appointment-booking-management__proposal-form .form-actions {
  grid-column: 1 / -1;
  margin: 0;
}

.booking-proposal-form__status {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--color-text-soft);
  font-size: var(--font-size-caption, .86rem);
}

.booking-proposal-form__force {
  grid-column: 1 / -1;
  display: flex;
  align-items: flex-start;
  gap: 9px;
  max-width: 680px;
  color: var(--color-text-soft);
  font-size: var(--font-size-body, .88rem);
  line-height: 1.45;
}

.booking-proposal-form__force input {
  inline-size: 18px;
  block-size: 18px;
  margin: 1px 0 0;
  accent-color: var(--color-secondary);
}

.booking-proposal-modal {
  max-width: 760px;
  width: min(760px, calc(100vw - 28px));
}

.booking-proposal-modal__content {
  max-height: min(820px, calc(100vh - 32px));
  overflow-y: auto;
}

.booking-proposal-modal__intro {
  margin: 0;
  color: var(--color-text-soft);
  line-height: 1.5;
}

.booking-proposal-form {
  display: grid;
  gap: 14px;
}

.booking-proposal-form__days {
  margin: 0;
}

.booking-proposal-form__override {
  display: grid;
  gap: 10px;
  margin-top: 4px;
  padding: 16px;
  border: 1px solid rgb(var(--color-secondary-rgb) / .24);
  border-radius: 12px;
  background: rgb(var(--color-secondary-rgb) / .07);
}

.booking-proposal-form__override h3,
.booking-proposal-form__override p {
  margin: 0;
}

.booking-proposal-form__override h3 {
  color: var(--color-primary);
  font-size: var(--font-size-card-title, 1rem);
}

.booking-proposal-form__override p {
  color: var(--color-text-soft);
  font-size: var(--font-size-table, .86rem);
  line-height: 1.45;
}

.booking-proposal-form__override .field {
  width: min(100%, 310px);
}

.booking-proposal-modal__actions {
  margin-top: 2px;
  padding-top: 12px;
}

@media (max-width: 760px) {
  .appointment-booking-management__details {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .appointment-booking-management__details-wide {
    grid-column: 1 / -1;
  }
}

@media (max-width: 520px) {
  .appointment-booking-management__details {
    grid-template-columns: minmax(0, 1fr);
  }

  .appointment-booking-management__details-wide {
    grid-column: auto;
  }

  .appointment-booking-management__proposal-form {
    grid-template-columns: minmax(0, 1fr);
  }

  .appointment-booking-management__proposal-form .field {
    width: 100%;
  }
}

.animal-profile-panels {
  align-items: stretch;
  gap: 16px;
  grid-template-columns: minmax(260px, .78fr) minmax(0, 1.22fr);
}

.animal-profile-card {
  height: 100%;
  min-width: 0;
  overflow: hidden;
  padding: 0;
}

.animal-profile-card--identity,
.animal-profile-panels > .animal-gallery-summary {
  grid-column: 1 / -1;
}

@media (max-width: 900px) {
  .animal-profile-card {
    height: auto;
  }
}

/* Catalogue commercial des Fleurs de Bach */
.bach-catalog-page {
  --bach-catalog-ink: #314844;
  --bach-catalog-soft: rgb(var(--color-identity-rgb) / 0.09);
}

.bach-catalog-hero {
  background:
    radial-gradient(circle at 88% 18%, rgb(var(--color-secondary-rgb) / 0.2), transparent 28%),
    linear-gradient(125deg, var(--color-surface), rgb(var(--color-identity-rgb) / 0.08));
}

.bach-catalog-panel {
  overflow: hidden;
  padding: 0;
}

.bach-catalog-panel__heading {
  padding: 20px 22px 16px;
  border-bottom: 1px solid rgb(var(--color-primary-rgb) / 0.12);
  background: linear-gradient(100deg, rgb(var(--color-primary-rgb) / 0.08), transparent 72%);
}

.bach-catalog-panel__heading small,
.bach-catalog-item__details section > small,
.bach-catalog-item__facts small {
  display: block;
  color: var(--color-text-soft);
  font-size: var(--font-size-help, 0.69rem);
  font-weight: var(--font-weight-label, 850);
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.bach-catalog-panel__heading h2 {
  margin: 2px 0 0;
}

.bach-catalog-filters {
  display: grid;
  grid-template-columns: minmax(260px, 1.25fr) repeat(2, minmax(220px, 1fr));
  gap: 14px;
  padding: 18px 22px;
  background: var(--color-surface);
}

.bach-catalog-results {
  margin: 0;
  padding: 8px 22px;
  border-top: 1px solid rgb(var(--color-text-rgb) / 0.06);
  border-bottom: 1px solid rgb(var(--color-text-rgb) / 0.06);
  background: rgb(var(--color-identity-rgb) / 0.055);
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 0.78rem);
  font-weight: var(--font-weight-label, 750);
}

.bach-catalog-list {
  display: grid;
  gap: 10px;
  padding: 16px 18px 20px;
}

.bach-catalog-item {
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.13);
  border-radius: 15px 15px 15px 5px;
  background: var(--color-surface);
  box-shadow: 0 7px 18px rgb(var(--color-text-rgb) / 0.055);
}

.bach-catalog-item__summary {
  display: grid;
  grid-template-columns: 62px minmax(210px, 1.4fr) minmax(120px, 0.65fr) minmax(180px, 0.8fr) auto;
  align-items: center;
  gap: 16px;
  padding: 14px 16px;
}

.bach-catalog-item__brand {
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border-radius: 14px 14px 14px 4px;
  background: var(--color-primary-strong);
  color: var(--color-surface);
  box-shadow: 4px 4px 0 var(--color-secondary-soft);
  font-size: var(--font-size-help, 0.72rem);
  font-weight: var(--font-weight-label, 900);
  letter-spacing: 0.04em;
}

.bach-catalog-item__identity {
  min-width: 0;
}

.bach-catalog-item__identity small {
  color: var(--color-text-soft);
  font-size: var(--font-size-help, 0.72rem);
  font-weight: var(--font-weight-label, 750);
}

.bach-catalog-item__identity h3 {
  margin: 1px 0 2px;
  color: var(--bach-catalog-ink);
  font-size: var(--font-size-card-title, 1rem);
}

.bach-catalog-item__identity span,
.bach-catalog-item__format span {
  color: var(--color-text-soft);
  font-size: var(--font-size-help, 0.73rem);
}

.bach-catalog-item__species,
.bach-catalog-objectives {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.bach-catalog-item__species span,
.bach-catalog-objectives span {
  padding: 5px 9px;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.14);
  border-radius: 8px 8px 8px 3px;
  background: var(--bach-catalog-soft);
  color: var(--color-primary-strong);
  font-size: var(--font-size-caption, 0.7rem);
  font-weight: var(--font-weight-label, 800);
  white-space: nowrap;
}

.bach-catalog-objectives span {
  border-color: rgb(var(--color-secondary-rgb) / 0.2);
  background: rgb(var(--color-secondary-rgb) / 0.11);
  color: var(--color-secondary-deep);
}

.bach-catalog-item__format {
  display: grid;
  gap: 1px;
}

.bach-catalog-item__format small {
  color: var(--color-text-soft);
  font-size: var(--font-size-help, 0.65rem);
  font-weight: var(--font-weight-label, 800);
  text-transform: uppercase;
}

.bach-catalog-item__format strong {
  color: var(--color-text);
  font-size: var(--font-size-help, 0.86rem);
}

.bach-catalog-item__details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  padding: 18px 20px 20px 98px;
  border-top: 1px dashed rgb(var(--color-primary-rgb) / 0.18);
  background: linear-gradient(110deg, rgb(var(--color-identity-rgb) / 0.06), var(--color-surface));
}

.bach-catalog-item__details[hidden] {
  display: none;
}

.bach-catalog-item__details p {
  margin: 5px 0 0;
  color: var(--color-text);
  font-size: var(--font-size-table, 0.84rem);
  line-height: 1.55;
}

.bach-catalog-item__facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  grid-column: 1 / -1;
}

.bach-catalog-item__facts > div {
  padding: 10px 11px;
  border: 1px solid rgb(var(--color-text-rgb) / 0.08);
  border-radius: 10px 10px 10px 3px;
  background: rgb(var(--color-white-rgb) / 0.58);
}

.bach-catalog-item__facts strong {
  display: block;
  margin-top: 3px;
  color: var(--color-text);
  font-size: var(--font-size-table, 0.79rem);
}

.bach-catalog-item__details footer {
  display: flex;
  grid-column: 1 / -1;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 12px;
  border-top: 1px solid rgb(var(--color-text-rgb) / 0.08);
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 0.75rem);
}

@media (max-width: 1040px) {
  .bach-catalog-item__summary {
    grid-template-columns: 62px minmax(200px, 1fr) minmax(120px, 0.6fr) auto;
  }

  .bach-catalog-item__format {
    display: none;
  }
}

@media (max-width: 760px) {
  .bach-catalog-filters {
    grid-template-columns: minmax(0, 1fr);
  }

  .bach-catalog-item__summary {
    grid-template-columns: 54px minmax(0, 1fr) auto;
    gap: 12px;
  }

  .bach-catalog-item__brand {
    width: 50px;
    height: 50px;
  }

  .bach-catalog-item__species {
    grid-column: 2 / -1;
  }

  .bach-catalog-item__details {
    grid-template-columns: minmax(0, 1fr);
    padding: 16px;
  }

  .bach-catalog-item__facts {
    grid-template-columns: minmax(0, 1fr);
  }
}

.animal-profile-card__heading {
  align-items: center;
  background: linear-gradient(110deg, rgb(var(--color-primary-rgb) / .1), rgb(var(--color-identity-rgb) / .08));
  border-bottom: 1px solid rgb(var(--color-primary-rgb) / .13);
  display: flex;
  gap: 11px;
  padding: 13px 15px;
}

.animal-profile-card--follow-up .animal-profile-card__heading {
  background: linear-gradient(110deg, rgb(var(--color-secondary-rgb) / .13), rgb(var(--color-identity-rgb) / .07));
  border-bottom-color: rgb(var(--color-secondary-rgb) / .16);
}

.animal-profile-card__heading > span {
  background: var(--color-primary);
  border-radius: 10px 10px 10px 3px;
  box-shadow: 3px 3px 0 rgb(var(--color-identity-rgb) / .2);
  color: var(--color-surface);
  display: inline-grid;
  flex: 0 0 34px;
  font-size: var(--font-size-caption, .72rem);
  font-weight: var(--font-weight-label, 900);
  height: 34px;
  place-items: center;
}

.animal-profile-card--follow-up .animal-profile-card__heading > span {
  background: var(--color-secondary-strong);
  box-shadow: 3px 3px 0 rgb(var(--color-secondary-rgb) / .18);
}

.animal-profile-card__heading small {
  color: var(--color-text-soft);
  display: block;
  font-size: var(--font-size-help, .65rem);
  font-weight: var(--font-weight-label, 850);
  letter-spacing: .07em;
  text-transform: uppercase;
}

.animal-profile-card__heading h2 {
  font-size: var(--font-size-card-title, 1.08rem);
  margin: 1px 0 0;
}

.animal-profile-list {
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 12px;
}

.animal-profile-list > div {
  background: rgb(var(--color-primary-rgb) / .035);
  border: 1px solid rgb(var(--color-primary-rgb) / .09);
  border-radius: 10px 10px 10px 3px;
  min-width: 0;
  padding: 8px 9px;
}

.animal-profile-card--follow-up .animal-profile-list > div {
  background: rgb(var(--color-secondary-rgb) / .045);
  border-color: rgb(var(--color-secondary-rgb) / .11);
}
.animal-gallery-summary{min-width:0;overflow:hidden;padding:0}.animal-gallery-summary .animal-profile-card__heading>span{background:#aa6c31;box-shadow:3px 3px 0 rgb(170 108 49 / .18)}.animal-gallery-summary__link{align-items:center;color:inherit;display:flex;gap:12px;justify-content:space-between;padding:13px 15px;text-decoration:none}.animal-gallery-summary__photos{display:flex;gap:7px;min-width:0;overflow:hidden}.animal-gallery-summary__photos img{border:1px solid #dfd5cd;border-radius:8px;display:block;flex:0 0 70px;height:70px;object-fit:cover;width:70px}.animal-gallery-summary__more{align-items:center;background:#f5ede5;border:1px solid #dfc5ae;border-radius:8px;color:#704721;display:inline-flex;flex:0 0 70px;font-size:var(--font-size-table, .8rem);font-weight:var(--font-weight-label, 900);height:70px;justify-content:center;width:70px}.animal-gallery-summary__caption,.animal-gallery-summary__empty{color:#6f6670;font-size:var(--font-size-help, .76rem);font-weight:var(--font-weight-label, 800);text-align:right;white-space:nowrap}.animal-gallery-summary__link:hover,.animal-gallery-summary__link:focus-visible{background:#faf6f1}.animal-gallery-summary__link:hover .animal-gallery-summary__caption,.animal-gallery-summary__link:focus-visible .animal-gallery-summary__caption{color:#7b4c26}
@media(max-width:620px){.animal-gallery-summary__link{align-items:flex-start;flex-direction:column}.animal-gallery-summary__caption,.animal-gallery-summary__empty{text-align:left;white-space:normal}}

.animal-profile-list dt {
  font-size: var(--font-size-label, .67rem);
  font-weight: var(--font-weight-label, 800);
  letter-spacing: .025em;
}

.animal-profile-list dd {
  color: var(--color-text);
  font-size: var(--font-size-table, .84rem);
  font-weight: var(--font-weight-label, 650);
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.animal-profile-list__wide {
  grid-column: 1 / -1;
}

.page-header__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-3, 12px);
  align-items: center;
}

.section-nested {
  margin: 24px 0;
  box-shadow: none;
}

.annotation-editor {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(280px, 0.8fr);
  align-items: start;
  gap: 24px;
  margin-bottom: 24px;
}

.annotation-editor--3d {
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
}

.annotation-workspace {
  display: grid;
  min-width: 0;
  gap: 10px;
}

.massage-plate-viewer {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  display: grid;
  gap: 16px;
}

.massage-plate-viewer__header {
  min-width: 0;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
}

.massage-plate-viewer__header > div {
  min-width: 0;
}

.massage-plate-viewer__header h2 {
  margin: 8px 0 4px;
}

.massage-plate-viewer__header p {
  margin: 0;
  color: var(--color-text-muted);
}

.massage-plate-viewer__active-label {
  flex: 0 0 auto;
  color: var(--color-primary);
  font-size: var(--font-size-label, 14px);
  white-space: nowrap;
}

.massage-plate-viewer__choices {
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.massage-plate-viewer__choice {
  min-height: 42px;
  width: auto;
  max-width: 100%;
  box-sizing: border-box;
  padding: 9px 16px;
  border: 1px solid color-mix(in srgb, var(--color-primary) 28%, transparent);
  border-radius: 10px;
  background: var(--color-surface);
  color: var(--color-primary);
  font: inherit;
  font-weight: var(--font-weight-label, 700);
  cursor: pointer;
  transition: transform 160ms ease, border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

.massage-plate-viewer__choice:hover {
  transform: translateY(-1px);
  border-color: color-mix(in srgb, var(--color-primary) 58%, transparent);
  box-shadow: 0 8px 16px color-mix(in srgb, var(--color-primary) 10%, transparent);
}

.massage-plate-viewer__choice:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--color-accent) 42%, transparent);
  outline-offset: 2px;
}

.massage-plate-viewer__choice.is-active {
  border-color: var(--color-primary);
  background: var(--color-primary);
  color: var(--color-surface);
}

.massage-plate-viewer__figure {
  position: relative;
  overflow: hidden;
  min-width: 0;
  max-width: 100%;
  min-height: clamp(390px, 56vw, 690px);
  box-sizing: border-box;
  margin: 0;
  padding: clamp(12px, 2vw, 24px);
  display: grid;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--color-primary) 20%, transparent);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 18px 42px rgba(37, 83, 85, 0.08);
}

.massage-plate-viewer__figure img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  max-height: 650px;
  object-fit: contain;
}

.massage-plate-viewer__canvas {
  position: relative;
  display: grid;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  place-items: center;
  cursor: zoom-in;
  touch-action: none;
  transform: translate(var(--massage-plate-pan-x, 0), var(--massage-plate-pan-y, 0)) scale(var(--massage-plate-zoom, 1));
  transform-origin: center center;
  transition: transform 120ms ease;
  will-change: transform;
}

.massage-plate-viewer__canvas.is-zoomed {
  cursor: grab;
}

.massage-plate-viewer__canvas.is-dragging {
  cursor: grabbing;
  transition: none;
}

.massage-plate-viewer__zoom-controls {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 4;
  display: inline-flex;
  gap: 6px;
  padding: 5px;
  border: 1px solid color-mix(in srgb, var(--color-primary) 18%, transparent);
  border-radius: 13px;
  background: color-mix(in srgb, var(--color-surface) 94%, transparent);
  box-shadow: 0 10px 22px color-mix(in srgb, var(--color-primary) 12%, transparent);
}

.massage-plate-viewer__zoom-controls button {
  display: inline-grid;
  place-items: center;
  width: 36px;
  height: 36px;
  box-sizing: border-box;
  border: 1px solid color-mix(in srgb, var(--color-primary) 28%, transparent);
  border-radius: 10px;
  background: var(--color-surface);
  color: var(--color-primary);
  cursor: pointer;
  font: inherit;
  font-size: var(--font-size-control, 20px);
  font-weight: var(--font-weight-label, 800);
  line-height: 1;
  transition: transform 140ms ease, background-color 140ms ease, color 140ms ease, border-color 140ms ease;
}

.massage-plate-viewer__zoom-controls button:hover,
.massage-plate-viewer__zoom-controls button:focus-visible {
  border-color: var(--color-primary);
  background: var(--color-primary);
  color: var(--color-surface);
  outline: 0;
  transform: translateY(-1px);
}

.massage-plate-viewer__tool-stack {
  position: absolute;
  top: 64px;
  right: 12px;
  z-index: 4;
  width: min(300px, calc(100% - 24px));
  pointer-events: auto;
  transition: transform 0.34s cubic-bezier(0.22, 1, 0.36, 1);
}

.massage-plate-viewer__tool-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 30px;
  margin: 0 0 6px auto;
  padding: 0;
  border: 1px solid color-mix(in srgb, var(--color-primary) 34%, transparent);
  border-right: 0;
  border-radius: 12px 0 0 12px;
  background: color-mix(in srgb, var(--color-surface) 94%, transparent);
  color: var(--color-primary);
  box-shadow: -8px 10px 22px color-mix(in srgb, var(--color-primary) 12%, transparent);
  cursor: pointer;
  backdrop-filter: blur(10px);
  transition: background-color 160ms ease, color 160ms ease, width 0.34s cubic-bezier(0.22, 1, 0.36, 1);
}

.massage-plate-viewer__tool-toggle:hover,
.massage-plate-viewer__tool-toggle:focus-visible {
  background: var(--color-primary);
  color: var(--color-surface);
  outline: 0;
}

.massage-plate-viewer__tool-icon {
  position: relative;
  width: 16px;
  height: 16px;
  display: block;
  transition: transform 0.34s cubic-bezier(0.22, 1, 0.36, 1);
}

.massage-plate-viewer__tool-icon span {
  position: absolute;
  top: 3px;
  width: 8px;
  height: 8px;
  border-top: 1.8px solid currentColor;
  border-right: 1.8px solid currentColor;
  transform: rotate(45deg);
}

.massage-plate-viewer__tool-icon span:first-child { left: 0; }
.massage-plate-viewer__tool-icon span:last-child { left: 6px; }

.massage-plate-viewer__tool-panel {
  display: grid;
  gap: 9px;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-height: min(360px, calc(100vh - 220px));
  padding: 12px;
  border: 1px solid color-mix(in srgb, var(--color-primary) 20%, transparent);
  border-radius: 15px;
  background: color-mix(in srgb, var(--color-surface) 96%, transparent);
  box-shadow: 0 18px 38px color-mix(in srgb, var(--color-primary) 14%, transparent);
  backdrop-filter: blur(12px);
  transition: opacity 160ms ease;
}

.massage-plate-viewer__tool-panel header {
  display: grid;
  gap: 1px;
  min-width: 0;
}

.massage-plate-viewer__tool-panel header span {
  color: var(--color-accent-strong, #8f4f39);
  font-size: var(--font-size-caption, 11px);
  font-weight: var(--font-weight-label, 850);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.massage-plate-viewer__tool-panel header strong {
  color: var(--color-primary);
  font-size: var(--font-size-body, 17px);
}

.massage-plate-viewer__search {
  display: block;
  min-width: 0;
}

.massage-plate-viewer__search .input {
  width: 100%;
  min-height: 38px;
  box-sizing: border-box;
  padding-block: var(--ui-space-2, 8px);
}

.massage-plate-viewer__search-list {
  display: grid;
  gap: 5px;
  min-width: 0;
  max-height: 210px;
  overflow: auto;
  padding-right: 3px;
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, var(--color-primary) 45%, transparent) transparent;
}

.massage-plate-viewer__search-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 7px;
  align-items: center;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding: 8px 9px;
  border: 1px solid color-mix(in srgb, var(--color-primary) 15%, transparent);
  border-radius: 10px;
  background: var(--color-surface);
  color: var(--color-text);
  cursor: pointer;
  font: inherit;
  text-align: left;
  transition: background-color 140ms ease, border-color 140ms ease, transform 140ms ease;
}

.massage-plate-viewer__search-item:hover,
.massage-plate-viewer__search-item:focus-visible {
  border-color: color-mix(in srgb, var(--color-primary) 42%, transparent);
  background: color-mix(in srgb, var(--color-primary) 7%, var(--color-surface));
  outline: 0;
  transform: translateY(-1px);
}

.massage-plate-viewer__search-item.is-selected {
  border-color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 11%, var(--color-surface));
}

.massage-plate-viewer__search-item span,
.massage-plate-viewer__search-item small {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.massage-plate-viewer__search-item span {
  color: var(--color-primary);
  font-weight: var(--font-weight-label, 800);
}

.massage-plate-viewer__search-item small {
  color: var(--color-text-muted);
  font-size: var(--font-size-help, 11px);
  font-style: italic;
}

.massage-plate-viewer__search-empty {
  margin: 0;
  color: var(--color-text-muted);
  font-size: var(--font-size-table, 13px);
}

.massage-plate-viewer__tool-stack.is-collapsed {
  transform: translateX(calc(100% - 64px));
}

.massage-plate-viewer__tool-stack.is-collapsed .massage-plate-viewer__tool-icon {
  transform: rotate(180deg);
}

.massage-plate-viewer__tool-stack.is-collapsed .massage-plate-viewer__tool-toggle {
  position: absolute;
  top: 0;
  left: 0;
  width: 64px;
  height: 44px;
  margin: 0;
  border-right: 1px solid color-mix(in srgb, var(--color-primary) 34%, transparent);
  border-radius: 12px;
}

.massage-plate-viewer__tool-stack.is-collapsed .massage-plate-viewer__tool-panel {
  opacity: 0;
  pointer-events: none;
}

.massage-plate-viewer__canvas > img,
.massage-plate-viewer__zones {
  grid-area: 1 / 1;
}

.massage-plate-viewer__zones {
  z-index: 2;
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 650px;
  overflow: visible;
  pointer-events: none;
}

.massage-plate-viewer__zones[hidden] {
  display: none;
}

.massage-plate-viewer__zone {
  fill: transparent;
  stroke: transparent;
  stroke-width: 1.5;
  vector-effect: non-scaling-stroke;
  pointer-events: auto;
  cursor: pointer;
  outline: none;
  -webkit-tap-highlight-color: transparent;
  transition: fill 140ms ease, stroke 140ms ease, stroke-width 140ms ease;
}

.massage-plate-viewer__zone:focus {
  outline: none;
}

.massage-plate-viewer__zone:hover,
.massage-plate-viewer__zone:focus-visible {
  fill: color-mix(in srgb, var(--massage-zone-color, #3F8F5A) 40%, transparent);
  stroke: var(--massage-zone-color, #3F8F5A);
  stroke-width: 2.5;
}

.massage-plate-viewer__zone.is-selected {
  fill: color-mix(in srgb, var(--massage-zone-color, #3F8F5A) var(--massage-zone-opacity, 80%), transparent);
  stroke: var(--massage-zone-color, #3F8F5A);
  stroke-width: 3;
}

.massage-plate-viewer__zone.is-annotated {
  fill: color-mix(in srgb, var(--massage-zone-color, #3F8F5A) 46%, transparent);
  stroke: var(--massage-zone-color, #3F8F5A);
  stroke-width: 2.25;
}

.massage-plate-viewer__zone.is-annotated.is-selected {
  fill: color-mix(in srgb, var(--massage-zone-color, #3F8F5A) var(--massage-zone-opacity, 80%), transparent);
  stroke-width: 3;
}

.massage-plate-viewer__zone-details {
  min-width: 0;
  max-width: min(620px, 100%);
  box-sizing: border-box;
  display: grid;
  gap: 3px;
  padding: 13px 16px;
  border: 1px solid color-mix(in srgb, var(--color-accent) 30%, transparent);
  border-radius: 12px;
  background: color-mix(in srgb, var(--color-accent) 7%, var(--color-surface));
}

.massage-plate-viewer__zone-details > span {
  color: var(--color-accent-strong, #8f4f39);
  font-size: var(--font-size-table, 12px);
  font-weight: var(--font-weight-label, 800);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.massage-plate-viewer__zone-details > strong,
.massage-plate-viewer__zone-details > small {
  overflow-wrap: anywhere;
}

.massage-plate-viewer__zone-details > small {
  color: var(--color-text-muted);
  font-style: italic;
}

.massage-plate-viewer__empty {
  box-sizing: border-box;
  padding: 28px;
}

.massage-plate-session {
  width: min(1180px, 100%);
  margin-inline: auto;
}

.massage-reference-management-layout {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
  gap: clamp(18px, 3vw, 28px);
  align-items: start;
}

.massage-plate-annotation-layout {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
  gap: clamp(18px, 3vw, 28px);
  align-items: start;
}

.massage-plate-annotation-panel {
  min-width: 0;
  display: grid;
  gap: 18px;
  position: sticky;
  top: 20px;
}

.massage-plate-annotation-editor {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid color-mix(in srgb, var(--color-primary) 18%, transparent);
  border-radius: 16px;
  background: var(--color-surface);
  box-shadow: 0 14px 30px color-mix(in srgb, var(--color-primary) 10%, transparent);
}

.massage-plate-annotation-editor h2 {
  margin: 0;
  color: var(--color-primary);
  font-size: var(--font-size-section-title, 20px);
}

.massage-reference-editor {
  display: grid;
  gap: 6px;
  padding: 8px;
  border: 1px solid color-mix(in srgb, var(--color-primary) 16%, transparent);
  border-radius: 14px;
  background: color-mix(in srgb, var(--color-primary) 4%, var(--color-surface));
}

.massage-reference-editor--settings {
  position: sticky;
  top: var(--questionnaire-sticky-top, 96px);
  box-shadow: 0 16px 34px color-mix(in srgb, var(--color-primary) 10%, transparent);
  z-index: 12;
}

.massage-reference-editor__header {
  display: grid;
  gap: 3px;
}

.massage-reference-editor__header h2 {
  margin: 0;
  color: var(--color-primary);
  font-size: var(--font-size-section-title, 16px);
}

.massage-reference-editor--settings .field {
  gap: 3px;
}

.massage-reference-editor--settings .field > span,
.massage-reference-editor--settings .annotation-point-color-control > span {
  font-size: var(--font-size-label, 12px);
}

.massage-reference-editor--settings .input {
  min-height: 34px;
  padding-block: 6px;
}

.massage-reference-editor--settings textarea.input {
  line-height: 1.35;
  min-height: 44px;
  resize: vertical;
}

.massage-reference-editor--settings .badge {
  font-size: var(--font-size-caption, 11px);
  padding: 5px var(--ui-space-2, 8px);
}

.massage-reference-editor__style {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(130px, 1fr) 92px;
  gap: 6px;
  align-items: stretch;
}

.massage-reference-editor__style .annotation-point-color-control {
  align-items: center;
  box-sizing: border-box;
  display: grid;
  gap: 4px;
  grid-template-columns: minmax(0, 1fr) 40px;
  min-height: 52px;
  padding: 7px 8px;
}

.massage-reference-editor__style .annotation-point-color-control > span {
  min-width: 0;
  white-space: nowrap;
}

.massage-reference-editor__style .annotation-point-color-control input[type="color"] {
  align-self: center;
  height: 32px;
  justify-self: end;
  width: 38px;
}

.massage-reference-editor__opacity {
  align-content: center;
  box-sizing: border-box;
  display: grid;
  gap: 4px;
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 52px;
}

.massage-reference-editor__opacity > span {
  grid-column: 1 / -1;
}

.massage-reference-editor__opacity .input {
  min-height: 32px;
  min-width: 0;
  padding: 5px var(--ui-space-2, 8px);
  text-align: center;
}

.massage-reference-editor__opacity small {
  align-self: center;
  color: var(--color-text-muted);
  font-size: var(--font-size-help, 12px);
}

.massage-reference-editor--settings .annotation-bottom-actions {
  gap: 8px;
  margin-top: 2px;
}

.massage-reference-editor--settings .annotation-bottom-actions .btn {
  min-height: 38px;
  padding: 8px 12px;
}

.annotation-item.massage-plate-annotation-item {
  width: 100%;
  grid-template-columns: max-content minmax(0, 1fr);
  text-align: left;
  color: inherit;
  font: inherit;
}

.massage-plate-annotation-item .annotation-item__meta {
  display: grid;
  gap: 2px;
}

.massage-plate-annotation-item .annotation-item__meta small {
  color: var(--color-text-muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.massage-plate-session__notice {
  margin: 16px 0 0;
  padding: 14px 16px;
  border-left: 4px solid var(--color-accent);
  border-radius: 8px;
  background: color-mix(in srgb, var(--color-accent) 8%, var(--color-surface));
  color: var(--color-text-muted);
}

@media (max-width: 760px) {
  .massage-plate-viewer__header {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
  }

  .massage-plate-viewer__active-label {
    white-space: normal;
  }

  .massage-plate-viewer__choices {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .massage-plate-viewer__choice {
    width: 100%;
  }

  .massage-plate-viewer__figure {
    min-height: 300px;
    padding: 10px;
  }

  .massage-plate-viewer__tool-stack {
    top: 58px;
    right: 8px;
    width: min(270px, calc(100% - 16px));
  }

  .massage-plate-viewer__search-list {
    max-height: 170px;
  }

  .massage-plate-annotation-layout {
    grid-template-columns: 1fr;
  }

  .massage-reference-management-layout {
    grid-template-columns: 1fr;
  }

  .massage-plate-annotation-panel {
    position: static;
  }
}

.annotation-session-settings {
  grid-template-columns: minmax(0, 1.4fr) minmax(220px, 0.6fr);
}

.annotation-board {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  min-height: 460px;
  max-height: 640px;
  border: 1px solid var(--color-border);
  border-radius: 18px;
  background: var(--color-identity-faint);
  overflow: hidden;
  cursor: crosshair;
  user-select: none;
}

.annotation-board--3d {
  aspect-ratio: 16 / 10;
  min-height: 600px;
  max-height: none;
  cursor: default;
}

.annotation-board--3d::before {
  display: none;
}

.annotation-board--3d .horse-3d-shell--session {
  position: absolute;
  inset: 0;
  border: 0;
  border-radius: inherit;
}

.annotation-board--3d .horse-3d-viewer {
  height: 100%;
  min-height: 0;
}

.annotation-board--3d .annotation-board__hint {
  right: 310px;
  bottom: 64px;
  left: 14px;
  z-index: 3;
  border-radius: 12px;
  font-size: var(--font-size-help, 12px);
}

.annotation-editor--3d .annotation-sidebar {
  display: grid;
  grid-template-columns: minmax(260px, 0.65fr) minmax(0, 1.35fr);
  gap: 18px;
  max-height: none;
  padding: 14px;
  overflow: visible;
  border: 1px solid var(--color-border);
  border-radius: 16px;
  background: var(--color-surface);
}

.annotation-editor--3d .annotation-sidebar > section {
  grid-column: 1 / -1;
}

.annotation-board::before {
  content: "";
  position: absolute;
  inset: 18px;
  border: 1px dashed rgba(31, 41, 55, 0.16);
  border-radius: 14px;
  pointer-events: none;
}

.annotation-stage {
  position: absolute;
  inset: 18px;
  overflow: hidden;
}

.annotation-canvas {
  position: absolute;
  inset: 0;
}

.annotation-board__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  z-index: 0;
  opacity: 0.96;
  pointer-events: none;
}

.annotation-overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
}

.annotation-line {
  position: absolute;
  z-index: 1;
  height: 4px;
  transform-origin: left center;
  border-radius: 999px;
  box-shadow: 0 3px 10px rgba(31, 41, 55, 0.18);
  pointer-events: none;
}

.annotation-board__hint {
  position: absolute;
  left: 24px;
  bottom: 20px;
  z-index: 1;
  margin: 0;
  color: #57534e;
  font-size: var(--font-size-help, 14px);
  background: rgba(255, 253, 248, 0.88);
  padding: 6px 10px;
  border-radius: 999px;
  pointer-events: none;
}

.annotation-dot {
  position: absolute;
  z-index: 1;
  width: 8px;
  height: 8px;
  margin-left: -4px;
  margin-top: -4px;
  border: 2px solid #fff;
  border-radius: 999px;
  box-shadow: 0 4px 12px rgba(31, 41, 55, 0.2);
  pointer-events: none;
}

.shiatsu-point-dot {
  background: var(--color-primary);
  color: var(--color-primary);
  pointer-events: auto;
  cursor: pointer;
  border: 1px solid #fff;
  padding: 0;
  overflow: visible;
}

.shiatsu-point-dot--current {
  width: 12px;
  height: 12px;
  margin-left: -6px;
  margin-top: -6px;
  background: var(--color-secondary);
  box-shadow: 0 0 0 3px rgb(var(--color-secondary-rgb) / 0.24);
}

.shiatsu-point-dot--selected {
  width: 12px;
  height: 12px;
  margin-left: -6px;
  margin-top: -6px;
  box-shadow: 0 5px 14px rgba(31, 41, 55, 0.22);
}

.shiatsu-point-dot--selected::after {
  content: "";
  position: absolute;
  inset: -9px;
  border: 2px solid currentColor;
  border-radius: inherit;
  opacity: 0.34;
  pointer-events: none;
  animation: shiatsu-selected-point-halo 1.8s ease-out infinite;
}

@keyframes shiatsu-selected-point-halo {
  0% {
    opacity: 0.36;
    transform: scale(0.72);
  }

  100% {
    opacity: 0;
    transform: scale(1.45);
  }
}

.annotation-view-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  color: #57534e;
  font-size: var(--font-size-label, 14px);
}

.annotation-model-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 18px;
}

.annotation-model-meta .annotation-view-label {
  margin: 0;
}

.annotation-sidebar {
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-self: start;
  max-height: 640px;
  overflow: auto;
  padding-right: 4px;
}

.annotation-list {
  display: grid;
  gap: 12px;
}

.annotation-editor--3d .annotation-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.annotation-list--stimulation {
  align-items: start;
}

.annotation-list__stimulation-group,
.annotation-list__stimulation-items {
  display: grid;
  min-width: 0;
}

.annotation-list__stimulation-group {
  container: annotation-points / inline-size;
  align-content: start;
  gap: 8px;
}

.annotation-list__stimulation-items {
  gap: 8px;
}

.annotation-list__stimulation-title {
  margin: 0;
  color: var(--color-primary-strong);
  font-size: var(--font-size-label, 14px);
  font-weight: var(--font-weight-label, 700);
  line-height: 1.2;
}

.annotation-list__stimulation-group--tonification .annotation-list__stimulation-title {
  color: var(--color-secondary-strong);
}

.annotation-list__stimulation-empty {
  margin: 0;
  padding: 11px 12px;
  border: 1px dashed rgb(var(--color-text-rgb) / 0.18);
  border-radius: var(--ui-radius-field, 8px);
  color: var(--color-text-soft);
  font-size: var(--font-size-help, 12px);
}

.annotation-item {
  display: grid;
  grid-template-columns: max-content max-content minmax(0, 1fr) max-content;
  align-items: center;
  gap: 10px 14px;
  border: 0;
  border-radius: 14px;
  padding: 8px 10px 8px 14px;
  background: rgb(var(--color-primary-rgb) / 0.09);
  box-shadow: inset 4px 0 0 var(--annotation-item-color, var(--color-primary));
  cursor: pointer;
  transition: transform 0.52s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.52s cubic-bezier(0.22, 1, 0.36, 1),
    background 0.48s ease, box-shadow 0.48s ease;
  will-change: transform;
}

.annotation-item:nth-child(even) {
  background: rgb(var(--color-identity-rgb) / 0.12);
}

.annotation-item:hover {
  transform: scale(1.008);
  filter: drop-shadow(0 8px 12px color-mix(in srgb, var(--annotation-item-color, var(--color-primary)) 22%, transparent));
  background: var(--color-surface);
  box-shadow: inset 4px 0 0 var(--annotation-item-color, var(--color-primary)),
    inset 0 1px 0 color-mix(in srgb, var(--annotation-item-color, var(--color-primary)) 28%, transparent),
    inset 0 -1px 0 color-mix(in srgb, var(--annotation-item-color, var(--color-primary)) 28%, transparent);
}

.annotation-item.is-selected {
  box-shadow: inset 4px 0 0 var(--annotation-item-color, var(--color-primary)),
    0 0 0 3px color-mix(in srgb, var(--annotation-item-color, var(--color-primary)) 24%, transparent),
    var(--shadow-xs);
  transform: translateY(-1px);
}

.annotation-item__meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  white-space: nowrap;
}

.annotation-item__meta strong {
  overflow: hidden;
  color: var(--color-text);
  font-size: var(--font-size-help, 12px);
  text-overflow: ellipsis;
}

.annotation-item__meta span {
  color: var(--color-text-soft);
  font-size: var(--font-size-help, 11px);
}

.annotation-item__comment {
  min-width: 0;
  margin: 0;
  color: var(--color-text-soft);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.annotation-item__badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  overflow: hidden;
  padding: 5px 7px;
  border-radius: 999px;
  background: var(--color-secondary-soft);
  color: var(--color-secondary-strong);
  font-size: var(--font-size-caption, 10px);
  font-weight: var(--font-weight-label, 800);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.annotation-item > .btn {
  min-height: 30px;
  padding: 5px 8px;
  border-radius: 9px;
  white-space: nowrap;
  font-size: var(--font-size-control, 11px);
}

@container annotation-points (max-width: 560px) {
  .annotation-list--stimulation .annotation-item {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .annotation-list--stimulation .annotation-item__meta,
  .annotation-list--stimulation .annotation-item__comment,
  .annotation-list--stimulation .annotation-item__badge {
    min-width: 0;
    white-space: normal;
  }

  .annotation-list--stimulation .annotation-item__comment {
    overflow: visible;
    text-overflow: clip;
    overflow-wrap: anywhere;
  }
}

@media (max-width: 720px) {
  .annotation-editor--3d .annotation-list {
    grid-template-columns: minmax(0, 1fr);
  }

  .annotation-item {
    grid-template-columns: max-content max-content minmax(120px, 1fr) max-content;
    gap: 8px 10px;
    padding: 10px;
  }
}

.report-image-annotation-modal {
    padding: clamp(10px, 1.8vw, 24px);
}

.report-image-annotation-modal .report-image-annotation-modal__panel {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    height: min(94dvh, 960px);
    max-width: min(1500px, 100%);
    overflow: hidden;
    padding: 0;
    width: 100%;
}

.report-image-annotation-modal__header {
    background: var(--color-surface);
    border-bottom: 1px solid var(--color-border);
    padding: 12px 16px;
}

.report-image-annotation-modal__header > div {
    display: grid;
    gap: 2px;
}

.report-image-annotation-modal__header small {
    color: var(--color-secondary-deep);
    font-size: .67rem;
    font-weight: 800;
    letter-spacing: .08em;
}

.report-image-annotation-modal__content {
    background: var(--color-surface-soft);
    display: grid;
    min-height: 0;
    position: relative;
}

.report-image-annotation-modal__content > p {
    align-self: center;
    color: var(--color-text-soft);
    grid-area: 1 / 1;
    justify-self: center;
    margin: 0;
}

.report-image-annotation-modal__content > .report-image-annotation-modal__error {
    color: var(--color-danger);
    font-weight: 750;
}

.report-image-annotation-modal__content iframe {
    background: var(--color-bg);
    border: 0;
    grid-area: 1 / 1;
    height: 100%;
    min-height: 0;
    opacity: 0;
    width: 100%;
}

.report-image-annotation-modal__content.is-ready > p {
    display: none;
}

.report-image-annotation-modal__content.is-ready iframe {
    opacity: 1;
}

.report-image-annotation-modal__content.has-error > [data-report-image-annotation-loading] {
    display: none;
}

.report-annotation-embedded-body {
    background: var(--color-bg);
    margin: 0;
    min-height: 100dvh;
}

.image-annotation-page--embedded {
    box-sizing: border-box;
    min-height: 100dvh;
    padding: 10px;
    width: 100%;
}

.image-annotation-page--embedded .image-annotation-workspace {
    min-height: calc(100dvh - 20px);
}

@media (max-width: 720px) {
    .report-image-annotation-modal {
        padding: 0;
    }

    .report-image-annotation-modal .report-image-annotation-modal__panel {
        border-radius: 0;
        height: 100dvh;
        max-height: none;
        max-width: none;
    }

    .image-annotation-page--embedded {
        padding: 0;
    }

    .image-annotation-page--embedded .image-annotation-workspace {
        border: 0;
        border-radius: 0;
        min-height: 100dvh;
    }
}

.table-action.table-action--trash{align-items:center;background:#fbefed;border-color:#e3c0bb;border-radius:var(--ui-radius-control, 9px);box-sizing:border-box;color:#9a433b;display:inline-flex;flex:0 0 32px;gap:0;height:32px;justify-content:center;min-height:32px;padding:5px;width:32px}.table-action.table-action--trash svg{display:block;fill:none;flex:0 0 17px;height:17px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8;width:17px}.table-action.table-action--trash:hover,.table-action.table-action--trash:focus-visible{background:#9a433b;border-color:#9a433b;color:#fff}
.clients-table .table-action--archive{align-items:center;background:#f8eee7;border-color:#dfbda8;color:#94522f;display:inline-flex;height:31px;justify-content:center;padding:5px;width:32px}.clients-table .table-action--archive svg{fill:none;height:17px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8;width:17px}.clients-table .table-action--archive:hover,.clients-table .table-action--archive:focus-visible{background:#b76132;border-color:#b76132;color:#fff}.animal-meta-badge--archived{background:#eee9e5;color:#665c55}.app-confirm-modal__field{color:#554c57;display:grid;font-size:var(--font-size-label, .74rem);font-weight:var(--font-weight-label, 850);gap:6px;margin-top:var(--ui-space-3, 12px)}.app-confirm-modal__field>span{color:#7a717c;font-size:var(--font-size-label, .68rem);font-weight:var(--font-weight-label, 600)}.app-confirm-modal__field .input{min-height:42px;width:100%}
.client-meta-badge--archived{background:#eee9e5;border-color:#d2c8c0;color:#665c55}.animal-archive-notice{background:#f7eee7;border:1px solid #dfc4b2;color:#70472f;margin-top:14px}

.animal-profile-edit-request{margin-top:var(--ui-space-5,20px);padding:0;overflow:hidden;border:2px solid var(--color-secondary-strong);background:var(--color-surface);box-shadow:8px 10px 0 var(--color-secondary-soft),var(--shadow-accent)}
.animal-profile-edit-request__header{background:var(--color-secondary);padding:var(--ui-space-4,16px) var(--ui-space-6,24px)}
.animal-profile-edit-request h2{margin:0;color:var(--color-surface);font-size:var(--font-size-section-title)}
.animal-profile-edit-request__body{display:grid;gap:var(--ui-space-4,16px);padding:var(--ui-space-5,20px) var(--ui-space-6,24px) var(--ui-space-6,24px)}
.animal-profile-edit-request p{margin:0;max-width:68ch;color:var(--color-text);line-height:1.55}
.animal-profile-edit-request__actions{display:flex;flex-wrap:wrap;gap:var(--ui-space-3,12px)}

.invoice-template-catalog { display:grid; gap:18px;scroll-margin-top:100px; }
.invoice-template-catalog .invoice-number-settings__heading { align-items:center; grid-template-columns:auto minmax(0,1fr) auto; }
.invoice-template-groups { display:grid;gap:18px;grid-template-columns:minmax(0,1fr);min-width:0; }
.invoice-template-group { border:1px solid #d7dedb;border-radius:16px;box-sizing:border-box;display:grid;gap:14px;min-width:0;padding:18px; }
.invoice-template-group>header { align-items:center;display:flex;gap:14px;justify-content:space-between;min-width:0; }
.invoice-template-group>header>div { min-width:0; }
.invoice-template-group>header small { color:#6f7975;font-size:var(--font-size-help, .72rem);font-weight:var(--font-weight-label, 850);letter-spacing:.05em;text-transform:uppercase; }
.invoice-template-group>header h3 { color:#2f5758;font-size:var(--font-size-card-title, 1.2rem);margin:3px 0 0; }
.invoice-template-group>p { color:#665f5a;margin:0;max-width:820px; }
.invoice-template-group--system { background:#fff4e8;border-color:#e9c7ad; }
.invoice-template-group--system>header h3 { color:#8b4f2d; }
.invoice-template-group--system>header .badge { background:#9c5931;color:#fff; }
.invoice-template-group--personal { background:#f1f7f5;border-color:#bfd5cf; }
.invoice-template-group--personal>header .badge { background:#397777;color:#fff; }
.invoice-template-index-page { display: grid; gap: var(--ui-space-5); }
.invoice-template-index-page > .hero-card { margin-bottom: 0; }
.invoice-template-index-page > .subscription-upgrade-notice,
.invoice-template-index-page > .invoice-template-catalog { box-sizing: border-box; justify-self: center; width: min(100%, 52rem); max-width: 52rem; margin-inline: auto; }
.invoice-template-index-page .invoice-template-catalog { container-type: inline-size; border-top: 4px solid var(--color-secondary-strong); box-shadow: var(--ui-shadow-card-crisp); }
.invoice-template-index-page .invoice-number-settings__heading p { font-size: var(--font-size-body, .875rem); }
.invoice-template-index-page .invoice-template-group { gap: var(--ui-space-3); padding: var(--ui-space-4); border: 1px solid var(--color-border); border-top: 4px solid var(--color-highlight); border-radius: var(--ui-radius-card); background: var(--color-surface); box-shadow: var(--ui-shadow-card-crisp); }
.invoice-template-index-page .invoice-template-group--personal { border-top-color: var(--color-primary); }
.invoice-template-index-page .invoice-template-group > header { gap: var(--ui-space-3); }
.invoice-template-index-page .invoice-template-card { min-width: 0; grid-template-columns: 100px minmax(0, 1fr); gap: var(--ui-space-3); border-color: var(--color-border); box-shadow: none; }
.invoice-template-index-page .invoice-template-card__body { min-width: 0; }
.invoice-template-index-page .invoice-template-card__body > div { flex-wrap: wrap; justify-content: flex-start; }
@container (max-width: 560px) { .invoice-template-index-page .invoice-template-list { grid-template-columns: minmax(0, 1fr); } }
.invoice-template-list { display:grid; gap:14px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.invoice-template-card { background:#fff;border:1px solid #ddd6d0;border-left:5px solid var(--invoice-template-card-accent,#c96f3d);border-radius:14px;box-shadow:0 6px 18px rgba(49,42,38,.07);display:grid;gap:14px;grid-template-columns:120px minmax(0,1fr);padding:14px; }
.invoice-template-card--system { background:#fffdf9; }
.invoice-template-card__preview { background:#fbfaf8;border:1px solid #e1dad5;border-radius:9px;display:grid;gap:7px;min-height:138px;padding:13px; }
.invoice-template-card__preview span { color:var(--invoice-template-card-accent);font-size:var(--font-size-table, .72rem);font-weight:var(--font-weight-label, 900);letter-spacing:.08em; }
.invoice-template-card__preview i { background:#dcd6d2;border-radius:2px;display:block;height:5px; }
.invoice-template-card__preview i:nth-of-type(2){width:74%}.invoice-template-card__preview i:nth-of-type(3){width:88%}
.invoice-template-card__preview strong { align-self:end;color:#332e2b;text-align:right; }
.invoice-template-card__body>div { align-items:center;display:flex;gap:9px;justify-content:space-between; }
.invoice-template-card__body h3 { margin:10px 0 5px; }.invoice-template-card__body p{color:#716762;margin:0}.invoice-template-card__body small{color:#847a74;font-weight:var(--font-weight-label, 700)}
.invoice-template-card__actions { align-items:center;border-top:1px solid #ece7e3;display:flex;flex-wrap:wrap;gap:7px;grid-column:1/-1;padding-top:11px; }
.invoice-template-card__actions form{margin:0}
.invoice-template-create-page { display:grid;gap:22px; }
.invoice-template-create-card { display:grid;gap:18px; }
.invoice-template-create-form { display:grid;gap:16px;grid-template-columns:repeat(12,minmax(0,1fr));max-width:900px;min-width:0; }
.invoice-template-create-form>.field { grid-column:span 5;min-width:0; }
.invoice-template-create-form>.invoice-template-create-form__description { grid-column:span 7; }
.invoice-template-create-form textarea { box-sizing:border-box;max-width:100%;min-width:0;resize:vertical;width:100%; }
.invoice-template-create-form__actions { grid-column:1/-1;margin-top:2px; }
.invoice-template-editor__settings { align-items:end;display:grid;gap:12px;grid-template-columns:1fr 1.4fr minmax(190px,.55fr) minmax(170px,.5fr) auto;padding:14px; }
.invoice-template-editor__settings>label{display:grid;gap:6px;min-width:0}.invoice-template-editor__settings>label>span{color:#675d58;font-size:var(--font-size-label, .72rem);font-weight:var(--font-weight-label, 850);text-transform:uppercase}.invoice-template-editor__settings input,.invoice-template-editor__settings select{box-sizing:border-box;min-width:0;width:100%}
.invoice-template-color>div{display:grid;gap:7px;grid-template-columns:42px minmax(0,1fr)}.invoice-template-color input[type=color]{height:42px;padding:3px}
.invoice-template-workspace { align-items:start;display:grid;gap:22px;grid-template-columns:310px minmax(0,1fr); }
.invoice-template-library { padding:16px;position:sticky;top:96px }.invoice-template-library h2{margin:3px 0 7px}.invoice-template-library>p{color:#766c67;margin:0 0 14px}
.invoice-template-block { align-items:center;background:#fff;border:1px solid #ded7d2;border-radius:10px;cursor:grab;display:grid;gap:9px;grid-template-columns:auto minmax(0,1fr) auto;margin-top:8px;padding:9px;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.invoice-template-block:hover{border-color:#c96f3d;box-shadow:0 5px 13px rgba(49,42,38,.08);transform:translateY(-1px)}.invoice-template-block.is-dragging{opacity:.45}.invoice-template-block__handle{color:#c96f3d;font-size:var(--font-size-body, 1.15rem);font-weight:var(--font-weight-label, 900)}.invoice-template-block div{display:grid}.invoice-template-block small{color:#847a74}.invoice-template-block label input{accent-color:#c96f3d;height:18px;width:18px}
.invoice-template-preview-frame { background:#fff;border:1px solid #d8d1cb;border-radius:12px;box-shadow:0 13px 34px rgba(44,38,34,.11);box-sizing:border-box;height:1120px;width:100% }
@media(max-width:1100px){.invoice-template-editor__settings{grid-template-columns:repeat(2,minmax(0,1fr))}.invoice-template-workspace{grid-template-columns:250px minmax(0,1fr)}}
@media(max-width:760px){.invoice-template-list,.invoice-template-editor__settings,.invoice-template-workspace,.invoice-template-create-form{grid-template-columns:minmax(0,1fr)}.invoice-template-create-form>.field,.invoice-template-create-form>.invoice-template-create-form__description,.invoice-template-create-form__actions{grid-column:1}.invoice-template-card{grid-template-columns:90px minmax(0,1fr)}.invoice-template-library{position:static}.invoice-template-preview-frame{height:900px}.invoice-template-catalog{scroll-margin-top:150px}.invoice-template-catalog .invoice-number-settings__heading{display:grid;grid-template-columns:auto minmax(0,1fr)}.invoice-template-catalog .invoice-number-settings__heading>.btn{grid-column:1/-1;justify-self:start;white-space:nowrap}.invoice-template-group>header{align-items:flex-start;flex-direction:column}.invoice-template-group{padding:14px}}
@media(max-width:480px){.invoice-template-card{grid-template-columns:minmax(0,1fr)}.invoice-template-card__preview{min-height:118px}.invoice-template-card__body>div{flex-wrap:wrap;justify-content:flex-start}.invoice-template-card__body small{flex-basis:100%}}

/* Documents A4 multipages : questionnaire client et compte rendu. */
.client-questionnaire-document { background:transparent; border:0; border-radius:0; box-shadow:none; max-width:none; overflow:visible; }
.client-questionnaire-form { display:grid; gap:22px; padding:0; }
.client-questionnaire-page { background:#fff; border:1px solid #d8d1ca; box-shadow:0 16px 38px rgba(52,43,38,.16); box-sizing:border-box; display:flex; flex-direction:column; margin:0 auto; min-height:1123px; padding:0 28px 18px; position:relative; width:794px; }
.client-questionnaire-document--landscape .client-questionnaire-page,.client-questionnaire-page--landscape { min-height:794px; width:1123px; }.client-questionnaire-page--portrait{min-height:1123px;width:794px}
.client-questionnaire-page>.client-questionnaire-document__hero { margin:0 -28px 22px; }
.client-questionnaire-page__content { align-content:start; display:grid; gap:15px; grid-template-columns:repeat(12,minmax(0,1fr)); }
.client-questionnaire-page:not(:first-child) .client-questionnaire-page__content { padding-top:28px; }
.client-questionnaire-page__content.is-measuring { left:-10000px; position:absolute; top:0; visibility:hidden; width:738px; }
.client-questionnaire-document--landscape .client-questionnaire-page__content.is-measuring,.client-questionnaire-page--landscape .client-questionnaire-page__content.is-measuring { width:1067px; }
.client-questionnaire-page__content>* { break-inside:avoid; page-break-inside:avoid; }
.client-questionnaire-page__number { border-top:1px solid #ddd5dc; color:#6f686f; font-size:.72rem; font-weight:850; letter-spacing:.04em; margin-top:auto; padding-top:10px; text-align:right; }

.report-generated-document { background:transparent; max-width:850px; padding:0; }
.report-generated-page { background:#fffdfa; border:1px solid #ddd5cc; box-shadow:0 14px 34px rgba(52,43,38,.15); box-sizing:border-box; display:flex; flex-direction:column; margin:18px auto; min-height:1123px; padding:28px 32px 54px; position:relative; width:794px; }
.report-generated-page--portrait{height:1123px;min-height:1123px;width:794px}.report-generated-page--landscape{height:794px;min-height:794px;width:1123px}
.report-generated-page__content { align-content:start; display:grid; gap:16px; grid-template-columns:repeat(4,minmax(0,1fr)); }
.report-generated-page__content.is-measuring { left:-10000px; position:absolute; top:0; visibility:hidden; width:730px; }
.report-preview-block--width-full,.report-preview__separator { grid-column:1/-1; }
.report-preview-block--width-half { grid-column:span 3; }
.report-preview-block--width-third { grid-column:span 2; }
.report-preview-block--span-1 { grid-column:span 1; }
.report-preview-block--span-2 { grid-column:span 2; }
.report-preview-block--span-3 { grid-column:span 3; }
.report-preview-block--span-4,.report-preview__separator { grid-column:1/-1; }
.report-generated-page__content>* { break-inside:avoid; page-break-inside:avoid; }
.report-generated-page__number { border-top:1px solid #ddd5cc; bottom:20px; color:#6b645e; font-size:.72rem; font-weight:850; left:32px; letter-spacing:.04em; margin:0; padding-top:10px; position:absolute; right:32px; text-align:right; }
.report-generated-page .report-structured-table th,.report-generated-page .report-structured-table td{font-size:var(--font-size-table, .9em);line-height:1.3;padding:7px 9px}
.report-generated-page .report-nutrient-chart__rows{gap:6px}
.report-generated-page .report-nutrient-chart__scale{aspect-ratio:auto;height:32px;overflow:hidden}
.report-generated-page .report-nutrient-chart__scale svg{height:32px;width:100%}
@media(max-width:850px){.client-questionnaire-preview-page,.report-generated-modal__panel{overflow-x:auto}.client-questionnaire-page,.report-generated-page{transform-origin:top left}}
@media print {
  @page { size:A4 portrait; margin:0; }
  .client-questionnaire-preview-bar { display:none!important; }
  .client-questionnaire-form,.report-generated-document { gap:0; margin:0; padding:0; }
  .client-questionnaire-page,.report-generated-page { border:0; box-shadow:none; break-after:page; margin:0; page-break-after:always; }
  .client-questionnaire-page:last-child,.report-generated-page:last-child { break-after:auto; page-break-after:auto; }
  body.has-open-modal .app-shell,body.has-open-modal>.scroll-to-top { display:none!important; }
  body.has-open-modal .report-generated-modal { background:#fff; display:block!important; inset:0; overflow:visible; position:static; }
  body.has-open-modal>.report-generated-modal { display:block!important; }
  body.has-open-modal .report-generated-modal__panel { box-shadow:none; max-height:none; max-width:none; overflow:visible; }
}

.questionnaire-item-card--consent_signature { border-left-color:#3f705d; grid-column:1 / -1; }
.questionnaire-item-card--consent_signature .questionnaire-item-card__head { background:#e5f0eb; }
.questionnaire-item-card--consent_signature .questionnaire-item-card__head > div { display:none; }
.client-questionnaire-field.client-questionnaire-field--consent_signature { background:#f3f7f5; border:1px solid #bfd2c9; border-radius:12px; min-height:540px; padding:16px; }
.client-questionnaire-consent-title{color:#403941;font-size:.84rem;font-weight:850;margin:0 0 13px}
.client-questionnaire-consent-title span{color:#98544d}
.client-questionnaire-consents { display:grid; gap:9px; }
.client-questionnaire-consents label { align-items:flex-start; background:#fff; border:1px solid #d4ddd8; border-radius:9px; cursor:pointer; display:flex; gap:10px; padding:10px 11px; }
.client-questionnaire-consents input { appearance:none; background:#fff; border:2px solid #527965; border-radius:5px; flex:0 0 auto; height:20px; margin:1px 0 0; position:relative; width:20px; }
.client-questionnaire-consents input:checked { background:#3f705d; }
.client-questionnaire-consents input:checked::after { border:solid #fff; border-width:0 2px 2px 0; content:""; height:8px; left:5px; position:absolute; top:2px; transform:rotate(45deg); width:4px; }
.client-questionnaire-consents span { color:#433d43; font-size:.78rem; line-height:1.45; }
.client-questionnaire-signature { display:grid; gap:10px; grid-template-columns:2fr 1fr; margin-top:14px; }
.client-questionnaire-signature label { color:#564e56; display:grid; font-size:.72rem; font-weight:850; gap:5px; }
.client-questionnaire-signature input { background:#fff; border:1px solid #c9d2cd; border-radius:9px; font:inherit; min-height:42px; padding:9px 10px; width:100%; }
.client-questionnaire-signature__area { display:grid; gap:6px; grid-column:1 / -1; }
.client-questionnaire-signature__area > span { color:#564e56; font-size:.72rem; font-weight:850; }
.client-questionnaire-signature__area canvas { background:#fff; border:1px dashed #8ba697; border-radius:10px; cursor:crosshair; height:120px; touch-action:none; width:100%; }
.client-questionnaire-signature__area button { background:transparent; border:0; color:#567263; cursor:pointer; font:inherit; font-size:.72rem; font-weight:850; justify-self:end; padding:3px; }
@media(max-width:620px){.client-questionnaire-signature{grid-template-columns:minmax(0,1fr)}.client-questionnaire-signature__area{grid-column:1}}

/* Éditeur de compte rendu : palette sticky à gauche, document large à droite. */
.report-builder-toolbar { grid-template-columns:minmax(280px,1fr) auto auto auto; }
.report-builder-generate { white-space:nowrap; }
.report-builder-layout { grid-template-columns:minmax(250px,300px) minmax(0,1fr); }
.report-builder-layout > .report-builder-library { padding:17px; }
.report-builder-document-workspace { min-width:0; }
.report-builder-composition { background:#fffdfa; border-top:5px solid #6d5476; box-shadow:0 14px 35px rgba(57,44,61,.12); min-height:720px; padding:22px; }

/* Grille documentaire interactive : dépôt latéral et redimensionnement solidaire. */
.questionnaire-item-card,.report-block-card { position:relative; }
.report-block-list { grid-template-columns:repeat(12,minmax(0,1fr)); }
.report-block-dropzone { grid-column:1/-1; }
.report-block-card--span-1 { grid-column:span 1; }
.report-block-card--span-2 { grid-column:span 2; }
.report-block-card--span-3 { grid-column:span 3; }
.report-block-card--span-4 { grid-column:1/-1; }
.report-block-card[data-span="1"] .report-block-card__fields,
.report-block-card[data-span="2"] .report-block-card__fields { grid-template-columns:minmax(0,1fr); }
.questionnaire-side-drop,.report-side-drop { align-items:center; background:rgba(73,111,94,.9); border:2px solid #fff; color:#fff; display:flex; font-size:var(--font-size-table, .7rem); font-weight:var(--font-weight-label, 900); inset-block:8px; justify-content:center; opacity:0; padding:8px; pointer-events:none; position:absolute; text-align:center; transition:opacity .16s ease,background-color .16s ease; width:34%; z-index:8; }
.questionnaire-side-drop--left,.report-side-drop--left { border-radius:8px 0 0 8px; left:7px; }
.questionnaire-side-drop--right,.report-side-drop--right { border-radius:0 8px 8px 0; right:7px; }
.questionnaire-builder.is-dragging-module .questionnaire-side-drop,
.report-builder-page.is-dragging-module .report-side-drop { opacity:.72; pointer-events:auto; }
.questionnaire-side-drop.is-active,.report-side-drop.is-active { background:#604969; opacity:1!important; }
.questionnaire-row-drop-grid { display:none; gap:8px; grid-column:1/-1; grid-template-columns:repeat(4,minmax(0,1fr)); margin:-2px 0 2px; }
.questionnaire-builder.is-dragging-module .questionnaire-row-drop-grid { display:grid; }
.questionnaire-row-drop-slot { background:#f4eef6; border:1px dashed #a68caf; border-radius:9px; color:#604c68; display:grid; font-size:var(--font-size-table, .68rem); font-weight:var(--font-weight-label, 900); gap:6px; min-height:70px; padding:7px; text-align:left; transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease; }
.questionnaire-row-drop-slot>strong,.report-row-drop-slot>strong { font-size:var(--font-size-table, .65rem); letter-spacing:.03em; text-transform:uppercase; }
.questionnaire-row-drop-preview,.report-row-drop-preview { display:grid; gap:3px; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); }
.questionnaire-row-drop-preview span,.report-row-drop-preview span { background:#fff; border:1px solid #d7ccd9; border-radius:5px; color:#716675; font-size:var(--font-size-table, .58rem); min-width:0; overflow:hidden; padding:5px 3px; text-align:center; text-overflow:ellipsis; white-space:nowrap; }
.questionnaire-row-drop-preview span.is-ghost,.report-row-drop-preview span.is-ghost { background:#72587c; border-color:#72587c; color:#fff; }
.questionnaire-row-drop-slot.is-active { background:#e2efe8; border-color:#477763; box-shadow:0 0 0 3px rgba(71,119,99,.16); color:#315e4b; transform:translateY(-2px); }
.questionnaire-row-drop-grid { display:none!important; }
.questionnaire-free-drag-ghost { background:rgba(255,255,255,.96); border:2px dashed #72587c; border-radius:10px; box-shadow:0 12px 28px rgba(52,40,57,.2); color:#4f3b57; font-size:var(--font-size-table, .76rem); font-weight:var(--font-weight-label, 900); max-width:220px; min-width:130px; opacity:.9; padding:12px 14px; pointer-events:none; position:fixed; text-align:center; transform:rotate(-1deg); z-index:9999; }
.questionnaire-item-card.is-drop-before { box-shadow:inset 5px 0 0 #477763,0 8px 20px rgba(52,40,57,.14)!important; }
.questionnaire-item-card.is-drop-after { box-shadow:inset -5px 0 0 #477763,0 8px 20px rgba(52,40,57,.14)!important; }
.questionnaire-item-card.is-drop-above { box-shadow:inset 0 5px 0 #477763,0 8px 20px rgba(52,40,57,.14)!important; }
.questionnaire-item-card.is-drop-below { box-shadow:inset 0 -5px 0 #477763,0 8px 20px rgba(52,40,57,.14)!important; }
.report-template-builder .report-block-card.is-drop-before,
.report-template-builder .report-block-card.is-drop-after,
.report-template-builder .report-block-card.is-drop-above,
.report-template-builder .report-block-card.is-drop-below{z-index:8}
.report-template-builder .report-block-card.is-drop-before::after,
.report-template-builder .report-block-card.is-drop-after::after,
.report-template-builder .report-block-card.is-drop-above::after,
.report-template-builder .report-block-card.is-drop-below::after{background:#28a66f;border:2px solid #fff;border-radius:999px;box-shadow:0 3px 12px rgba(21,105,69,.38);content:"";pointer-events:none;position:absolute;z-index:20}
.report-template-builder .report-block-card.is-drop-before::after{bottom:0;left:-4px;top:0;width:6px}
.report-template-builder .report-block-card.is-drop-after::after{bottom:0;right:-4px;top:0;width:6px}
.report-template-builder .report-block-card.is-drop-above::after{height:6px;left:0;right:0;top:-4px}
.report-template-builder .report-block-card.is-drop-below::after{bottom:-4px;height:6px;left:0;right:0}
.report-block-card.is-drop-before { box-shadow:inset 5px 0 0 #477763,0 8px 20px rgba(52,40,57,.14)!important; }
.report-block-card.is-drop-after { box-shadow:inset -5px 0 0 #477763,0 8px 20px rgba(52,40,57,.14)!important; }
.report-block-card.is-drop-above { box-shadow:inset 0 5px 0 #477763,0 8px 20px rgba(52,40,57,.14)!important; }
.report-block-card.is-drop-below { box-shadow:inset 0 -5px 0 #477763,0 8px 20px rgba(52,40,57,.14)!important; }
.questionnaire-width-control { background:#eee8f0; border:1px solid #d3c7d7; border-radius:12px; display:grid; gap:5px; grid-template-columns:repeat(4,minmax(0,1fr)); padding:5px; }
.questionnaire-width-option { align-items:center; background:#fff; border:1px solid transparent; border-radius:8px; color:#5b4b61; cursor:pointer; display:grid; gap:5px; justify-items:center; min-height:55px; padding:7px 6px; transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,color .16s ease,transform .16s ease; }
.questionnaire-width-option:hover { border-color:#9f8aa7; box-shadow:0 5px 12px rgba(67,49,73,.12); transform:translateY(-1px); }
.questionnaire-width-option:focus-visible { outline:3px solid rgba(104,77,115,.2); outline-offset:2px; }
.questionnaire-width-option.is-active { background:#604b69; border-color:#604b69; box-shadow:0 6px 14px rgba(65,47,71,.22); color:#fff; }
.questionnaire-width-option strong { font-size:var(--font-size-table, .72rem); line-height:1; }
.questionnaire-width-option__shape { align-items:center; border:1px solid currentColor; border-radius:4px; display:flex; height:12px; justify-content:flex-start; opacity:.85; padding:2px; width:34px; }
.questionnaire-width-option__shape::before { background:currentColor; border-radius:2px; content:""; display:block; height:6px; }
.questionnaire-width-option__shape--3::before { width:25%; }
.questionnaire-width-option__shape--6::before { width:50%; }
.questionnaire-width-option__shape--9::before { width:75%; }
.questionnaire-width-option__shape--12::before { width:100%; }
@media(max-width:560px){.questionnaire-width-control{grid-template-columns:repeat(2,minmax(0,1fr))}}
.questionnaire-module-rest{display:none;min-width:0;user-select:text}.questionnaire-item-card:not(.is-selected) .questionnaire-item-card__fields{display:none!important}.questionnaire-item-card:not(.is-selected) .questionnaire-module-rest{display:block}.questionnaire-item-card.is-selected .questionnaire-module-rest{display:none}.questionnaire-module-rest--section{align-items:center;border-bottom:2px solid #a8c3b7;gap:11px;padding:8px 0}.questionnaire-item-card:not(.is-selected) .questionnaire-module-rest--section{display:flex}.questionnaire-module-rest__number{align-items:center;background:#3f705d;border-radius:7px;color:#fff;display:flex;flex:0 0 auto;font-size:.7rem;font-weight:900;height:29px;justify-content:center;min-width:34px}.questionnaire-module-rest--section h2{color:#345b4c;font-family:Georgia,serif;font-size:var(--font-size-section-title, 1.16rem);margin:0}.questionnaire-module-rest--section p{color:#756f75;font-size:var(--font-size-table, .76rem);margin:3px 0 0}.questionnaire-module-rest--information{background:#f1ebf3;border-left:4px solid #73567d;border-radius:0 10px 10px 0;color:#4e4252;padding:11px 13px}.questionnaire-module-rest--information strong{font-size:var(--font-size-table, .84rem)}.questionnaire-module-rest--information p{font-size:var(--font-size-table, .76rem);line-height:1.45;margin:4px 0 0}.questionnaire-module-rest:not(.questionnaire-module-rest--section):not(.questionnaire-module-rest--information){padding:3px 1px 7px}.questionnaire-module-rest__heading{align-items:center;display:flex;gap:8px;justify-content:space-between}.questionnaire-module-rest__heading strong{color:#403941;font-size:var(--font-size-card-title, .84rem)}.questionnaire-module-rest__heading>span{background:#f4e7e4;border-radius:6px;color:#8a4942;font-size:var(--font-size-caption, .62rem);font-weight:var(--font-weight-label, 900);padding:4px 6px}.questionnaire-module-rest__help{color:#777077;font-size:var(--font-size-table, .72rem);line-height:1.4;margin:4px 0 7px}.questionnaire-module-rest__input{background:#fff;border:1px solid #cfc6d1;border-radius:9px;box-shadow:inset 0 2px 6px rgba(50,41,54,.05);color:#9a929b;font-size:var(--font-size-input, .77rem);min-height:39px;padding:10px 11px}.questionnaire-module-rest__input.is-textarea{min-height:68px}.questionnaire-module-rest__choices{display:grid;gap:6px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:8px}.questionnaire-module-rest__choices>span{align-items:center;background:#faf8fa;border:1px solid #d5cdd6;border-radius:8px;color:#5b545d;display:flex;font-size:var(--font-size-table, .76rem);gap:7px;min-width:0;padding:8px 9px}.questionnaire-module-rest__choices i{background:#fff;border:1.5px solid #806889;border-radius:50%;flex:0 0 auto;height:15px;width:15px}.questionnaire-module-rest--multiple_choice .questionnaire-module-rest__choices i{border-radius:4px}.questionnaire-module-rest__choices em{font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.questionnaire-module-rest__photo{align-items:center;background:#f7f3f7;border:1px dashed #a693ab;border-radius:10px;color:#58475f;display:flex;font-size:.77rem;font-weight:850;justify-content:center;min-height:72px;margin-top:8px}
.questionnaire-module-rest--text_content{border-left:3px solid #afc3b8;padding:4px 0 4px 12px}.questionnaire-module-rest--text_content h3{color:#3f4944;font-family:Georgia,serif;font-size:var(--font-size-card-title, .98rem);margin:0 0 5px}.questionnaire-module-rest--text_content p{color:#625d61;font-size:var(--font-size-table, .78rem);line-height:1.55;margin:0;white-space:pre-wrap}.client-questionnaire-text{border-left:3px solid #afc3b8;padding:5px 0 5px 13px}.client-questionnaire-text h3{color:#3f4944;font-family:Georgia,serif;font-size:1rem;margin:0 0 6px}.client-questionnaire-text p{color:#625d61;font-size:.8rem;line-height:1.6;margin:0}
.questionnaire-module-rest--heading_content{border-bottom:1px solid #c7d5ce;padding:5px 0 8px}.questionnaire-module-rest--heading_content h3{color:#355b4c;font-family:Georgia,serif;font-size:var(--font-size-card-title, 1.12rem);margin:0}.questionnaire-module-rest--heading_content p{color:#746d73;font-size:var(--font-size-table, .75rem);margin:3px 0 0}.client-questionnaire-heading{border-bottom:1px solid #c7d5ce;padding:5px 0 9px}.client-questionnaire-heading h3{color:#355b4c;font-family:Georgia,serif;font-size:1.15rem;margin:0}.client-questionnaire-heading p{color:#746d73;font-size:.77rem;margin:4px 0 0}
.questionnaire-field-library [data-questionnaire-library]{grid-template-columns:repeat(2,minmax(0,1fr))}.questionnaire-field-library [data-questionnaire-library] button{align-items:center;display:flex;gap:8px;line-height:1.25;min-height:48px;min-width:0;overflow-wrap:anywhere;padding:8px;text-align:left;white-space:normal;width:100%}.questionnaire-field-library [data-questionnaire-library] button::before{align-items:center;background:#e9f1ed;border:1px solid #bdd0c7;border-radius:8px;color:#355e4e;content:"•";display:flex;flex:0 0 30px;font-size:.82rem;font-weight:950;height:30px;justify-content:center;letter-spacing:-.03em}.questionnaire-field-library [data-questionnaire-library] button:hover::before,.questionnaire-field-library [data-questionnaire-library] button.is-dragging::before{background:#fff;border-color:#fff;color:#604869}.questionnaire-field-library button[data-add-question="section"]::before{content:"§"}.questionnaire-field-library button[data-add-question="heading_content"]::before{content:"T"}.questionnaire-field-library button[data-add-question="text_content"]::before{content:"¶"}.questionnaire-field-library button[data-add-question="information"]::before{content:"i"}.questionnaire-field-library button[data-add-question="short_text"]::before{content:"Aa"}.questionnaire-field-library button[data-add-question="long_text"]::before{content:"≡";font-size:1.05rem}.questionnaire-field-library button[data-add-question="date"]::before{content:"31"}.questionnaire-field-library button[data-add-question="number"]::before{content:"#"}.questionnaire-field-library button[data-add-question="single_choice"]::before{content:"◉"}.questionnaire-field-library button[data-add-question="multiple_choice"]::before{content:"☑"}.questionnaire-field-library button[data-add-question="yes_no"]::before{content:"✓"}.questionnaire-field-library button[data-add-question="identity_photo"]::before{content:"ID"}.questionnaire-field-library button[data-add-question="photo"]::before{content:"▧";font-size:1rem}@media(max-width:1150px){.questionnaire-field-library [data-questionnaire-library]{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}@media(max-width:560px){.questionnaire-field-library [data-questionnaire-library]{grid-template-columns:minmax(0,1fr)}}
.questionnaire-field-library [data-questionnaire-library] button{align-items:flex-end;background:#f8f5f9;border-color:#d5c9d8;border-radius:10px;color:#4d4052;display:flex;font-size:var(--font-size-control, .7rem);font-weight:var(--font-weight-label, 900);justify-content:flex-start;letter-spacing:.01em;min-height:88px;overflow:hidden;padding:9px 10px;position:relative;white-space:normal}.questionnaire-field-library [data-questionnaire-library] button::before{align-items:center;background:transparent;border:0;border-radius:0;color:#654f6e;display:flex;font-family:Georgia,serif;font-size:3.2rem;font-weight:900;height:auto;inset:2px 0 17px;justify-content:center;letter-spacing:-.06em;opacity:.13;pointer-events:none;position:absolute;width:auto}.questionnaire-field-library [data-questionnaire-library] button:hover,.questionnaire-field-library [data-questionnaire-library] button.is-dragging{background:#604869;border-color:#604869;color:#fff;transform:translateY(-1px)}.questionnaire-field-library [data-questionnaire-library] button:hover::before,.questionnaire-field-library [data-questionnaire-library] button.is-dragging::before{background:transparent;border:0;color:#fff;font-size:3.2rem;opacity:.16}.questionnaire-field-library button[data-add-question="long_text"]::before,.questionnaire-field-library button[data-add-question="photo"]::before{font-size:3.2rem}

/* Bibliothèque latérale des modules du constructeur de questionnaires. */
.questionnaire-builder__layout{display:grid;gap:18px;grid-template-columns:250px minmax(0,1fr)}
.questionnaire-field-library{max-height:calc(100vh - 96px);overflow:auto;padding:14px;position:sticky;top:74px;width:100%;z-index:12}
.questionnaire-field-library .questionnaire-section-heading{align-items:center;display:flex;gap:10px;margin-bottom:3px}
.questionnaire-field-library .questionnaire-section-heading h2{font-size:var(--font-size-card-title, 1rem);margin:0}
.questionnaire-field-library>p{font-size:var(--font-size-table, .73rem);margin:2px 0 11px 46px}
.questionnaire-field-library [data-questionnaire-library]{display:grid;gap:6px;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;padding:1px 2px}
.questionnaire-field-library [data-questionnaire-library] button{font-size:var(--font-size-control, .66rem);line-height:1.12;min-height:72px;overflow-wrap:anywhere;padding:7px 8px;text-wrap:balance;white-space:normal}
.questionnaire-field-library [data-questionnaire-library] button::before{font-size:2.55rem;inset:0 0 14px}
@media(max-width:1150px){.questionnaire-builder__layout{grid-template-columns:minmax(0,1fr)}.questionnaire-field-library{max-height:none;position:static}.questionnaire-field-library [data-questionnaire-library]{grid-template-columns:repeat(auto-fit,minmax(105px,1fr))}}
@media(max-width:720px){.questionnaire-field-library>p{margin-left:0}.questionnaire-field-library [data-questionnaire-library]{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Respiration homogène entre les questions et leurs zones de réponse. */
.questionnaire-module-rest__heading+.questionnaire-module-rest__input,
.questionnaire-module-rest__heading+.questionnaire-module-rest__select,
.questionnaire-module-rest__heading+.questionnaire-module-rest__choices,
.questionnaire-module-rest__heading+.questionnaire-module-rest__photo{margin-top:12px}
.questionnaire-module-rest__help+.questionnaire-module-rest__input,
.questionnaire-module-rest__help+.questionnaire-module-rest__select,
.questionnaire-module-rest__help+.questionnaire-module-rest__choices,
.questionnaire-module-rest__help+.questionnaire-module-rest__photo{margin-top:10px}
.questionnaire-preview-field{gap:10px}
.questionnaire-preview-field>strong+.questionnaire-preview-options,
.questionnaire-preview-field>strong+input,
.questionnaire-preview-field>strong+textarea,
.questionnaire-preview-field>strong+.questionnaire-preview-photo{margin-top:3px}
.client-questionnaire-field{gap:11px}
.client-questionnaire-field__help{margin:-4px 0 2px}
.client-questionnaire-preview-shell .client-questionnaire-field legend{display:block;margin:0 0 12px;width:100%}
.client-questionnaire-preview-shell .client-questionnaire-field legend+.client-questionnaire-field__help{margin:-5px 0 9px}
.client-questionnaire-preview-shell .client-questionnaire-field__help+.client-questionnaire-choices,
.client-questionnaire-preview-shell .client-questionnaire-field__help+input,
.client-questionnaire-preview-shell .client-questionnaire-field__help+textarea,
.client-questionnaire-preview-shell .client-questionnaire-field__help+.client-questionnaire-number,
.client-questionnaire-preview-shell .client-questionnaire-field__help+.client-questionnaire-photo{margin-top:2px}

/* Apparence typographique configurable des modules. */
.questionnaire-tone--anthracite{--questionnaire-tone:#403941;--questionnaire-tone-soft:#d1c8d1}
.questionnaire-tone--green{--questionnaire-tone:#35614f;--questionnaire-tone-soft:#a8c3b7}
.questionnaire-tone--plum{--questionnaire-tone:#714f78;--questionnaire-tone-soft:#c8b1ce}
.questionnaire-tone--terracotta{--questionnaire-tone:#985747;--questionnaire-tone-soft:#d9b4aa}
.questionnaire-tone--blue{--questionnaire-tone:#45677b;--questionnaire-tone-soft:#b1c8d3}
.questionnaire-module-rest.questionnaire-tone--anthracite h2,.questionnaire-module-rest.questionnaire-tone--anthracite h3,.questionnaire-module-rest.questionnaire-tone--anthracite strong,
.questionnaire-module-rest[class*="questionnaire-tone--"] h2,.questionnaire-module-rest[class*="questionnaire-tone--"] h3,.questionnaire-module-rest[class*="questionnaire-tone--"] strong,
.client-questionnaire-section[class*="questionnaire-tone--"] h2,.client-questionnaire-information[class*="questionnaire-tone--"] strong,.client-questionnaire-text[class*="questionnaire-tone--"] h3,.client-questionnaire-heading[class*="questionnaire-tone--"] h3,.client-questionnaire-field[class*="questionnaire-tone--"] legend{color:var(--questionnaire-tone)}
.questionnaire-module-rest--section[class*="questionnaire-tone--"],.client-questionnaire-section[class*="questionnaire-tone--"],.questionnaire-module-rest--heading_content[class*="questionnaire-tone--"],.client-questionnaire-heading[class*="questionnaire-tone--"]{border-bottom-color:var(--questionnaire-tone-soft)}
.questionnaire-module-rest--text_content[class*="questionnaire-tone--"],.client-questionnaire-text[class*="questionnaire-tone--"],.questionnaire-module-rest--information[class*="questionnaire-tone--"],.client-questionnaire-information[class*="questionnaire-tone--"]{border-left-color:var(--questionnaire-tone)}
.questionnaire-module-rest--section[class*="questionnaire-tone--"] .questionnaire-module-rest__number,.client-questionnaire-section[class*="questionnaire-tone--"]>span{background:var(--questionnaire-tone)}
.questionnaire-text-size--small h2,.questionnaire-text-size--small h3,.questionnaire-text-size--small strong,.client-questionnaire-field.questionnaire-text-size--small legend{font-size:.76rem}
.questionnaire-text-size--small p,.questionnaire-text-size--small .questionnaire-module-rest__help{font-size:.68rem}
.questionnaire-text-size--large h3,.questionnaire-text-size--large strong,.client-questionnaire-field.questionnaire-text-size--large legend{font-size:1.18rem}
.questionnaire-module-rest--section.questionnaire-text-size--large h2,.client-questionnaire-section.questionnaire-text-size--large h2{font-size:1.42rem}
.questionnaire-text-size--large p,.questionnaire-text-size--large .questionnaire-module-rest__help{font-size:.96rem}
.questionnaire-item-field select{background:#fff;border:1px solid #cec3d1;border-radius:9px;box-shadow:0 2px 7px rgba(45,35,49,.05) inset;color:#38313b;font:inherit;min-height:41px;min-width:0;padding:9px 32px 9px 11px;width:100%}
.questionnaire-item-field select:focus{border-color:#6d5277;box-shadow:0 0 0 3px rgba(109,82,119,.14);outline:0}
.questionnaire-color-control{align-items:center;background:#f8f5f9;border:1px solid #d3c8d6;border-radius:10px;display:flex;gap:10px;min-height:45px;padding:6px 9px}
.questionnaire-color-control input[type="color"]{appearance:none;background:transparent;border:0;border-radius:7px;cursor:pointer;flex:0 0 34px;height:32px;overflow:hidden;padding:0;width:34px}
.questionnaire-color-control input[type="color"]::-webkit-color-swatch-wrapper{padding:0}.questionnaire-color-control input[type="color"]::-webkit-color-swatch{border:2px solid #fff;border-radius:7px;box-shadow:0 0 0 1px #b9adbD}.questionnaire-color-control input[type="color"]::-moz-color-swatch{border:2px solid #fff;border-radius:7px}
.questionnaire-color-control__hex{background:#fff;border:1px solid transparent;border-radius:7px;color:#514657;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:var(--font-size-table, .75rem);font-weight:var(--font-weight-label, 800);letter-spacing:.035em;min-width:0;padding:6px 7px;text-transform:uppercase;width:88px}
.questionnaire-color-control__hex:hover{border-color:#c3b6c7}
.questionnaire-color-control__hex:focus{border-color:#6d5277;box-shadow:0 0 0 3px rgba(109,82,119,.14);outline:0}
.questionnaire-color-control__hex.is-invalid{animation:questionnaire-color-invalid .28s ease;border-color:#b4544a;color:#903d35}
@keyframes questionnaire-color-invalid{0%,100%{transform:translateX(0)}35%{transform:translateX(-3px)}70%{transform:translateX(3px)}}
.questionnaire-appearance-controls{align-items:end;display:grid;gap:10px;grid-template-columns:minmax(175px,235px) minmax(125px,165px) minmax(160px,210px) minmax(125px,150px);justify-content:start;min-width:0}
.questionnaire-appearance-controls.is-wide{grid-column:1/-1}
.questionnaire-appearance-controls .questionnaire-color-control{min-height:39px;padding:4px 7px}
.questionnaire-appearance-controls .questionnaire-color-control input[type="color"]{height:28px;width:30px}
.questionnaire-appearance-controls .questionnaire-item-field select{min-height:39px;padding-bottom:7px;padding-top:7px}
@media(max-width:560px){.questionnaire-appearance-controls{grid-template-columns:minmax(0,1fr)}}
.questionnaire-font-style-control{align-items:center;background:#f8f5f9;border:1px solid #d3c8d6;border-radius:10px;display:flex;gap:5px;min-height:39px;padding:4px 6px}
.questionnaire-font-style-control button{align-items:center;background:#fff;border:1px solid #d2c8d5;border-radius:7px;color:#534757;cursor:pointer;display:flex;font-family:Georgia,serif;font-size:var(--font-size-control, .84rem);font-weight:var(--font-weight-label, 800);height:29px;justify-content:center;min-width:31px;padding:0 8px}
.questionnaire-font-style-control button:nth-child(2){font-style:italic}
.questionnaire-font-style-control button:nth-child(3){text-decoration:underline}
.questionnaire-font-style-control button:hover,.questionnaire-font-style-control button:focus-visible{border-color:#816a89;color:#5d4765;outline:0}
.questionnaire-font-style-control button.is-active{background:#654c70;border-color:#654c70;color:#fff;box-shadow:0 3px 8px rgba(70,50,78,.18)}
.questionnaire-module-rest__document{align-items:center;background:#f7f3f7;border:1px dashed #9d8ba3;border-radius:10px;color:#58475f;display:flex;font-size:var(--font-size-table, .77rem);font-weight:var(--font-weight-label, 850);gap:9px;justify-content:center;min-height:72px;margin-top:8px;padding:10px}
.client-questionnaire-document-upload{align-items:center;background:#f8f5f9;border:1px dashed #987fa1;border-radius:11px;color:#58475f;cursor:pointer;display:grid;gap:3px;justify-items:center;min-height:98px;padding:14px;text-align:center;width:100%}
.client-questionnaire-document-upload:hover{background:#f1eaf3;border-color:#6f5678}
.client-questionnaire-document-upload input{height:1px;overflow:hidden;position:absolute;width:1px}
.client-questionnaire-document-upload>span{align-items:center;background:#6a5074;border-radius:7px;color:#fff;display:flex;font-size:.67rem;font-weight:950;height:30px;justify-content:center;letter-spacing:.03em;width:39px}
.client-questionnaire-document-upload strong{font-size:.82rem}.client-questionnaire-document-upload small{color:#7b727d;font-size:.7rem}
.client-questionnaire-text-response{display:grid;gap:5px;min-width:0;width:100%}
.client-questionnaire-text-response>input,.client-questionnaire-text-response>textarea{background:#fff;border:1px solid #cfc6d1;border-radius:10px;box-shadow:0 2px 7px rgba(50,41,54,.06) inset;box-sizing:border-box;color:#342e37;font:inherit;min-height:44px;padding:10px 12px;width:100%}
.client-questionnaire-text-response>textarea{line-height:1.5;resize:vertical}
.client-questionnaire-text-response>input:focus,.client-questionnaire-text-response>textarea:focus{border-color:#654c70;box-shadow:0 0 0 3px rgba(101,76,112,.14);outline:0}
.client-questionnaire-character-count{color:#7a707c;font-size:.66rem;font-variant-numeric:tabular-nums;font-weight:750;justify-self:end;line-height:1}
.questionnaire-font-custom,.questionnaire-module-rest{font-family:var(--questionnaire-font-family,inherit)}
.questionnaire-font-custom h2,.questionnaire-font-custom h3,.questionnaire-font-custom strong,.questionnaire-font-custom legend,.questionnaire-font-custom p,.questionnaire-font-custom span:not(.questionnaire-module-rest__number),.questionnaire-module-rest h2,.questionnaire-module-rest h3,.questionnaire-module-rest strong,.questionnaire-module-rest p,.questionnaire-module-rest em{font-family:var(--questionnaire-font-family,inherit)!important;font-style:var(--questionnaire-font-style,normal);font-weight:var(--questionnaire-font-weight,400);text-decoration:var(--questionnaire-text-decoration,none)}
@media(max-width:1050px){.questionnaire-appearance-controls{grid-template-columns:repeat(2,minmax(0,1fr))}}
.questionnaire-a3-paper__tools{align-items:center;display:flex;gap:7px;justify-self:end}
.questionnaire-preview-icon{align-items:center;background:#fff;border:1px solid #a9c3b7;border-radius:8px;box-shadow:0 3px 8px rgba(47,79,65,.1);color:#35614f;display:flex;font-size:1rem;height:31px;justify-content:center;text-decoration:none;width:34px}
.questionnaire-preview-icon:hover,.questionnaire-preview-icon:focus-visible{background:#35614f;border-color:#35614f;color:#fff;outline:0;transform:translateY(-1px)}
.questionnaire-preview-icon svg{fill:none;height:19px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9;width:19px}
.questionnaire-preview-sticky{
  position:fixed;
  top:var(--questionnaire-sticky-top,96px);
  right:28px;
  z-index:35;
  width:48px;
  height:48px;
  pointer-events:none;
}
.questionnaire-preview-sticky__button{
  display:grid;
  width:48px;
  height:48px;
  margin:0;
  place-items:center;
  border:2px solid var(--color-secondary);
  border-radius:12px;
  background:#fffdf9;
  box-shadow:0 10px 25px rgb(var(--color-primary-rgb) / .22);
  color:var(--color-primary-strong);
  pointer-events:auto;
  transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.questionnaire-preview-sticky__button:hover,
.questionnaire-preview-sticky__button:focus-visible{
  border-color:var(--color-primary-strong);
  background:var(--color-primary-strong);
  box-shadow:0 12px 28px rgb(var(--color-primary-rgb) / .3);
  color:#fffdf9;
  outline:3px solid rgb(var(--color-secondary-rgb) / .3);
  outline-offset:3px;
  transform:translateY(-1px);
}
.questionnaire-preview-sticky__button svg{
  width:25px;
  height:25px;
  fill:none;
  stroke:currentColor;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-width:1.9;
}
.questionnaire-preview-sticky__button.is-disabled{
  background:#f1edf1;
  border-color:#c8beca;
  box-shadow:none;
  color:#958b98;
  cursor:not-allowed;
  transform:none;
}
.questionnaire-configuration-alert{align-items:flex-start;background:#fff0ef;border:1px solid #dc8f8a;border-left:5px solid #b43e38;border-radius:12px;color:#762824;display:flex;gap:12px;margin:15px 0;padding:13px 15px}
.questionnaire-configuration-alert[hidden]{display:none}
.questionnaire-configuration-alert svg{fill:none;flex:0 0 25px;height:25px;stroke:#b43e38;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8;width:25px}
.questionnaire-configuration-alert strong{display:block;font-size:var(--font-size-table, .84rem);margin-bottom:2px}
.questionnaire-configuration-alert p{font-size:var(--font-size-table, .76rem);line-height:1.45;margin:0}
.questionnaire-test-creation-note{align-items:flex-start;background:#edf4f0;border:1px solid #bfd4c9;border-left:4px solid #477762;border-radius:9px;display:flex;gap:9px;margin:0 0 12px;padding:9px 11px}.questionnaire-test-creation-note strong{color:#315e4b;flex:none;font-size:var(--font-size-help, .73rem)}.questionnaire-test-creation-note span{color:#536b61;font-size:var(--font-size-help, .71rem);line-height:1.4}.questionnaire-test-targets label>small{color:#746d77;font-size:var(--font-size-help, .65rem);font-weight:var(--font-weight-label, 600);line-height:1.35}
.questionnaire-builder__settings label.is-required-missing{color:#8a4d18}
.questionnaire-builder__settings label.is-required-missing select{background:#fffaf0;border-color:#d9a950;box-shadow:0 0 0 2px rgba(217,169,80,.1)}
.questionnaire-hero__actions .is-disabled,.questionnaire-template-card__actions .is-disabled{cursor:not-allowed;opacity:.55;pointer-events:none}
.questionnaire-template-card__actions button.table-action{font-family:inherit;font-size:var(--font-size-control, .76rem);font-weight:var(--font-weight-label, 800);line-height:1.1}
.questionnaire-template-card__actions .table-action--icon{gap:0;min-width:36px;padding:8px;position:relative;width:36px}.questionnaire-template-card__actions .table-action--icon svg{fill:none;height:17px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8;width:17px}.questionnaire-template-card__actions .table-action--icon[data-tooltip]::after{background:#2b5556;border:1px solid rgba(255,255,255,.28);border-radius:7px;box-shadow:0 7px 15px rgba(36,63,63,.22);color:#fff;content:attr(data-tooltip);font-size:.69rem;font-weight:800;left:50%;line-height:1;opacity:0;padding:7px 8px;pointer-events:none;position:absolute;top:calc(100% + 7px);transform:translate(-50%,-3px);transition:opacity .08s ease,transform .08s ease;visibility:hidden;white-space:nowrap;z-index:30}.questionnaire-template-card__actions .table-action--icon[data-tooltip]::before{border:5px solid transparent;border-bottom-color:#2b5556;bottom:-7px;content:"";left:50%;opacity:0;pointer-events:none;position:absolute;transform:translate(-50%,-3px);transition:opacity .08s ease,transform .08s ease;visibility:hidden;z-index:31}.questionnaire-template-card__actions .table-action--icon[data-tooltip]:hover::after,.questionnaire-template-card__actions .table-action--icon[data-tooltip]:hover::before,.questionnaire-template-card__actions .table-action--icon[data-tooltip]:focus-visible::after,.questionnaire-template-card__actions .table-action--icon[data-tooltip]:focus-visible::before{opacity:1;transform:translate(-50%,0);visibility:visible}
.questionnaire-template-card__actions .table-action--pdf{border-color:#d78b86;color:#b8413d}.questionnaire-template-card__actions .table-action--pdf .questionnaire-pdf-icon__page{fill:#fff;stroke:currentColor}.questionnaire-template-card__actions .table-action--pdf .questionnaire-pdf-icon__badge{fill:currentColor;stroke:none}.questionnaire-template-card__actions .table-action--pdf .questionnaire-pdf-icon__label{fill:#fff;font-family:Arial,sans-serif;font-size:5px;font-weight:900;stroke:none}.questionnaire-template-card__actions .table-action--pdf:hover,.questionnaire-template-card__actions .table-action--pdf:focus-visible{background:#b8413d;border-color:#b8413d;color:#fff}.questionnaire-template-card__actions .table-action--pdf:hover .questionnaire-pdf-icon__page,.questionnaire-template-card__actions .table-action--pdf:focus-visible .questionnaire-pdf-icon__page{fill:transparent}.questionnaire-template-card__actions .table-action--pdf:hover .questionnaire-pdf-icon__badge,.questionnaire-template-card__actions .table-action--pdf:focus-visible .questionnaire-pdf-icon__badge{fill:#fff}.questionnaire-template-card__actions .table-action--pdf:hover .questionnaire-pdf-icon__label,.questionnaire-template-card__actions .table-action--pdf:focus-visible .questionnaire-pdf-icon__label{fill:#b8413d}
.questionnaire-hero{display:block}.questionnaire-hero__content{min-width:0}.questionnaire-hero__intro-row{align-items:center;display:flex;gap:18px;justify-content:space-between;min-width:0}.questionnaire-hero__intro-row>p{min-width:0}.questionnaire-hero__intro-row .questionnaire-hero__actions{flex:none;flex-wrap:nowrap}.questionnaire-hero__intro-row .btn{white-space:nowrap}@media(max-width:760px){.questionnaire-hero__intro-row{align-items:stretch;flex-direction:column;gap:12px}.questionnaire-hero__intro-row .questionnaire-hero__actions{display:grid;grid-template-columns:minmax(0,1fr)}}
.questionnaire-catalog__hero-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.questionnaire-import-form{align-items:center;display:flex;gap:8px;margin:0}.questionnaire-import-form__label{align-items:center;background:#fff;border:1px solid #cfc6d1;border-radius:10px;color:#5d555f;cursor:pointer;display:flex;font-size:var(--font-size-label, .8rem);font-weight:var(--font-weight-label, 750);gap:8px;min-height:40px;padding:0 9px;white-space:nowrap}.questionnaire-import-form__label>span{display:grid;gap:1px}.questionnaire-import-form__label small{color:#807681;font-size:var(--font-size-help, .66rem);font-weight:var(--font-weight-label, 650)}.questionnaire-import-form__label input[type=file]{color:#665f69;font:inherit;max-width:195px}.questionnaire-import-form__label input[type=file]::file-selector-button{background:#eee8f0;border:0;border-radius:7px;color:#5b4562;cursor:pointer;font:inherit;font-weight:var(--font-weight-label, 850);margin-right:7px;padding:6px 8px}@media(max-width:720px){.questionnaire-catalog__hero-actions{align-items:stretch;display:grid;grid-template-columns:minmax(0,1fr)}.questionnaire-import-form{align-items:stretch;flex-direction:column}.questionnaire-import-form__label{justify-content:space-between}.questionnaire-import-form__label input[type=file]{max-width:100%}.questionnaire-catalog__hero-actions .btn{width:100%}}
.questionnaire-page>.questionnaire-hero{display:grid;gap:16px}.questionnaire-page>.questionnaire-hero>div:first-child{display:grid;gap:9px}.questionnaire-page>.questionnaire-hero>div:first-child>.badge{justify-self:start}.questionnaire-page>.questionnaire-hero h1{margin:0}
.questionnaire-item-card--rows-16{grid-row-end:span 16;min-height:918px}.questionnaire-item-card--page-anchor{align-items:center;background:#fbfafb;border:2px dashed #c8bbcD;box-shadow:none;display:flex;grid-column:1/-1;justify-content:center;overflow:visible}.questionnaire-blank-page{align-items:center;color:#726878;display:flex;flex-direction:column;gap:6px;justify-content:center;padding:30px;text-align:center}.questionnaire-blank-page strong{color:#58475f;font-size:var(--font-size-body, .9rem)}.questionnaire-blank-page span{font-size:var(--font-size-table, .75rem)}.questionnaire-blank-page__remove{background:#fff;border:1px solid #d4c7d7;border-radius:8px;color:#705c77;cursor:pointer;font:inherit;font-size:var(--font-size-table, .7rem);font-weight:var(--font-weight-label, 850);margin-top:7px;padding:7px 9px}.questionnaire-blank-page__remove:hover,.questionnaire-blank-page__remove:focus-visible{background:#604969;border-color:#604969;color:#fff;outline:0}.questionnaire-item-card--page-anchor.is-drop-blank-page{background:#edf4f0;border-color:#477761}.questionnaire-editor-sheet__footer{align-items:center;display:flex;gap:12px;justify-content:flex-end;position:relative;text-align:right}.questionnaire-editor-sheet__footer>span{margin-left:auto}.questionnaire-add-page{position:relative}.questionnaire-add-page__trigger{background:#fff;border:1px solid #bdaec2;border-radius:8px;color:#5d4865;cursor:pointer;font-size:var(--font-size-table, .72rem);font-weight:var(--font-weight-label, 900);list-style:none;padding:7px 10px;white-space:nowrap}.questionnaire-add-page__trigger::-webkit-details-marker{display:none}.questionnaire-add-page[open] .questionnaire-add-page__trigger,.questionnaire-add-page__trigger:hover,.questionnaire-add-page__trigger:focus-visible{background:#654c70;border-color:#654c70;color:#fff;outline:0}.questionnaire-add-page__menu{background:#fff;border:1px solid #d0c4d3;border-radius:10px;bottom:calc(100% + 7px);box-shadow:0 10px 24px rgba(49,38,54,.18);display:grid;left:0;min-width:205px;overflow:hidden;position:absolute;text-align:left;z-index:30}.questionnaire-add-page__menu button{background:#fff;border:0;color:#4d4052;cursor:pointer;font:inherit;font-size:var(--font-size-control, .74rem);font-weight:var(--font-weight-label, 800);padding:10px 12px;text-align:left}.questionnaire-add-page__menu button+button{border-top:1px solid #ebe5ed}.questionnaire-add-page__menu button:hover,.questionnaire-add-page__menu button:focus-visible{background:#f0e9f2;color:#523b5b;outline:0}.client-questionnaire-page-anchor{border:0;grid-column:1/-1;min-height:0;visibility:hidden}
@media(max-width:700px){
  .questionnaire-preview-sticky{right:12px;width:44px;height:44px}
  .questionnaire-preview-sticky__button{width:44px;height:44px}
}
.questionnaire-builder__composition [data-questionnaire-items]{align-content:start;min-height:620px;position:relative}
.questionnaire-builder__composition [data-questionnaire-items].is-drop-append{background:rgba(70,119,98,.04);border-radius:12px;box-shadow:inset 0 0 0 2px rgba(70,119,98,.42)}
.questionnaire-builder.is-dragging-module .questionnaire-builder__composition [data-questionnaire-items]:empty{background:rgba(70,119,98,.045);border:2px dashed #6f9d89;border-radius:12px}
.questionnaire-builder.is-dragging-module .questionnaire-builder__composition [data-questionnaire-items]:empty::before{align-items:center;color:#477762;content:"Déposer le premier module";display:flex;font-size:.8rem;font-weight:900;inset:0;justify-content:center;pointer-events:none;position:absolute}
.questionnaire-item-card__drag { align-items:center; background:#72587c; border-radius:6px; color:#fff; cursor:grab; display:flex; height:27px; justify-content:center; letter-spacing:-3px; padding-right:3px; width:27px; }
.questionnaire-item-card__drag:active { cursor:grabbing; }
.questionnaire-item-card.is-pointer-dragging { pointer-events:none; }
.questionnaire-pointer-module-ghost { background:#fff; border:2px dashed #72587c; border-radius:10px; box-shadow:0 18px 38px rgba(45,34,49,.25); max-height:260px; opacity:.84; overflow:hidden; pointer-events:none; position:fixed; transform:rotate(-1deg); z-index:10000; }
.questionnaire-a3-paper__title-input,.questionnaire-a3-paper__subtitle-input { background:transparent; border:0; border-radius:0; display:block; min-width:0; outline:0; padding:0; width:100%; }
.questionnaire-a3-paper__title-input { color:#312c31; font-family:Georgia,serif; font-size:1.42rem; font-weight:800; margin:2px 0; }
.questionnaire-a3-paper__subtitle-input { color:#706970; font-size:.76rem; margin-top:4px; }
.questionnaire-a3-paper__title-input:focus,.questionnaire-a3-paper__subtitle-input:focus { box-shadow:inset 0 -2px 0 #72587c; }
.questionnaire-a3-paper__title-input::placeholder,.questionnaire-a3-paper__subtitle-input::placeholder { color:#9a919b; opacity:1; }
.questionnaire-a3-paper__runtime-heading { display:grid; gap:3px; margin-top:5px; }
.questionnaire-a3-paper__runtime-heading strong { color:#514656; font-family:Georgia,serif; font-size:1.08rem; font-weight:700; opacity:.72; }
.questionnaire-a3-paper__runtime-heading span { color:#8a818d; font-size:.76rem; font-style:italic; opacity:.78; }
.questionnaire-builder .questionnaire-field-library { top:var(--questionnaire-sticky-top,96px); }
@media(max-width:1150px){.questionnaire-builder .questionnaire-field-library{max-height:calc(100vh - var(--questionnaire-sticky-top,96px) - 12px);top:var(--questionnaire-sticky-top,96px)}}
.report-row-drop-grid { display:none; gap:8px; grid-column:1/-1; grid-template-columns:repeat(4,minmax(0,1fr)); margin:-2px 0 2px; }
.report-builder-page.is-dragging-module .report-row-drop-grid { display:grid; }
.report-row-drop-slot { background:#f4eef6; border:1px dashed #a68caf; border-radius:9px; color:#604c68; display:grid; font-size:var(--font-size-table, .68rem); font-weight:var(--font-weight-label, 900); gap:6px; min-height:70px; padding:7px; text-align:left; }
.report-row-drop-slot.is-active { background:#e2efe8; border-color:#477763; box-shadow:0 0 0 3px rgba(71,119,99,.16); color:#315e4b; transform:translateY(-2px); }
.questionnaire-resize-handle,.report-resize-handle { background:#e5005a; border:2px solid #fff; border-radius:7px; bottom:50%; box-shadow:0 3px 11px rgba(173,0,68,.42); cursor:col-resize; height:34px; opacity:1; padding:0; position:absolute; right:-6px; touch-action:none; transform:translateY(50%); width:12px; z-index:9; }
.questionnaire-resize-handle:hover,.questionnaire-resize-handle:focus-visible,.report-resize-handle:hover,.report-resize-handle:focus-visible { background:#b90048; box-shadow:0 4px 14px rgba(144,0,56,.52); opacity:1; }
.questionnaire-height-handle { background:#e5005a; border:2px solid #fff; border-radius:7px; bottom:-6px; box-shadow:0 3px 11px rgba(173,0,68,.42); cursor:row-resize; height:12px; left:50%; opacity:1; padding:0; position:absolute; touch-action:none; transform:translateX(-50%); width:38px; z-index:9; }
.questionnaire-height-handle::before { color:#fff; content:"•••"; font-size:.55rem; left:9px; letter-spacing:1px; line-height:1; position:absolute; top:0; }
.questionnaire-height-handle:hover,.questionnaire-height-handle:focus-visible { background:#b90048; box-shadow:0 4px 14px rgba(144,0,56,.52); opacity:1; }
.questionnaire-resize-handle::before,.report-resize-handle::before { color:#fff; content:"⋮"; font-size:.72rem; left:1px; line-height:1; position:absolute; top:7px; }
.questionnaire-resize-handle:focus-visible,.questionnaire-height-handle:focus-visible,.report-resize-handle:focus-visible { outline:3px solid rgba(229,0,90,.3); outline-offset:3px; }
@media(max-width:720px){.report-block-list{grid-template-columns:minmax(0,1fr)}.report-block-card,.report-block-card--span-1,.report-block-card--span-2,.report-block-card--span-3,.report-block-card--span-4{grid-column:1}.questionnaire-side-drop,.report-side-drop,.questionnaire-row-drop-grid,.questionnaire-resize-handle,.questionnaire-height-handle,.report-resize-handle{display:none!important}}

/* L’état d’un module dépend uniquement de sa sélection, jamais du survol. */
.questionnaire-item-card__head>div,.report-block-card__controls { transition:opacity .16s ease; }
.questionnaire-item-card.is-selected,.report-block-card.is-selected { background:#fff; border-color:#d9d0db; border-radius:10px; box-shadow:0 10px 23px rgba(52,40,57,.14); overflow:visible; z-index:6; }
.questionnaire-item-card.is-selected .questionnaire-item-card__head,.report-block-card.is-selected .report-block-card__header { display:flex; }
.questionnaire-item-card.is-selected .questionnaire-item-card__head>div,.report-block-card.is-selected .report-block-card__controls { opacity:1; pointer-events:auto; }
.questionnaire-item-card.is-selected .questionnaire-item-card__fields,.report-block-card.is-selected .report-block-card__fields { background:#fdfcfd; display:grid; padding:12px; }
.questionnaire-item-card.is-selected .questionnaire-item-card__fields>* { display:grid; }
.report-block-card.is-selected .report-block-card__fields>* { display:grid; }
.questionnaire-item-card.is-selected .questionnaire-item-field>span,.report-block-card.is-selected .report-block-field>span { display:inline; }
.questionnaire-item-card.is-selected .questionnaire-item-field input,.questionnaire-item-card.is-selected .questionnaire-item-field textarea,.report-block-card.is-selected .report-block-field input,.report-block-card.is-selected .report-block-field textarea { background:#fff; border:1px solid #cec3d1; border-radius:9px; box-shadow:0 2px 7px rgba(45,35,49,.05) inset; color:#38313b; cursor:text; min-height:41px; padding:9px 11px; pointer-events:auto; resize:vertical; }
.questionnaire-item-card.is-selected .questionnaire-required { display:flex; }
.report-block-card.is-selected .report-checklist-editor,.report-block-card.is-selected .report-block-media { background:#fff; border:1px solid #ddd4df; padding:12px; }
.report-block-autofill-note{background:#edf6f1;border:1px solid #b9d4c7;border-left:4px solid #477763;border-radius:9px;color:#315747;font-size:.8rem;font-weight:700;grid-column:1/-1;line-height:1.5;padding:11px 13px}
.report-identity-field-picker{background:#fff;border:1px solid #d8cfd9;border-radius:11px;display:grid;gap:7px;grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:12px}.report-identity-field-picker legend{color:#4f4154;font-size:var(--font-size-label, .76rem);font-weight:var(--font-weight-label, 900);padding:0 7px}.report-identity-field-picker__option{align-items:center;background:#f7f3f7;border:1px solid #e3dae5;border-radius:8px;color:#4b424e;cursor:pointer;display:flex;font-size:var(--font-size-table, .76rem);font-weight:var(--font-weight-label, 750);gap:8px;min-width:0;padding:8px 9px}.report-identity-field-picker__option:has(input:checked){background:#e9f3ee;border-color:#9ebead;color:#315a49}.report-identity-field-picker__option input{accent-color:#477763;flex:0 0 18px;height:18px;margin:0;width:18px}.report-identity-field-picker__option span{overflow-wrap:anywhere}@media(max-width:760px){.report-identity-field-picker{grid-template-columns:minmax(0,1fr)}}
.report-block-card.is-selected .report-checklist-editor__heading button,.report-block-card.is-selected .report-block-media__heading button,.report-block-card.is-selected .report-checklist-row__remove { display:inline-flex; }
.report-block-card.is-selected .report-checklist-row input[type="text"] { background:#fff; border:1px solid #cec3d1; min-height:41px; padding:9px 11px; pointer-events:auto; }
.questionnaire-item-card:not(.is-selected),.report-block-card:not(.is-selected) { background:transparent; border-color:transparent; border-radius:0; box-shadow:none!important; overflow:visible; z-index:auto; }
.questionnaire-item-card:not(.is-selected) .questionnaire-item-card__head,.report-block-card:not(.is-selected) .report-block-card__header { display:none; }
.questionnaire-item-card:not(.is-selected) .questionnaire-item-card__fields,.report-block-card:not(.is-selected) .report-block-card__fields { background:transparent; display:block; padding:4px 2px; }
.questionnaire-item-card:not(.is-selected) .questionnaire-item-card__fields>* { display:none; }
.questionnaire-item-card:not(.is-selected) .questionnaire-item-card__fields>.questionnaire-item-field:nth-child(2),.questionnaire-item-card:not(.is-selected) .questionnaire-item-card__fields>.questionnaire-item-field:nth-child(3) { display:block; }
.questionnaire-item-card:not(.is-selected) .questionnaire-item-field>span,.report-block-card:not(.is-selected) .report-block-field>span { display:none; }
.questionnaire-item-card:not(.is-selected) .questionnaire-item-field input,.questionnaire-item-card:not(.is-selected) .questionnaire-item-field textarea,.report-block-card:not(.is-selected) .report-block-field input,.report-block-card:not(.is-selected) .report-block-field textarea { background:transparent; border:0; border-radius:0; box-shadow:none; color:#403744; cursor:default; min-height:0; padding:0; pointer-events:none; resize:none; }
.questionnaire-item-card:not(.is-selected) .questionnaire-item-field:nth-child(2) input,.questionnaire-item-card:not(.is-selected) .questionnaire-item-field:nth-child(2) textarea,.report-block-card:not(.is-selected) .report-block-field:first-child input { color:#3d3441; font-family:Georgia,serif; font-size:.92rem; font-weight:800; line-height:1.25; }
.questionnaire-item-card:not(.is-selected) .questionnaire-item-field:nth-child(3) textarea { color:#756d77; font-size:var(--font-size-input, .74rem); line-height:1.35; margin-top:4px; }
.report-block-card:not(.is-selected) .report-block-card__fields>* { display:none; }
.report-block-card:not(.is-selected) .report-block-card__fields>.report-block-field:first-child,.report-block-card:not(.is-selected) .report-block-card__fields>.report-block-field--full { display:block; }
.report-block-card:not(.is-selected) .report-block-field--full textarea { color:#6d656f; font-size:.76rem; line-height:1.4; margin-top:5px; max-height:4.2em; overflow:hidden; }
.report-block-card:not(.is-selected) .report-checklist-editor,.report-block-card:not(.is-selected) .report-block-media { background:transparent; border:0; padding:5px 0 0; }
.report-block-card:not(.is-selected) .report-checklist-editor__heading button,.report-block-card:not(.is-selected) .report-block-media__heading button,.report-block-card:not(.is-selected) .report-checklist-row__remove { display:none; }
.report-block-card:not(.is-selected) .report-checklist-row input[type="text"] { background:transparent; border:0; box-shadow:none; min-height:26px; padding:2px 0; pointer-events:none; }
.questionnaire-item-card:not(.is-selected) .questionnaire-resize-handle,.questionnaire-item-card:not(.is-selected) .questionnaire-height-handle,.report-block-card:not(.is-selected) .report-resize-handle,.report-block-card:not(.is-selected) .questionnaire-height-handle { display:none; }
.questionnaire-item-card.is-drop-before { box-shadow:inset 5px 0 0 #477763,0 8px 20px rgba(52,40,57,.14)!important; }
.questionnaire-item-card.is-drop-after { box-shadow:inset -5px 0 0 #477763,0 8px 20px rgba(52,40,57,.14)!important; }
.questionnaire-item-card.is-drop-above { box-shadow:inset 0 5px 0 #477763,0 8px 20px rgba(52,40,57,.14)!important; }
.questionnaire-item-card.is-drop-below { box-shadow:inset 0 -5px 0 #477763,0 8px 20px rgba(52,40,57,.14)!important; }
.report-template-toolbar { grid-template-columns:minmax(220px,1fr) minmax(260px,1.25fr) auto auto; }
@media(max-width:900px){.report-template-toolbar{grid-template-columns:minmax(0,1fr)}.report-template-toolbar .report-builder-generate{width:100%}}
.report-template-settings{align-items:end;display:grid;gap:14px;grid-template-columns:minmax(220px,.75fr) minmax(300px,1.5fr) auto;padding:16px 18px}
.report-template-settings label{color:#574e5b;display:grid;font-size:var(--font-size-label, .72rem);font-weight:var(--font-weight-label, 850);gap:6px;min-width:0}
.report-template-settings input{background:#fff;border:1px solid #cec3d1;border-radius:9px;box-sizing:border-box;color:#38313b;font:inherit;min-height:42px;min-width:0;padding:9px 11px;width:100%}
.report-template-settings input:focus{border-color:#6d5277;box-shadow:0 0 0 3px rgba(109,82,119,.14);outline:0}
.report-template-settings select,.report-template-create select,.report-template-filter select{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23574e5b' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center;border:1px solid #cec3d1;border-radius:9px;box-sizing:border-box;color:#38313b;font:inherit;min-height:42px;min-width:0;padding:9px 38px 9px 11px;width:100%}
.report-template-settings select:focus,.report-template-create select:focus,.report-template-filter select:focus{border-color:#6d5277;box-shadow:0 0 0 3px rgba(109,82,119,.14);outline:0}
.report-template-create{align-items:end;display:grid;gap:10px;grid-template-columns:minmax(210px,280px) auto;min-width:0}.report-template-create label{color:#574e5b;display:grid;font-size:var(--font-size-label, .72rem);font-weight:var(--font-weight-label, 850);gap:5px;min-width:0}.report-template-create .btn{white-space:nowrap}
.questionnaire-section-heading .report-template-filter{align-items:end;display:grid;gap:8px;grid-template-columns:minmax(180px,240px) auto;margin-left:auto}.report-template-filter label{color:#6c626f;font-size:var(--font-size-label, .7rem);font-weight:var(--font-weight-label, 850);grid-column:1/-1;margin-bottom:-5px}.report-template-filter .btn{min-height:42px;white-space:nowrap}
.report-template-practice-groups{display:grid;gap:18px}.report-template-practice-group{background:#faf8fa;border:1px solid #ddd4df;border-radius:13px;padding:13px}.report-template-practice-group>header{align-items:center;border-bottom:1px solid #e2dae4;display:flex;justify-content:space-between;margin-bottom:11px;padding:1px 2px 10px}.report-template-practice-group>header small{color:#8b6680;display:block;font-size:var(--font-size-help, .65rem);font-weight:var(--font-weight-label, 900);letter-spacing:.09em;text-transform:uppercase}.report-template-practice-group>header h3{color:#4c3f50;font-size:var(--font-size-card-title, 1rem);margin:2px 0 0}.report-template-practice-group>header>span{background:#eee5f0;border:1px solid #d6c7da;border-radius:7px;color:#66506f;font-size:var(--font-size-caption, .7rem);font-weight:var(--font-weight-label, 850);padding:5px 8px}
.appointment-sessions{margin-top:22px;padding:22px;border:1px solid rgb(var(--color-secondary-rgb) / .3);border-radius:var(--radius);background:rgb(var(--color-secondary-rgb) / .07)}.appointment-sessions__heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:16px}.appointment-sessions__heading h2{margin:2px 0 0;color:var(--color-primary-strong)}.appointment-sessions__heading p{margin:6px 0 0;color:var(--color-text-soft)}.appointment-sessions__count{flex:0 0 auto;padding:7px 11px;border-radius:999px;background:var(--color-surface);color:var(--color-primary);font-size:var(--font-size-help, 13px)}.appointment-sessions__list{display:grid;gap:12px}.appointment-session--shortcut{align-items:center;margin-top:0;background:#fffaf5;border-color:#dacbbc;display:grid;gap:16px;grid-template-columns:minmax(0,1fr) auto;padding:18px 20px}.appointment-session--shortcut .appointment-session__header{align-items:flex-start;margin:0}.appointment-session--shortcut .appointment-session__header h3{margin:2px 0 0;color:var(--color-primary-strong)}.appointment-session__shortcut-action{align-items:center;display:flex}.appointment-session__shortcut-action .btn{white-space:nowrap}@media(max-width:760px){.appointment-sessions{padding:16px}.appointment-sessions__heading{display:grid}.appointment-session--shortcut{grid-template-columns:minmax(0,1fr)}.appointment-session__shortcut-action .btn{width:100%}}
.report-template-paper-stage{background:#e9e5e0;border:1px solid #d6d0ca;border-radius:14px;box-shadow:inset 0 2px 10px rgba(54,46,40,.08);min-width:0;overflow:auto;padding:24px}
.report-template-paper{display:flex;flex-direction:column;min-height:1123px}
.report-template-paper__composition{flex:1;padding:24px 27px}
.report-template-paper__composition .report-block-list{align-content:start;min-height:840px}
.report-template-paper__footer{align-items:center;border-top:1px solid #ddd5dc;color:#746c75;display:flex;font-size:var(--font-size-table, .7rem);justify-content:space-between;margin:0 27px;padding:11px 0 16px}
.report-template-builder .questionnaire-preview-icon{cursor:pointer;padding:0}
.report-template-builder .report-builder-layout{align-items:start;grid-template-columns:250px minmax(0,1fr)}
.report-template-builder .report-builder-library{max-height:calc(100vh - var(--questionnaire-sticky-top,96px) - 12px);overflow:auto;top:var(--questionnaire-sticky-top,96px)}
.report-template-builder .report-module-library button{align-items:flex-end;background:#f8f5f9;border:1px solid #d5c9d8;border-radius:10px;box-sizing:border-box;color:#4d4052;display:flex;font-size:var(--font-size-control, .66rem);font-weight:var(--font-weight-label, 900);justify-content:flex-start;line-height:1.12;min-height:72px;overflow:hidden;overflow-wrap:anywhere;padding:7px 8px;position:relative;text-align:left;text-wrap:balance;white-space:normal;width:100%}
.report-template-builder .report-module-library button>span{color:#72587c;font-family:Georgia,serif;font-size:var(--font-size-control, 2.35rem);font-weight:var(--font-weight-label, 900);inset:2px 7px auto auto;line-height:1;opacity:.16;position:absolute}
.report-template-builder .report-module-library button>strong{font-size:var(--font-size-control, .7rem);line-height:1.15;overflow-wrap:anywhere;position:relative;z-index:1}
.report-template-builder .report-module-library button:hover,.report-template-builder .report-module-library button:focus-visible{background:#604869;border-color:#604869;color:#fff;outline:0;transform:translateY(-1px)}
.report-template-builder .report-block-card.is-selected{border:2px solid #72587c;box-shadow:0 14px 30px rgba(52,40,57,.18)!important;grid-column:1/-1!important;min-width:0;width:100%}
.report-template-builder.questionnaire-builder .report-block-card.is-selected.is-resizing{background:transparent;border-color:transparent;box-shadow:none!important;grid-column:var(--report-resize-grid-column,1/-1)!important;transition:none}
.report-template-builder .report-block-card.is-selected.is-resizing .report-block-card__header,.report-template-builder .report-block-card.is-selected.is-resizing .report-block-card__fields{display:none!important}
.report-template-builder .report-block-card.is-selected.is-resizing .report-module-rest{display:block!important}
.report-template-builder .report-block-card.is-selected.is-resizing>.report-resize-handle,.report-template-builder .report-block-card.is-selected.is-resizing>.questionnaire-height-handle{display:block!important;opacity:1!important;visibility:visible}
.report-template-builder .report-block-card.is-selected .report-block-card__fields{grid-template-columns:minmax(230px,1fr) minmax(180px,260px);padding:15px 17px}
.report-template-builder .report-block-card.is-selected .report-block-field--full{grid-column:1/-1}
.report-template-builder .report-block-card.is-selected input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),.report-template-builder .report-block-card.is-selected textarea,.report-template-builder .report-block-card.is-selected select{box-sizing:border-box;max-width:100%;min-width:0;width:100%}
.report-template-builder .report-block-card{min-height:var(--report-module-min-height,68px)}
.report-template-builder .report-block-card:not(.is-selected){color:var(--report-tone,#403941);font-family:var(--report-font-family,inherit);font-size:var(--report-font-size,.95rem);font-style:var(--report-font-style,normal);font-weight:var(--report-font-weight,400);text-decoration:var(--report-text-decoration,none)}
.report-template-builder .report-block-card:not(.is-selected) .report-block-field:first-child input,.report-template-builder .report-block-card:not(.is-selected) .report-block-field--full textarea{color:var(--report-tone,#403941);font-family:var(--report-font-family,inherit);font-size:var(--report-font-size,.95rem);font-style:var(--report-font-style,normal);font-weight:var(--report-font-weight,400);text-decoration:var(--report-text-decoration,none)}
.report-module-rest{color:var(--report-tone,#403941);display:none;font-family:var(--report-font-family,inherit);font-size:var(--report-font-size,.95rem);font-style:var(--report-font-style,normal);font-weight:var(--report-font-weight,400);min-height:var(--report-module-min-height,68px);padding:7px 3px;text-decoration:var(--report-text-decoration,none)}
.report-module-rest--section,.report-module-rest--heading_content{border-bottom:2px solid #a8c3b7;padding-bottom:8px}
.report-module-rest--section.has-no-separator,.report-module-rest--heading_content.has-no-separator{border-bottom-color:transparent}
.report-block-card:not(.is-selected) .report-module-rest{display:block}
.report-block-card:not(.is-selected) .report-block-card__fields{display:none!important}
.report-module-rest h3{color:inherit;font:inherit;font-weight:var(--font-weight-title, 800);margin:0 0 6px}
.report-module-rest p{font:inherit;line-height:1.5;margin:0;white-space:pre-wrap}
.report-module-rest ul{display:grid;gap:4px;margin:6px 0 0;padding-left:18px}
.report-module-rest__empty{align-items:center;background:#faf7fa;border:1px dashed #b9a9be;border-radius:9px;box-sizing:border-box;color:#695c6e;display:flex;gap:8px;min-height:calc(var(--report-module-min-height,68px) - 14px);padding:9px 11px;pointer-events:none}.report-module-rest__empty strong{color:#514456;font-size:var(--font-size-table, .78rem);font-weight:var(--font-weight-label, 800)}.report-module-rest__empty span{font-size:var(--font-size-table, .72rem)}
.report-module-rest__media{align-items:center;background:#f7f3f7;border:1px dashed #a693ab;border-radius:9px;color:#6a5a70;display:flex;font-size:var(--font-size-table, .75rem);font-weight:var(--font-weight-label, 800);justify-content:center;min-height:58px}
.report-module-rest--separator{align-items:center}.report-block-card:not(.is-selected) .report-module-rest--separator,.report-block-card.is-selected.is-resizing .report-module-rest--separator{display:flex!important}.report-module-rest--separator hr{border:0;border-top:2px solid var(--report-tone,#8d7a94);margin:auto;width:100%}
.report-template-builder .report-block-card.is-selected:not(.is-resizing)>.report-resize-handle{left:calc(var(--report-module-end,100%) - 6px);right:auto}
.report-template-builder .report-block-card.is-selected.is-resizing>.report-resize-handle{left:auto;right:-6px}
.report-template-builder.questionnaire-builder .report-block-card.is-selected:not(.is-resizing)>.questionnaire-height-handle{left:var(--report-module-center,50%)}
.report-template-builder .report-block-card.is-selected.is-resizing>.questionnaire-height-handle{left:50%}
.report-template-builder .report-block-card.is-selected .report-block-appearance{align-items:end;background:#f4eff5;border:1px solid #ddd2e0;border-radius:11px;display:grid!important;gap:9px;grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));padding:10px}
.report-template-builder .report-block-card:not(.is-selected) .report-block-appearance{display:none!important}
.report-preview__body,.report-generated-page__content{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}
.report-preview-block{color:var(--report-tone,#403941);font-family:var(--report-font-family,inherit);font-size:var(--report-font-size,.95rem);font-style:var(--report-font-style,normal);font-weight:var(--report-font-weight,400);text-decoration:var(--report-text-decoration,none)}
.report-template-builder .report-row-drop-grid,.report-template-builder .report-block-dropzone{display:none!important}
.report-template-builder .report-block-list{align-content:start;position:relative}
.report-template-builder .report-block-list__empty{align-items:center;box-sizing:border-box;display:flex;grid-column:1/-1;justify-content:center;min-height:120px;width:100%}
.report-template-builder .report-block-list.is-drop-append{background:rgba(70,119,98,.05);border-radius:12px;box-shadow:inset 0 0 0 2px rgba(70,119,98,.5)}
.report-template-builder.is-dragging-module .report-block-list:empty{background:rgba(70,119,98,.045);border:2px dashed #6f9d89;border-radius:12px;min-height:300px}
.report-template-builder.is-dragging-module .report-block-list:empty::before{align-items:center;color:#477762;content:"Déposer le premier module";display:flex;font-size:.8rem;font-weight:900;inset:0;justify-content:center;pointer-events:none;position:absolute}
@media(max-width:1050px){.report-template-builder .report-block-card.is-selected .report-block-appearance{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.report-template-builder .report-block-card.is-selected .report-block-appearance{grid-template-columns:minmax(0,1fr)}}
.questionnaire-builder .questionnaire-item-card.is-selected{border:2px solid #72587c;box-shadow:0 14px 30px rgba(52,40,57,.18)!important;grid-column:1/-1!important;min-width:0;width:100%}
.questionnaire-builder .questionnaire-item-card.is-selected.is-resizing{background:transparent;border-color:transparent;box-shadow:none!important;grid-column:var(--questionnaire-resize-grid-column,1/-1)!important;transition:none}
.questionnaire-builder .questionnaire-item-card.is-selected.is-resizing .questionnaire-item-card__head,.questionnaire-builder .questionnaire-item-card.is-selected.is-resizing .questionnaire-item-card__fields{display:none!important}
.questionnaire-builder .questionnaire-item-card.is-selected.is-resizing .questionnaire-module-rest{display:block!important;opacity:1!important}
.questionnaire-builder .questionnaire-item-card.is-selected.is-resizing .questionnaire-module-rest--section{display:flex!important}
.questionnaire-builder .questionnaire-item-card.is-selected.is-resizing .questionnaire-resize-handle,.questionnaire-builder .questionnaire-item-card.is-selected.is-resizing .questionnaire-height-handle{display:block!important;opacity:1!important;visibility:visible}
.questionnaire-builder .questionnaire-item-card.is-selected .questionnaire-item-card__fields{grid-template-columns:minmax(230px,1fr) minmax(180px,260px);padding:15px 17px}
.questionnaire-builder .questionnaire-item-card.is-selected:not(.is-resizing)>.questionnaire-resize-handle{left:calc(var(--questionnaire-module-width,100%) - 6px);right:auto}
.questionnaire-builder .questionnaire-item-card.is-selected.is-resizing>.questionnaire-resize-handle{left:auto;right:-6px}
.questionnaire-builder .questionnaire-item-card.is-selected:not(.is-resizing)>.questionnaire-height-handle{left:calc(var(--questionnaire-module-width,100%) / 2)}
.questionnaire-builder .questionnaire-item-card.is-selected.is-resizing>.questionnaire-height-handle{left:50%}
.questionnaire-builder .questionnaire-item-card.is-selected .questionnaire-item-field.is-wide,.questionnaire-builder .questionnaire-item-card.is-selected .questionnaire-required,.questionnaire-builder .questionnaire-item-card.is-selected .questionnaire-options-editor,.questionnaire-builder .questionnaire-item-card.is-selected .questionnaire-appearance-controls{grid-column:1/-1}
.questionnaire-builder .questionnaire-item-card.is-selected input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),.questionnaire-builder .questionnaire-item-card.is-selected textarea,.questionnaire-builder .questionnaire-item-card.is-selected select{box-sizing:border-box;max-width:100%;min-width:0;width:100%}
.questionnaire-builder .questionnaire-item-card.is-selected input[type="checkbox"],.questionnaire-builder .questionnaire-item-card.is-selected input[type="radio"]{flex:0 0 auto;height:20px;margin:0;width:20px}
.questionnaire-builder .questionnaire-item-card.is-selected textarea{overflow-wrap:anywhere;white-space:pre-wrap}
@media(max-width:720px){.questionnaire-builder .questionnaire-item-card.is-selected .questionnaire-item-card__fields{grid-template-columns:minmax(0,1fr)}}
@media(max-width:900px){.report-template-settings{grid-template-columns:minmax(0,1fr)}.report-template-create{grid-template-columns:minmax(0,1fr)}.questionnaire-section-heading{align-items:flex-start;flex-wrap:wrap}.questionnaire-section-heading .report-template-filter{grid-template-columns:minmax(0,1fr) auto;margin-left:46px;width:calc(100% - 46px)}.report-template-builder .report-builder-layout{grid-template-columns:minmax(0,1fr)}.report-template-builder .report-builder-library{max-height:none;position:static}.report-template-paper-stage{padding:12px}}
@media(max-width:600px){.questionnaire-section-heading .report-template-filter{grid-template-columns:minmax(0,1fr);margin-left:0;width:100%}.report-template-practice-group{padding:10px}.report-template-practice-group>header{align-items:flex-start;gap:8px}}

/* Remplissage d'un compte rendu lié à un bilan : le modèle est figé, seuls les contenus sont saisis. */
.report-fill-page{container-type:inline-size}
.report-fill-template-bar{align-items:end;background:#f8f5f1;border-color:#d8d0c8;display:grid;gap:18px;grid-template-columns:minmax(220px,.85fr) minmax(360px,1.15fr);padding:16px 18px}
.report-fill-template-bar__current{display:grid;gap:3px;min-width:0}
.report-fill-template-bar__current>span,.report-fill-template-bar form>label{color:#756b65;font-size:var(--font-size-label, .7rem);font-weight:var(--font-weight-label, 900);letter-spacing:.08em;text-transform:uppercase}
.report-fill-template-bar__current>strong{color:#355f52;font-size:var(--font-size-body, 1rem);overflow-wrap:anywhere}
.report-fill-template-bar__current>small{color:#726b67;font-size:var(--font-size-help, .76rem);line-height:1.35}
.report-fill-template-bar form{display:grid;gap:6px;min-width:0}
.report-fill-template-bar form>div{display:grid;gap:9px;grid-template-columns:minmax(0,1fr) auto;min-width:0}
.report-fill-template-bar select{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'%3E%3Cpath d='m1 1 6 6 6-6' fill='none' stroke='%23556b63' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 13px center;border:1px solid #c9c2bb;border-radius:9px;box-sizing:border-box;color:#342f2c;font:inherit;min-height:43px;min-width:0;padding:9px 40px 9px 12px;width:100%}
.report-fill-template-bar select:focus{border-color:#527b6d;box-shadow:0 0 0 3px rgba(82,123,109,.15);outline:0}
.report-fill-page .report-builder-toolbar{background:#fbfaf8;border-color:#d8d1ca;grid-template-columns:minmax(240px,1.15fr) minmax(230px,.85fr) auto auto auto;padding:14px;position:relative}
.report-fill-page .report-builder-toolbar__identity{background:#fff;border:1px solid #d8d0ca;border-radius:12px;box-shadow:0 5px 14px rgba(52,45,41,.07);gap:7px;min-height:76px;padding:10px 12px;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.report-fill-page .report-builder-toolbar__identity:focus-within{border-color:#587d70;box-shadow:0 0 0 3px rgba(88,125,112,.13),0 8px 20px rgba(52,45,41,.09);transform:translateY(-1px)}
.report-fill-page .report-builder-toolbar__identity label{align-items:center;color:#6d625e;display:flex;font-size:var(--font-size-label, .68rem);font-weight:var(--font-weight-label, 900);gap:7px;letter-spacing:.075em;line-height:1.2;text-transform:uppercase}
.report-fill-page .report-builder-toolbar__identity label::before{background:#5e766d;border-radius:999px;content:"";display:block;height:7px;flex:0 0 7px;width:7px}
.report-fill-page .report-builder-toolbar__identity label small{color:#8a817d;font-size:var(--font-size-help, .64rem);font-weight:var(--font-weight-label, 800);letter-spacing:0;text-transform:none}
.report-fill-page .report-builder-toolbar__identity input{background:transparent;border:0;border-bottom:2px solid #d8d0ca;border-radius:0;box-shadow:none;box-sizing:border-box;color:#2f3935;font-family:Georgia,serif;font-size:var(--font-size-input, 1.02rem);font-weight:var(--font-weight-body, 700);line-height:1.3;max-width:100%;min-height:37px;min-width:0;padding:5px 2px 7px;width:100%}
.report-fill-page .report-builder-toolbar__identity input::placeholder{color:#9a928e;font-family:"Source Sans 3","Source Sans Pro",sans-serif;font-size:var(--font-size-input, .87rem);font-weight:var(--font-weight-body, 600);opacity:1}
.report-fill-page .report-builder-toolbar__identity input:focus{border-bottom-color:#477260;box-shadow:none;outline:0}
.report-fill-page .questionnaire-a3-paper__tools .questionnaire-preview-icon{cursor:pointer;padding:0}
.practice-report-preview-document{display:grid;gap:18px;margin:0 auto;max-width:1123px}.practice-report-preview-sheet{box-sizing:border-box;display:flex;flex-direction:column;padding:42px 52px 28px}.practice-report-preview-sheet__header{align-items:center;border-bottom:1px solid #ddd4cf;display:grid;gap:16px;grid-template-columns:auto minmax(0,1fr);margin-bottom:14px;padding-bottom:16px}.practice-report-preview-sheet__header h1{color:#403941;font-family:Georgia,serif;font-size:1.55rem;margin:2px 0}.practice-report-preview-sheet__header small{color:#6d5476;font-size:.7rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.practice-report-preview-sheet__header p{color:#776d73;margin:3px 0 0}.practice-report-preview-sheet .report-generated-page__content{align-content:start;flex:1}.practice-report-preview-sheet .report-generated-page__number{margin-top:auto}@media(max-width:760px){.practice-report-preview-sheet{padding:28px 24px 22px}}
.practice-report-preview-shell{overflow-x:hidden}.practice-report-preview-page{box-sizing:border-box;max-width:1211px;width:100%}.practice-report-preview-page .practice-report-preview-document{box-sizing:border-box;max-width:1123px;width:100%}.practice-report-preview-page .report-generated-page--portrait{max-width:100%;width:794px}.practice-report-preview-page .report-generated-page--landscape{max-width:100%;width:1123px}@media(max-width:1165px){.practice-report-preview-page{padding-left:12px;padding-right:12px}.practice-report-preview-page .practice-report-preview-sheet{min-height:auto}.practice-report-preview-page .report-generated-page--portrait{aspect-ratio:794/1123}.practice-report-preview-page .report-generated-page--landscape{aspect-ratio:1123/794}}
.report-fill-workspace{background:#f4f0eb;border:1px solid #d8d1ca;border-radius:15px;box-shadow:inset 0 2px 10px rgba(54,46,40,.07);display:grid;gap:13px;padding:18px}
.report-fill-heading{margin:0}
.report-fill-paper{margin:0 auto;max-width:900px;width:100%}
.report-fill-paper .questionnaire-a3-paper__header>div:nth-child(2){display:grid;gap:2px;min-width:0}
.report-fill-paper .questionnaire-a3-paper__header>div:nth-child(2)>strong{color:#332e31;font-family:Georgia,serif;font-size:1.2rem;overflow-wrap:anywhere}
.report-fill-paper .questionnaire-a3-paper__header>div:nth-child(2)>span{color:#746d72;font-size:.78rem;overflow-wrap:anywhere}
.report-fill-paper .questionnaire-a3-paper__header>div:nth-child(2)>span[hidden]{display:none}
.questionnaire-a3-paper__report-meta{align-items:stretch;background:rgba(255,255,255,.7);border:1px solid #ded6cd;border-radius:10px;display:grid;gap:14px;grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;padding:10px 12px}
.questionnaire-a3-paper__animal-meta{align-items:stretch;display:grid;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;min-width:0}
.questionnaire-a3-paper__animal-meta>div{display:grid;gap:2px;min-width:0}
.questionnaire-a3-paper__animal-meta dt,.questionnaire-a3-paper__report-date span{color:#766d70;font-size:.62rem;font-weight:700;letter-spacing:.055em;line-height:1.2;text-transform:uppercase}
.questionnaire-a3-paper__animal-meta dd{color:#342f32;font-size:.78rem;font-weight:750;line-height:1.35;margin:0;overflow-wrap:anywhere}
.questionnaire-a3-paper__animal-meta>div:first-child dd{color:#355f52;font-weight:850}
.questionnaire-a3-paper__report-date{border-left:1px solid #ddd5cf;display:grid;gap:2px;min-width:118px;padding-left:14px}
.questionnaire-a3-paper__report-date strong{align-self:end;color:#342f32;font-size:.68rem;font-weight:750;white-space:nowrap}
@media(max-width:720px){.questionnaire-a3-paper__report-meta{grid-template-columns:minmax(0,1fr)}.questionnaire-a3-paper__animal-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.questionnaire-a3-paper__report-date{border-left:0;border-top:1px solid #ddd5cf;padding-left:0;padding-top:8px}}
.report-fill-grid{display:grid;gap:12px;grid-template-columns:repeat(12,minmax(0,1fr));min-width:0}
.report-fill-block{background:#fff;border:1px solid #ddd5dc;border-radius:10px;box-shadow:0 4px 12px rgba(52,43,56,.06);box-sizing:border-box;color:var(--report-tone,#403941);display:grid;font-family:var(--report-font-family,inherit);font-size:var(--report-font-size,.95rem);font-style:var(--report-font-style,normal);font-weight:var(--report-font-weight,400);gap:9px;min-width:0;padding:13px 14px;text-decoration:var(--report-text-decoration,none)}
.report-fill-block.has-final-visibility-control{padding-right:48px;position:relative}
.report-fill-block.has-final-visibility-control.report-fill-block--untitled{padding-top:42px}
.report-fill-block__visibility{align-items:center;background:#fff;border:1px solid #d8d0d9;border-radius:7px;color:#5b505d;cursor:pointer;display:inline-flex;height:30px;justify-content:center;position:absolute;right:9px;top:7px;width:30px;z-index:2}
.report-fill-block__visibility:hover{background:#f5f8f6;border-color:#98b1a5;color:#315f4d}
.report-fill-block__visibility:focus-within{box-shadow:0 0 0 3px rgb(var(--color-primary-rgb)/.14);outline:0}
.report-fill-block__visibility input{accent-color:var(--color-primary);cursor:pointer;height:15px;margin:0;width:15px}
.report-fill-block.is-excluded-from-final{background:#f6f3f5;border-style:dashed;box-shadow:none}
.report-fill-block.is-excluded-from-final>:not(.report-fill-block__visibility){opacity:.52}
.report-fill-block--columns-1{grid-column:span 1}.report-fill-block--columns-2{grid-column:span 2}.report-fill-block--columns-3{grid-column:span 3}.report-fill-block--columns-4{grid-column:span 4}.report-fill-block--columns-5{grid-column:span 5}.report-fill-block--columns-6{grid-column:span 6}.report-fill-block--columns-7{grid-column:span 7}.report-fill-block--columns-8{grid-column:span 8}.report-fill-block--columns-9{grid-column:span 9}.report-fill-block--columns-10{grid-column:span 10}.report-fill-block--columns-11{grid-column:span 11}.report-fill-block--columns-12{grid-column:span 12}
.report-fill-block--row-start.report-fill-block--columns-1{grid-column:1/span 1}.report-fill-block--row-start.report-fill-block--columns-2{grid-column:1/span 2}.report-fill-block--row-start.report-fill-block--columns-3{grid-column:1/span 3}.report-fill-block--row-start.report-fill-block--columns-4{grid-column:1/span 4}.report-fill-block--row-start.report-fill-block--columns-5{grid-column:1/span 5}.report-fill-block--row-start.report-fill-block--columns-6{grid-column:1/span 6}.report-fill-block--row-start.report-fill-block--columns-7{grid-column:1/span 7}.report-fill-block--row-start.report-fill-block--columns-8{grid-column:1/span 8}.report-fill-block--row-start.report-fill-block--columns-9{grid-column:1/span 9}.report-fill-block--row-start.report-fill-block--columns-10{grid-column:1/span 10}.report-fill-block--row-start.report-fill-block--columns-11{grid-column:1/span 11}.report-fill-block--row-start.report-fill-block--columns-12{grid-column:1/-1}
.report-fill-block h3{border-bottom:0;color:inherit;font:inherit;font-weight:var(--font-weight-title, 850);line-height:1.25;margin:0 0 5px;padding-bottom:0}
.report-fill-block--section h3,.report-fill-block--heading_content h3{border-bottom:2px solid #a8c3b7;padding-bottom:8px}
.report-fill-block--section.has-no-separator h3,.report-fill-block--heading_content.has-no-separator h3{border-bottom-color:transparent}
.report-fill-block textarea,.report-fill-block input[type="text"]{background:#fcfbfc;border:1px solid #cec5d0;border-radius:9px;box-sizing:border-box;color:#383239;font:inherit;line-height:1.5;max-width:100%;min-height:43px;min-width:0;padding:10px 11px;width:100%}
.report-fill-block textarea{overflow:hidden;resize:vertical}
.report-fill-block textarea:focus,.report-fill-block input[type="text"]:focus{background:#fff;border-color:#72577c;box-shadow:0 0 0 3px rgba(114,87,124,.13);outline:0}
.report-structured-entry{display:grid;gap:9px;min-width:0}.report-structured-entry__row{align-items:end;background:#faf8fa;border:1px solid #ddd5df;border-radius:10px;display:grid;gap:9px;grid-template-columns:minmax(130px,.65fr) minmax(0,1fr) 36px;padding:10px}.report-structured-entry--nutrition_entry .report-structured-entry__row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(90px,.55fr) minmax(75px,.4fr) 36px}.report-structured-entry__field{color:#5a505f;display:grid;font-size:var(--font-size-label, .72rem);font-weight:var(--font-weight-label, 750);gap:5px;min-width:0}.report-structured-entry__field input{background:#fff;border:1px solid #cec5d0;border-radius:9px;box-sizing:border-box;color:#383239;font:inherit;min-height:41px;min-width:0;padding:9px 10px;width:100%}.report-structured-entry__remove{align-items:center;background:#fff5f5;border:1px solid #d9b9bc;border-radius:8px;color:#9a454d;cursor:pointer;display:flex;font-size:var(--font-size-body, 1.1rem);font-weight:var(--font-weight-label, 800);height:36px;justify-content:center;width:36px}.report-structured-entry__add{justify-self:start;width:auto}.report-structured-entry--bullet-list .report-structured-entry__row{grid-template-columns:minmax(0,1fr) 36px}.report-structured-entry--bullet-list .report-structured-entry__row>input{background:#fff;border:1px solid #cec5d0;border-radius:9px;box-sizing:border-box;color:#383239;font:inherit;min-height:41px;min-width:0;padding:9px 10px;width:100%}@container(max-width:700px){.report-structured-entry__row,.report-structured-entry--nutrition_entry .report-structured-entry__row{grid-template-columns:minmax(0,1fr)}.report-structured-entry__remove{justify-self:end}}
.report-fill-block--inline-response{background:transparent;border-color:transparent;box-shadow:none;padding:3px 0}
.report-fill-block--inline-response.has-final-visibility-control{padding-right:48px}
.report-fill-block--inline-response:focus-within{background:rgb(var(--color-primary-rgb)/.025);outline:1px solid rgb(var(--color-primary-rgb)/.16);outline-offset:5px}
.report-fill-block .report-fill-inline-response{background:transparent;border:0;border-radius:0;box-shadow:none;line-height:1.5;min-height:1.5em;padding:0}
.report-fill-block .report-fill-inline-response:focus{background:transparent;border-color:transparent;box-shadow:none;outline:0}
.report-fill-block .report-fill-inline-response--long{min-height:3em;resize:vertical}
.report-fill-bullet-editor{display:grid;gap:5px;min-width:0}.report-fill-bullet-editor ul{display:grid;gap:3px;list-style:none;margin:0;padding:0}.report-fill-bullet-editor__row{align-items:center;display:grid;gap:7px;grid-template-columns:12px minmax(0,1fr) 26px;min-width:0}.report-fill-bullet-editor__marker{align-self:start;color:inherit;font-size:var(--font-size-body, 1em);line-height:1.5;text-align:center}.report-fill-bullet-editor__row>input{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;color:inherit!important;font:inherit!important;line-height:1.5!important;min-height:1.5em!important;padding:0!important}.report-fill-bullet-editor__row>.report-structured-entry__remove{height:24px;opacity:.45;width:24px}.report-fill-bullet-editor__row:focus-within>.report-structured-entry__remove,.report-fill-bullet-editor__row:hover>.report-structured-entry__remove{opacity:1}.report-fill-bullet-editor>.report-structured-entry__add{font-size:var(--font-size-control, .72rem);margin-top:3px;min-height:30px;padding:5px 9px}
.report-fill-block--known{background:#f0f6f3;border-color:#bed2c8;box-shadow:none}
.report-fill-block--known h3{border-bottom-color:#d2e2da;color:#315c4b}
.report-fill-block--known p{line-height:1.5;margin:0;white-space:pre-wrap}
.report-fill-block--automatic{background:#fbf8fb}.report-fill-block__automatic-label{color:var(--color-text-soft);font-size:var(--font-size-label, .72rem);font-weight:var(--font-weight-label, 600);letter-spacing:.02em}.report-fill-block--automatic input[readonly]{background:transparent;border-color:transparent;color:inherit;cursor:default;padding-inline:4px}
.report-fill-block--animal_identity.report-fill-block--known,.report-preview-block--animal_identity{align-self:start;background:var(--color-secondary-faint);border:0;border-radius:14px;box-shadow:none;padding:10px 12px}.report-known-information{align-content:flex-start;align-items:stretch;display:flex;flex-wrap:wrap;gap:7px;margin:0;min-width:0}.report-known-information>div{align-items:baseline;background:var(--color-surface);border:0;border-radius:9px;box-shadow:0 2px 7px rgb(var(--color-primary-rgb)/.07);box-sizing:border-box;display:flex;gap:5px;min-width:0;padding:7px 10px}.report-known-information dt{color:var(--color-text-soft);font-size:var(--font-size-label, .7em);font-weight:var(--font-weight-label, 600);letter-spacing:.01em;line-height:1.3}.report-known-information dt::after{content:" :"}.report-known-information dd{color:var(--color-primary-strong);font-size:var(--font-size-table, .86em);font-weight:var(--font-weight-label, 750);line-height:1.35;margin:0;overflow-wrap:anywhere}.report-preview-block--animal_identity .report-known-information>div{padding:7px 10px}@container(max-width:420px){.report-fill-block--animal_identity.report-fill-block--known,.report-preview-block--animal_identity{padding:9px}.report-known-information{gap:6px}}
.report-fill-block--separator{background:transparent;border:0;box-shadow:none;padding:7px 0}
.report-fill-block--separator hr{border:0;border-top:2px solid var(--report-tone,#8d7a94);margin:0;width:100%}
.report-worked-points-host{container-type:inline-size;max-width:100%;min-width:0}.report-worked-points{display:grid;gap:14px;max-width:100%;min-width:0}.report-worked-points__views{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));max-width:100%;min-width:0}.report-worked-points__views--1{grid-template-columns:minmax(0,1fr)}.report-worked-points__view-column{display:grid;gap:8px;min-width:0}.report-worked-points__view{background:#f7f4f1;border:1px solid #ddd5cf;border-radius:11px;margin:0;overflow:hidden;min-width:0}.report-worked-points__viewport{align-items:center;aspect-ratio:4/3;background:#eee9e4;display:flex;justify-content:center;overflow:hidden;position:relative}.report-worked-points__viewport canvas,.report-worked-points__viewport img{display:block;height:100%;object-fit:contain;width:100%}.report-worked-points__view figcaption{background:#fff;color:#4d454b;font-size:.76rem;font-weight:750;padding:7px 9px;text-align:center}.report-worked-points__unavailable{color:#766d73;font-size:.75rem}.report-worked-points__details-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));max-width:100%;min-width:0}.report-worked-points__details{align-content:start;border:1px solid #d9e2df;border-radius:10px;display:grid;gap:8px;min-width:0;padding:10px}.report-worked-points__details--dispersion{background:#f2f7f5}.report-worked-points__details--tonification{background:#fcf2f7;border-color:#efd1df}.report-worked-points__details h4{color:#28524f;font-size:var(--font-size-label);font-weight:850;margin:0;overflow-wrap:anywhere}.report-worked-points__details--tonification h4{color:#8e315f}.report-worked-points__detail-list{display:grid;gap:7px;grid-template-columns:minmax(0,1fr);margin:0;padding:0;list-style:none;min-width:0}.report-worked-points__detail-list>li{background:#fff;border:1px solid #e2dcd7;border-radius:8px;display:grid;gap:4px;min-width:0;overflow-wrap:anywhere;padding:9px 10px 9px 36px;position:relative}.report-worked-points__detail-number{align-items:center;background:var(--color-primary);border-radius:50%;color:#fff;display:flex;font-size:.67rem;font-weight:850;height:22px;justify-content:center;left:9px;position:absolute;top:9px;width:22px}.report-worked-points__details--tonification .report-worked-points__detail-number{background:#a83f74}.report-worked-points__detail-heading{align-items:baseline;display:flex;flex-wrap:wrap;gap:4px 8px;min-width:0}.report-worked-points__detail-heading strong{color:#383238;font-size:.78rem;font-weight:800;overflow-wrap:anywhere}.report-worked-points__detail-heading span,.report-worked-points__detail-view{color:#6f666c;font-size:var(--font-size-caption);overflow-wrap:anywhere}.report-worked-points__detail-list p{font-size:.72rem;line-height:1.4;margin:0;overflow-wrap:anywhere}.report-worked-points__detail-list ul{color:#655d63;font-size:.69rem;line-height:1.35;margin:2px 0 0;padding-left:16px}.report-worked-points__detail-empty{color:#6f666c;font-size:var(--font-size-caption);padding:10px!important}.report-worked-points-placeholder{background:#f4f0ed;border:1px dashed #c9bdb7;border-radius:10px;color:#655d62;display:grid;gap:3px;padding:13px}.report-worked-points-placeholder strong{color:#453d43;font-size:.8rem}.report-worked-points-placeholder span{font-size:.72rem;line-height:1.4}@container(max-width:520px){.report-worked-points__views,.report-worked-points__details-grid{grid-template-columns:minmax(0,1fr)}}
.report-worked-points__views{align-items:start}.report-worked-points__view-column{align-content:start}.report-worked-points__view-column--empty{visibility:hidden}.report-preview-block--worked_points-views,.report-preview-block--worked_points-details{box-sizing:border-box;max-width:100%;min-width:0;width:100%}.report-preview-block--worked_points-views .report-worked-points,.report-preview-block--worked_points-details .report-worked-points{min-width:0;width:100%}.report-generated-page .report-preview-block--worked_points-views .report-worked-points__views,.report-generated-page__content.is-measuring .report-preview-block--worked_points-views .report-worked-points__views{gap:8px;grid-template-columns:repeat(4,minmax(0,1fr))}.report-generated-page .report-preview-block--worked_points-views .report-worked-points__views--1,.report-generated-page__content.is-measuring .report-preview-block--worked_points-views .report-worked-points__views--1{grid-template-columns:minmax(0,1fr)}.report-generated-page .report-preview-block--worked_points-views .report-worked-points__viewport,.report-generated-page__content.is-measuring .report-preview-block--worked_points-views .report-worked-points__viewport{aspect-ratio:1/1}.report-generated-page .report-preview-block--worked_points-details .report-worked-points__details-grid{box-sizing:border-box;width:100%}
.report-generated-page .report-preview-block--worked_points:not(.report-preview-block--worked_points-views):not(.report-preview-block--worked_points-details) .report-worked-points,.report-generated-page__content.is-measuring .report-preview-block--worked_points:not(.report-preview-block--worked_points-views):not(.report-preview-block--worked_points-details) .report-worked-points{gap:8px}.report-generated-page .report-preview-block--worked_points:not(.report-preview-block--worked_points-views):not(.report-preview-block--worked_points-details) .report-worked-points__views,.report-generated-page__content.is-measuring .report-preview-block--worked_points:not(.report-preview-block--worked_points-views):not(.report-preview-block--worked_points-details) .report-worked-points__views{gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.report-generated-page .report-preview-block--worked_points:not(.report-preview-block--worked_points-views):not(.report-preview-block--worked_points-details) .report-worked-points__views--1,.report-generated-page__content.is-measuring .report-preview-block--worked_points:not(.report-preview-block--worked_points-views):not(.report-preview-block--worked_points-details) .report-worked-points__views--1{grid-template-columns:minmax(0,1fr)}.report-generated-page .report-preview-block--worked_points:not(.report-preview-block--worked_points-views):not(.report-preview-block--worked_points-details) .report-worked-points__viewport,.report-generated-page__content.is-measuring .report-preview-block--worked_points:not(.report-preview-block--worked_points-views):not(.report-preview-block--worked_points-details) .report-worked-points__viewport{aspect-ratio:16/9}.report-generated-page .report-preview-block--worked_points:not(.report-preview-block--worked_points-views):not(.report-preview-block--worked_points-details) .report-worked-points__view figcaption,.report-generated-page__content.is-measuring .report-preview-block--worked_points:not(.report-preview-block--worked_points-views):not(.report-preview-block--worked_points-details) .report-worked-points__view figcaption{padding:4px 6px}.report-generated-page .report-preview-block--worked_points:not(.report-preview-block--worked_points-views):not(.report-preview-block--worked_points-details) .report-worked-points__details-grid,.report-generated-page__content.is-measuring .report-preview-block--worked_points:not(.report-preview-block--worked_points-views):not(.report-preview-block--worked_points-details) .report-worked-points__details-grid{gap:6px}.report-generated-page .report-preview-block--worked_points:not(.report-preview-block--worked_points-views):not(.report-preview-block--worked_points-details) .report-worked-points__details,.report-generated-page__content.is-measuring .report-preview-block--worked_points:not(.report-preview-block--worked_points-views):not(.report-preview-block--worked_points-details) .report-worked-points__details{gap:5px;padding:7px}.report-generated-page .report-preview-block--worked_points:not(.report-preview-block--worked_points-views):not(.report-preview-block--worked_points-details) .report-worked-points__detail-list,.report-generated-page__content.is-measuring .report-preview-block--worked_points:not(.report-preview-block--worked_points-views):not(.report-preview-block--worked_points-details) .report-worked-points__detail-list{gap:4px}.report-generated-page .report-preview-block--worked_points:not(.report-preview-block--worked_points-views):not(.report-preview-block--worked_points-details) .report-worked-points__detail-list>li,.report-generated-page__content.is-measuring .report-preview-block--worked_points:not(.report-preview-block--worked_points-views):not(.report-preview-block--worked_points-details) .report-worked-points__detail-list>li{padding:6px 7px 6px 29px}.report-generated-page .report-preview-block--worked_points:not(.report-preview-block--worked_points-views):not(.report-preview-block--worked_points-details) .report-worked-points__detail-number,.report-generated-page__content.is-measuring .report-preview-block--worked_points:not(.report-preview-block--worked_points-views):not(.report-preview-block--worked_points-details) .report-worked-points__detail-number{height:17px;left:6px;top:6px;width:17px}
.report-fill-checklist,.report-fill-values{display:grid;gap:7px}
.report-nutrient-chart-host{container-type:inline-size;min-width:0;width:100%}
.report-nutrient-chart{display:grid;gap:10px;min-width:0}.report-nutrient-chart__legend{align-items:center;color:#6b6268;display:flex;font-size:var(--font-size-table, .68rem);justify-content:flex-end}.report-nutrient-chart__need{align-items:center;display:flex;gap:6px}.report-nutrient-chart__need::before{background:#4f464c;content:"";display:inline-block;height:12px;width:2px}.report-nutrient-chart__rows{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.report-nutrient-chart__row{display:grid;gap:4px;min-width:0}.report-nutrient-chart__heading{align-items:baseline;display:flex;gap:8px;justify-content:space-between;min-width:0}.report-nutrient-chart__heading strong{font-size:var(--font-size-card-title, .76rem);font-weight:var(--font-weight-title, 720);overflow-wrap:anywhere}.report-nutrient-chart__heading span{font-size:var(--font-size-caption, .72rem);font-variant-numeric:tabular-nums;font-weight:var(--font-weight-label, 800);white-space:nowrap}.report-nutrient-chart__scale{height:auto;min-width:0;aspect-ratio:400/46}.report-nutrient-chart__scale svg{display:block;height:auto;width:100%}.report-nutrient-chart__track{fill:#eee9ec}.report-nutrient-chart__bar{fill:#8a7d84}.report-nutrient-chart__bar--adequate{fill:#4f866e}.report-nutrient-chart__bar--low{fill:#d49a53}.report-nutrient-chart__bar--high{fill:#c86b78}.report-nutrient-chart__bar--unavailable{fill:#c9c1c5}.report-nutrient-chart__marker{stroke:#4f464c;stroke-width:1.5}.report-nutrient-chart__status{color:#756b71;font-size:var(--font-size-caption, .64rem);line-height:1.25}.report-nutrient-chart__row.is-missing .report-nutrient-chart__heading span{color:#8b8387}@container(max-width:560px){.report-nutrient-chart__rows{grid-template-columns:minmax(0,1fr)}}
.report-fill-check{align-items:center;background:#faf8fa;border:1px solid #ddd5df;border-radius:9px;cursor:pointer;display:grid;gap:9px;grid-template-columns:21px minmax(0,1fr);min-height:43px;padding:8px 10px}
.report-fill-check:hover{background:#f3eef4;border-color:#b9a9be}
.report-fill-check input{appearance:none;background:#fff;border:2px solid #82698c;border-radius:5px;height:20px;margin:0;position:relative;width:20px}
.report-fill-check input:checked{background:#5d4967;border-color:#5d4967}
.report-fill-check input:checked::after{border:solid #fff;border-width:0 2px 2px 0;content:"";height:9px;left:6px;position:absolute;top:2px;transform:rotate(45deg);width:4px}
.report-fill-check input:focus-visible{box-shadow:0 0 0 3px rgba(93,73,103,.2);outline:0}
.report-fill-check span{line-height:1.35;overflow-wrap:anywhere}
.report-fill-media{background:#f7f3f7;border:1px solid #ded4e0;border-radius:9px;padding:10px}
.report-fill-media__heading{align-items:center;display:flex;gap:10px;justify-content:space-between}
.report-fill-media__heading>span{color:#655a68;font-size:var(--font-size-caption, .76rem);font-weight:var(--font-weight-label, 850)}
.report-fill-empty{background:#fff;border:1px dashed #bbaebf;border-radius:10px;color:#706775;grid-column:1/-1;padding:24px;text-align:center}
@container(max-width:980px){.report-fill-template-bar{grid-template-columns:minmax(0,1fr)}.report-fill-page .report-builder-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.report-fill-page .report-builder-toolbar__status,.report-fill-page .report-builder-generate,.report-fill-page .report-builder-send{align-items:stretch;width:100%}}
@container(max-width:720px){.report-fill-page .report-builder-toolbar{grid-template-columns:minmax(0,1fr)}.report-fill-template-bar form>div{grid-template-columns:minmax(0,1fr)}.report-fill-workspace{padding:10px}.report-fill-paper .report-template-paper__composition{padding:18px 16px}.report-fill-block{grid-column:1/-1!important}.report-fill-media__heading{align-items:stretch;display:grid}.report-fill-media__heading .btn{width:100%}}
.report-builder-library .report-module-library { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.report-builder-library .report-module-library button { min-width:0; text-align:left; }
.report-builder-library .report-builder-hint { line-height:1.45; margin:0 0 13px; }
.report-builder-page.is-dragging-module .report-block-dropzone { background:#f3edf5; border-color:#c2b2c7; color:#624e69; height:38px; margin:1px 0; }
.report-builder-page.is-dragging-module .report-block-dropzone.is-active { background:#e5f0eb; border-color:#5f8c79; color:#315f4d; height:48px; }
.report-generated-modal { align-items:center; justify-content:center; }
.report-generated-modal:not([hidden]) { display:flex; }
.report-generated-modal__panel { background:#f3efea; border-radius:15px; box-shadow:0 26px 70px rgba(30,24,32,.35); display:grid; grid-template-rows:auto minmax(0,1fr) auto; height:min(94vh,1000px); max-width:min(1180px,96vw); overflow:hidden; width:100%; }
.report-generated-modal__panel > header,.report-generated-modal__panel > footer { align-items:center; background:#fff; display:flex; gap:14px; justify-content:space-between; padding:14px 18px; }
.report-generated-modal__panel > header { border-bottom:1px solid #ddd5cf; }
.report-generated-modal__panel > footer { border-top:1px solid #ddd5cf; }
.report-generated-modal__panel > header small { color:#746a77; font-size:var(--font-size-help, .68rem); font-weight:var(--font-weight-label, 900); letter-spacing:.08em; text-transform:uppercase; }
.report-generated-modal__panel > header h2 { font-family:Georgia,serif; font-size:var(--font-size-card-title, 1.18rem); margin:2px 0 0; }
.report-generated-modal__panel > header button { align-items:center; background:#f0eaf1; border:0; border-radius:50%; color:#59455f; cursor:pointer; display:flex; font-size:var(--font-size-control, 1.35rem); height:35px; justify-content:center; width:35px; }
.generated-document-export-modal .app-confirm-modal__panel{max-width:620px;width:min(620px,calc(100vw - 30px))}
.generated-document-export-modal .app-confirm-modal__header small{color:var(--color-text-soft);display:block;font-size:var(--font-size-help, .72rem);font-weight:var(--font-weight-label, 650);letter-spacing:.06em;margin-bottom:3px;text-transform:uppercase}
.generated-document-export-modal form{display:grid;gap:18px;padding:18px 20px 20px}
.generated-document-export-options{border:0;display:grid;gap:10px;margin:0;padding:0}
.generated-document-export-options legend{font-size:var(--font-size-label, .78rem);font-weight:var(--font-weight-label, 650);margin-bottom:5px}
.generated-document-export-options label{align-items:center;background:#fff;border:1px solid #d9e2df;border-radius:12px;cursor:pointer;display:flex;gap:12px;padding:13px 14px;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease}
.generated-document-export-options label:has(input:checked){background:#f0f6f3;border-color:#568276;box-shadow:0 0 0 2px rgba(86,130,118,.12)}
.generated-document-export-options input{accent-color:var(--color-primary);height:18px;margin:0;width:18px}
.generated-document-export-options span{display:grid;gap:2px}.generated-document-export-options strong{font-size:var(--font-size-body, .92rem);font-weight:var(--font-weight-label, 760)}.generated-document-export-options small{color:var(--color-text-soft);font-size:var(--font-size-help, .78rem);font-weight:var(--font-weight-body, 450)}
.generated-document-export-status{color:var(--color-text-soft);font-size:var(--font-size-caption, .78rem);min-height:1.2em;margin:0}
.generated-document-export-modal .app-confirm-modal__actions{margin:0;padding:0}
.report-generated-modal__panel > header,.report-generated-modal__panel > footer { position:relative; z-index:2; }
.report-generated-document { background:#e9e3dd; box-sizing:border-box; margin:0; max-width:none; min-height:0; overflow:auto; padding:24px; width:100%; }
.report-generated-modal .report-generated-page { margin:0 auto 24px; }
.report-generated-modal .report-generated-page:last-child { margin-bottom:0; }
.report-generated-modal .practice-report-preview-sheet__header { flex:0 0 auto; grid-template-columns:auto minmax(0,1fr); margin-bottom:16px; }
.report-generated-modal .practice-report-preview-sheet__header > div:nth-child(2) { display:grid; gap:2px; min-width:0; }
.report-generated-modal .practice-report-preview-sheet__header strong { color:var(--color-text); display:block; font-family:Georgia,serif; font-size:1.35rem; line-height:1.2; }
.report-generated-modal .practice-report-preview-sheet__header span { color:var(--color-text-soft); display:block; line-height:1.35; }
.report-rich-content--plain { white-space:pre-line; }
@media(max-width:1100px){.report-builder-toolbar{grid-template-columns:minmax(260px,1fr) auto auto}.report-builder-generate{grid-column:1/-1;justify-self:end}.report-builder-layout{grid-template-columns:230px minmax(0,1fr)}}
@media(max-width:760px){.report-builder-toolbar,.report-builder-layout{grid-template-columns:minmax(0,1fr)}.report-builder-generate{justify-self:stretch}.report-builder-layout>.report-builder-library{position:static}.report-builder-library .report-module-library{grid-template-columns:repeat(2,minmax(0,1fr))}.report-generated-modal{padding:8px}.report-generated-modal__panel{border-radius:11px;height:calc(100vh - 16px);max-width:calc(100vw - 16px)}.report-generated-modal__panel>footer{align-items:stretch;display:grid}.report-generated-document{padding:12px}}
@media print{body.has-open-modal>*:not(.app-confirm-modal){display:none!important}.report-generated-modal{background:#fff;inset:0;position:static}.report-generated-modal__panel{box-shadow:none;max-height:none;max-width:none}.report-generated-modal__panel>header,.report-generated-modal__panel>footer{display:none}.report-generated-document{margin:0;max-width:none;padding:0;width:100%}}

.annotation-item__swatch {
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 999px;
}

.annotation-toolbar {
  display: grid;
  gap: 12px;
}

.annotation-comment-full {
  grid-column: 1 / -1;
  width: 100%;
}

.annotation-comment-full .textarea {
  width: 100%;
  height: var(--annotation-comment-height, 112px);
  min-height: 112px;
  max-height: 600px;
  resize: vertical;
}

.agenda-page-header {
  align-items: center;
}

.agenda-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.agenda-create-button {
  white-space: nowrap;
}

.session-worklist-card {
  min-width: 0;
  transition: opacity 0.16s ease;
}

.session-worklist-card.is-filtering {
  opacity: 0.58;
  pointer-events: none;
}

.session-worklist-filters {
  grid-template-columns: minmax(0, 1fr) auto auto;
}

.animal-sessions-filters {
  align-items: end;
  display: flex;
  flex-wrap: wrap;
  gap: 14px 12px;
}

.animal-sessions-filters .field {
  flex-shrink: 1;
}

.animal-sessions-filters__search {
  flex: 1 1 320px;
}

.animal-sessions-filters__client {
  flex: 1 1 250px;
}

.animal-sessions-filters__animal {
  flex: 0 1 240px;
}

.animal-sessions-filters__species,
.animal-sessions-filters__status,
.animal-sessions-filters__date {
  flex: 0 1 auto;
}

.animal-sessions-client-filter {
  display: block;
  min-width: 0;
}

.animal-sessions-client-filter .input,
.animal-sessions-filters__search .input {
  width: 100%;
}

.animal-sessions-filters select.input,
.animal-sessions-filters__date .input {
  width: auto;
}

.animal-sessions-filters__animal select.input {
  min-width: 22ch;
}

.animal-sessions-filters__species select.input,
.animal-sessions-filters__status select.input {
  min-width: 15ch;
}

.animal-sessions-filters__date .input {
  min-width: 14ch;
  width: auto;
}

.animal-sessions-filters__actions {
  flex: 0 0 auto;
}

.animal-sessions-filters__actions .btn {
  flex: 0 0 auto;
  width: auto;
}

@media (max-width: 900px) {
  .animal-sessions-filters__search,
  .animal-sessions-filters__client {
    flex-basis: 100%;
  }
}

@media (max-width: 620px) {
  .animal-sessions-filters {
    align-items: stretch;
  }

  .animal-sessions-filters .field,
  .animal-sessions-filters__actions {
    flex-basis: 100%;
  }

  .animal-sessions-filters select.input,
  .animal-sessions-filters__date .input {
    width: 100%;
  }
}

.calendar-connections-page {
  gap: 18px;
}

.calendar-connection-layout { display:grid; gap:16px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.calendar-connection-card { display:flex; flex-direction:column; gap:15px; min-width:0; padding:22px; }
.calendar-connection-card__header { align-items:center; border-bottom:1px solid var(--color-border); display:flex; gap:12px; padding-bottom:14px; }
.calendar-connection-card__header h2 { margin:2px 0 0; }
.calendar-connection-card__header .calendar-provider-card__mark { flex:0 0 32px; }
.calendar-connection-card__header .calendar-provider-card--apple_caldav { align-items:center; background:#fff; border:1px solid #d8d2cc; box-shadow:0 0 0 5px rgb(45 45 45 / .06); box-sizing:border-box; display:inline-flex; height:32px; justify-content:center; width:32px; }
.calendar-connection-card__header .calendar-provider-card--apple_caldav img { display:block; height:21px; width:21px; }
.calendar-connection-card__header .calendar-provider-card--google { align-items:center; background:#fff; border:1px solid #d8d2cc; box-shadow:0 0 0 5px rgb(66 133 244 / .09); box-sizing:border-box; display:inline-flex; height:32px; justify-content:center; width:32px; }
.calendar-connection-card__header .calendar-provider-card--google img { display:block; height:auto; width:27px; }
.calendar-connection-state { background:#f4f1ed; border:1px solid var(--color-border); border-radius:999px; color:var(--color-text-soft); font-size:var(--font-size-table, .72rem); font-weight:var(--font-weight-label, 800); margin-left:auto; padding:6px 9px; white-space:nowrap; }
.calendar-connection-state.is-connected { background:var(--color-success-soft); border-color:var(--color-success); color:var(--color-success-strong); }
.calendar-connection-card>p,.calendar-connection-boundary p,.calendar-connection-help { color:var(--color-text-soft); line-height:1.55; margin:0; }
.calendar-connection-form { display:grid; gap:13px; }
.calendar-connection-form label { display:grid; font-size:var(--font-size-table, .82rem); font-weight:var(--font-weight-label, 800); gap:6px; }
.calendar-connection-help { font-size:var(--font-size-table, .78rem); }
.btn.btn-primary.calendar-connection-start { align-self:flex-start; background:#1d1d1f; border:1px solid #1d1d1f; border-radius:var(--ui-radius-pill, 999px); box-shadow:0 5px 14px rgb(0 0 0 / .16); color:#fff; font-weight:var(--font-weight-label, 700); gap:10px; min-height:46px; padding:11px 19px; width:auto; }
.btn.btn-primary.calendar-connection-start:hover { background:#000; border-color:#000; box-shadow:0 7px 18px rgb(0 0 0 / .2); color:#fff; transform:translateY(-1px); }
.btn.btn-primary.calendar-connection-start:focus-visible { outline:3px solid rgb(0 113 227 / .32); outline-offset:3px; }
.btn.btn-primary.calendar-connection-start:disabled { background:#86868b; border-color:#86868b; box-shadow:none; color:#fff; transform:none; }
.calendar-connection-start img,.calendar-connection-apple-link img { display:block; height:21px; width:21px; }
.calendar-connection-start img { filter:brightness(0) invert(1); }
.btn.calendar-connection-start--google { align-self:flex-start; background:#fff; border:1px solid #c7c9cc; border-radius:var(--ui-radius-pill, 999px); box-shadow:0 4px 12px rgb(60 64 67 / .14); color:#3c4043; font-weight:var(--font-weight-label, 750); gap:10px; min-height:46px; padding:11px 19px; width:auto; }
.btn.calendar-connection-start--google img { filter:none; height:auto; width:61px; }
.btn.calendar-connection-start--google:hover { background:#f8faff; border-color:#9fb9ed; color:#1f4f9f; transform:translateY(-1px); }
.btn.calendar-connection-start--google[aria-disabled="true"] { opacity:.55; pointer-events:none; }
.calendar-connection-modal__panel { display:grid; gap:18px; width:min(100%,36rem); }
.calendar-connection-modal__panel .app-confirm-modal__header>div { display:grid; gap:3px; min-width:0; }
.calendar-connection-modal__identity { align-items:center; display:flex!important; gap:11px!important; }
.calendar-connection-modal__identity>div { display:grid; gap:3px; min-width:0; }
.calendar-connection-apple-mark { align-items:center; background:#fff; border:1px solid #d8d2cc; border-radius:12px; box-shadow:0 5px 14px rgb(45 45 45 / .09); display:inline-flex; flex:0 0 48px; height:48px; justify-content:center; }
.calendar-connection-apple-mark img { display:block; height:29px; width:29px; }
.calendar-connection-apple-mark.calendar-provider-card--google img { height:auto; width:39px; }
.calendar-connection-progress { display:grid; gap:8px; grid-template-columns:repeat(3,minmax(0,1fr)); list-style:none; margin:0; padding:0; }
.calendar-connection-progress li { align-items:center; background:#f4f1ed; border:1px solid var(--color-border); border-radius:10px; color:var(--color-text-soft); display:flex; font-size:var(--font-size-table, .72rem); gap:7px; min-width:0; padding:8px 9px; }
.calendar-connection-progress li span { align-items:center; background:#fff; border:1px solid var(--color-border); border-radius:50%; display:inline-flex; flex:0 0 24px; font-size:var(--font-size-table, .68rem); height:24px; justify-content:center; }
.calendar-connection-progress li strong { min-width:0; overflow-wrap:anywhere; }
.calendar-connection-progress li.is-active,.calendar-connection-progress li.is-complete { background:#edf5f2; border-color:#98b8aa; color:var(--color-primary-strong); }
.calendar-connection-progress li.is-active span,.calendar-connection-progress li.is-complete span { background:var(--color-primary); border-color:var(--color-primary); color:#fff; }
.calendar-connection-step { display:grid; gap:13px; min-width:0; }
.calendar-connection-step-label { background:#fbe9df; border:1px solid #e6b7a2; border-radius:999px; color:#945039; display:inline-flex; font-size:var(--font-size-table, .69rem); font-weight:var(--font-weight-label, 850); justify-self:start; letter-spacing:.045em; line-height:1.2; padding:6px 10px; text-transform:uppercase; }
.calendar-connection-step h3 { color:var(--color-primary-strong); font-size:var(--font-size-card-title, 1.15rem); margin:0; }
.calendar-connection-step>p { color:var(--color-text-soft); line-height:1.55; margin:0; }
.calendar-connection-step label { min-width:0; }
.calendar-connection-apple-link { justify-self:start; width:auto; }
.calendar-connection-step>.calendar-connection-next-hint { background:#edf5f2; border:1px solid #b8cdc3; border-radius:10px; color:var(--color-primary-strong); font-weight:var(--font-weight-label, 750); padding:10px 12px; }
.calendar-connection-security { background:#f7f4ef; border:1px solid var(--color-border); border-radius:10px; font-size:var(--font-size-table, .78rem); padding:10px 12px; }
.calendar-connection-field-error { color:var(--color-danger)!important; font-size:var(--font-size-table, .78rem); font-weight:var(--font-weight-label, 750); }
.client-portal-field-error { color:var(--color-danger); font-size:var(--font-size-table, .82rem); font-weight:var(--font-weight-label, 700); line-height:1.35; }
.calendar-connection-modal__actions { border-top:1px solid var(--color-border); margin-top:3px; padding-top:15px; }
.calendar-connection-form .btn,.calendar-connection-actions .btn,.calendar-connection-card>form .btn { justify-self:start; width:auto; }
.calendar-connection-summary { display:grid; gap:9px; margin:0; }
.calendar-connection-summary>div { background:#f8faf9; border:1px solid var(--color-border); border-radius:9px; display:grid; gap:3px; padding:10px 12px; }
.calendar-connection-summary dt { color:var(--color-text-soft); font-size:var(--font-size-control, .7rem); font-weight:var(--font-weight-label, 800); text-transform:uppercase; }
.calendar-connection-summary dd { margin:0; overflow-wrap:anywhere; }
.calendar-connection-warning { background:#fff5e9; border:1px solid #e8c79d; border-radius:9px; color:#805326!important; padding:10px 12px; }
.calendar-connection-actions { align-items:center; display:flex; flex-wrap:wrap; gap:9px; margin-top:auto; }
.calendar-connection-boundary { padding:20px 22px; }
.calendar-connection-boundary h2 { margin:4px 0 8px; }
.calendar-selection-summary { background:#f8faf9; border:1px solid var(--color-border); border-radius:9px; display:grid; gap:7px; padding:10px 12px; }
.calendar-selection-summary>strong { color:var(--color-primary-strong); font-size:var(--font-size-control, .78rem); }
.calendar-selection-summary ul { display:flex; flex-wrap:wrap; gap:6px; list-style:none; margin:0; padding:0; }
.calendar-selection-summary li { background:var(--color-success-soft); border:1px solid #b8cdc3; border-radius:999px; color:var(--color-success-strong); font-size:var(--font-size-control, .74rem); font-weight:var(--font-weight-label, 750); padding:5px 9px; }
.calendar-selection-modal__panel { display:grid; gap:15px; width:min(100%,34rem); }
.calendar-selection-modal__intro { color:var(--color-text-soft); line-height:1.5; margin:0; }
.calendar-selection-form { display:grid; gap:12px; min-width:0; }
.calendar-selection-form fieldset { border:0; display:grid; gap:9px; margin:0; min-width:0; padding:0; }
.calendar-selection-form legend { color:var(--color-primary-strong); font-size:var(--font-size-table, .8rem); font-weight:var(--font-weight-label, 850); margin-bottom:8px; }
.calendar-selection-list { display:grid; gap:8px; max-height:min(44vh,22rem); overflow:auto; padding:2px; }
.calendar-selection-option { align-items:center; background:#f8faf9; border:1px solid var(--color-border); border-radius:10px; cursor:pointer; display:flex; gap:11px; min-height:52px; padding:9px 11px; }
.calendar-selection-option:hover { background:#edf5f2; border-color:#98b8aa; }
.calendar-selection-option:has(input:checked) { background:#edf5f2; border-color:var(--color-primary); }
.calendar-selection-option input { accent-color:var(--color-primary); flex:0 0 auto; height:20px; width:20px; }
.calendar-selection-option span { display:grid; gap:2px; min-width:0; }
.calendar-selection-option strong { overflow-wrap:anywhere; }
.calendar-selection-option small { color:var(--color-text-soft); }
.calendar-selection-actions { border-top:1px solid var(--color-border); padding-top:13px; }
.calendar-selection-refresh { border-top:1px solid var(--color-border); padding-top:10px; }
.calendar-selection-refresh .btn { width:auto; }
.calendar-connection-card { border:1px solid rgb(var(--color-primary-rgb) / .22); border-top:5px solid var(--color-primary); box-shadow:var(--ui-shadow-card); }
.calendar-connection-card--google { border-color:rgb(var(--color-secondary-rgb) / .34); border-top-color:var(--color-secondary-strong); }
.calendar-connection-card__header { background:var(--color-primary-soft); border:1px solid rgb(var(--color-primary-rgb) / .17); border-radius:12px; padding:12px; }
.calendar-connection-card--google .calendar-connection-card__header { background:var(--color-secondary-faint); border-color:rgb(var(--color-secondary-rgb) / .22); }
.calendar-connection-card .section-kicker { color:var(--color-primary-strong); }
.calendar-connection-card--google .section-kicker { color:var(--color-secondary-deep); }
.calendar-connection-card__header .calendar-provider-card__mark { flex-basis:42px; height:42px; width:42px; }
.calendar-connection-card__header .calendar-provider-card--apple_caldav,.calendar-connection-card__header .calendar-provider-card--google { height:42px; width:42px; }
.calendar-connection-card__header .calendar-provider-card--apple_caldav img { height:27px; width:27px; }
.calendar-connection-card__header .calendar-provider-card--google img { width:32px; }
.calendar-connection-boundary { background:var(--color-primary-soft); border:1px solid rgb(var(--color-primary-rgb) / .24); border-left:5px solid var(--color-primary); }
.calendar-connection-boundary .section-kicker { color:var(--color-secondary-deep); }
.calendar-connection-boundary h2 { color:var(--color-primary-deep); }
.calendar-selection-modal__panel { border:1px solid rgb(var(--color-primary-rgb) / .35); border-top:5px solid var(--color-primary); }
.calendar-selection-modal--google .calendar-selection-modal__panel { border-color:rgb(var(--color-secondary-rgb) / .4); border-top-color:var(--color-secondary-strong); }
.calendar-selection-modal .app-confirm-modal__header { background:var(--color-primary-soft); border:1px solid rgb(var(--color-primary-rgb) / .2); border-radius:12px; padding:12px; }
.calendar-selection-modal--google .app-confirm-modal__header { background:var(--color-secondary-faint); border-color:rgb(var(--color-secondary-rgb) / .3); }
.calendar-selection-modal .app-confirm-modal__header .section-kicker { color:var(--color-primary-strong); }
.calendar-selection-modal--google .app-confirm-modal__header .section-kicker { color:var(--color-secondary-deep); }
.calendar-selection-modal--google .app-confirm-modal__header h2 { color:var(--color-secondary-deep); }
.calendar-selection-modal__intro { background:var(--color-primary-soft); border-left:3px solid var(--color-primary); border-radius:0 8px 8px 0; color:var(--color-primary-deep); padding:10px 12px; }
.calendar-selection-modal--google .calendar-selection-modal__intro { background:var(--color-secondary-faint); border-left-color:var(--color-secondary-strong); }
.calendar-selection-option { border-left:4px solid var(--color-primary); }
.calendar-selection-modal--google .calendar-selection-option { border-left-color:var(--color-secondary-strong); }
.calendar-selection-modal--google .calendar-selection-option:hover,.calendar-selection-modal--google .calendar-selection-option:has(input:checked) { background:var(--color-secondary-faint); border-color:var(--color-secondary-strong); }
.calendar-selection-modal--google .calendar-selection-option input { accent-color:var(--color-secondary-deep); }
@media(max-width:950px){.calendar-connection-layout{grid-template-columns:1fr}}
@media(max-width:600px){.calendar-connection-card{padding:17px}.calendar-connection-card__header{align-items:flex-start;flex-wrap:wrap}.calendar-connection-state{margin-left:40px}.calendar-connection-actions,.calendar-connection-actions form,.calendar-connection-actions .btn{width:100%}.calendar-connection-progress li{justify-content:center;padding:8px}.calendar-connection-progress li strong{display:none}.calendar-connection-modal__actions{align-items:stretch;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-connection-modal__actions .btn{justify-content:center;width:100%}.calendar-connection-modal__actions [data-apple-connection-next],.calendar-connection-modal__actions [data-apple-connection-submit]{grid-column:2}.calendar-connection-modal__actions [data-apple-connection-back]:not([hidden])+[data-apple-connection-next]{grid-column:auto}}

.availability-page { display:grid; gap:18px; }
.availability-intro-tip { align-items:flex-start; background:#f1f3f3; border:1px solid #d3dbda; border-left:4px solid var(--color-primary); border-radius:12px; display:flex; gap:12px; padding:14px 16px; }
.availability-intro-tip__icon { align-items:center; background:var(--color-primary); border-radius:50%; color:#fff; display:inline-flex; flex:0 0 25px; font-size:var(--font-size-body); font-weight:850; height:25px; justify-content:center; }
.availability-intro-tip p { color:var(--color-primary-deep); line-height:1.5; margin:0; }
.availability-intro-tip strong { color:var(--color-primary-strong); }
.availability-layout { align-items:start; display:grid; gap:16px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.availability-card { min-width:0; padding:18px; }
.availability-card--full { grid-column:1/-1; }
.availability-card__header { align-items:flex-start; border-bottom:1px solid var(--color-border); display:flex; gap:14px; justify-content:space-between; margin-bottom:10px; padding-bottom:12px; }
.availability-card__header h2 { margin:3px 0 0; }
.availability-card__header > span { background:#eef4f1; border:1px solid #b9cec3; border-radius:999px; color:#426557; font-size:var(--font-size-caption, .71rem); font-weight:var(--font-weight-label, 800); padding:5px 8px; }
.availability-card__intro { color:var(--color-text-soft); font-size:var(--font-size-table, .84rem); line-height:1.45; margin:0 0 14px; }
.availability-form { align-items:end; background:#fbfaf8; border:1px solid var(--color-border); border-radius:12px; display:grid; gap:10px; margin-bottom:14px; padding:13px; }
.availability-form label { color:var(--color-text-soft); display:grid; font-size:var(--font-size-label, .73rem); font-weight:var(--font-weight-label, 800); gap:5px; min-width:0; }
.availability-form label small { color:#8b7584; font-size:var(--font-size-help, .66rem); font-weight:var(--font-weight-label, 700); }
.availability-form input,.availability-form select { background:#fff; border:1px solid #cec4d0; border-radius:8px; color:var(--color-text); font:inherit; min-height:40px; min-width:0; padding:8px 10px; width:100%; }
.availability-form input:focus,.availability-form select:focus { border-color:#6d5277; box-shadow:0 0 0 3px rgba(109,82,119,.14); outline:0; }
.availability-form button { min-height:40px; white-space:nowrap; }
.availability-form--areas { grid-template-columns:repeat(3,minmax(0,1fr)); }
.availability-form--areas label:nth-child(2),.availability-form--areas label:nth-child(3) { grid-column:span 1; }
.availability-form--rules { grid-template-columns:1.1fr repeat(2,.8fr) 1.2fr repeat(2,1fr) auto; }
.availability-form--exceptions { grid-template-columns:1fr 1fr 1fr 1.3fr auto; }
.availability-list { display:grid; gap:8px; }
.availability-item { align-items:center; background:#fff; border:1px solid var(--color-border); border-left:4px solid #587f70; border-radius:9px; display:flex; gap:12px; justify-content:space-between; min-width:0; padding:9px 10px; }
.availability-item > div { display:grid; gap:3px; min-width:0; }
.availability-item strong { color:var(--color-text); font-size:var(--font-size-table, .84rem); }
.availability-item span { color:var(--color-text-soft); font-size:var(--font-size-table, .74rem); line-height:1.35; }
.availability-item form { flex:0 0 auto; }
.availability-empty { color:var(--color-text-soft); font-size:var(--font-size-table, .84rem); margin:6px 0; }
@media(max-width:1250px){.availability-layout{grid-template-columns:1fr}.availability-card--full{grid-column:auto}.availability-form--rules,.availability-form--exceptions{grid-template-columns:repeat(3,minmax(0,1fr))}.availability-form button{justify-self:start}}
@media(max-width:700px){.availability-form--areas,.availability-form--rules,.availability-form--exceptions{grid-template-columns:1fr}.availability-form button{justify-self:stretch}.availability-item{align-items:flex-start;flex-direction:column}.availability-item form{width:100%}.availability-item form .btn{width:100%}}
.availability-calendar-card,.availability-period-list{padding:20px}.availability-calendar-card>header,.availability-period-list>header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.availability-calendar-card h2,.availability-period-list h2{margin:.2rem 0}.availability-calendar{display:grid;grid-template-columns:repeat(7,minmax(68px,1fr));gap:.55rem;margin:1.25rem 0;max-height:28rem;overflow:auto;padding:.25rem}.availability-calendar__day{display:grid;gap:.1rem;place-items:center;min-height:72px;background:#fff;border:1px solid var(--color-border);border-radius:10px;color:var(--color-text);cursor:pointer}.availability-calendar__day small,.availability-calendar__day span{font-size:var(--font-size-table, .67rem);color:var(--color-text-soft)}.availability-calendar__day strong{font-size:var(--font-size-table, 1rem)}.availability-calendar__day:hover,.availability-calendar__day:focus-visible{border-color:var(--color-primary);outline:0}.availability-calendar__day.is-selected{background:#376d70;border-color:#376d70;color:#fff;box-shadow:0 4px 12px rgba(55,109,112,.2)}.availability-calendar__day.is-selected small,.availability-calendar__day.is-selected span{color:#eef7f5}.availability-period-modal{width:min(94vw,620px);border:0;border-radius:16px;padding:0;box-shadow:0 22px 60px rgba(23,40,39,.3)}.availability-period-modal::backdrop{background:rgba(24,37,36,.52)}.availability-period-modal form{padding:1.5rem}.availability-period-modal header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.availability-period-modal h2{margin:0}.availability-period-modal header .availability-modal-close{border:0;background:transparent;color:var(--color-text-soft);font-size:1.7rem;line-height:1;cursor:pointer}.availability-period-modal__grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.availability-period-modal__grid label{display:grid;gap:.35rem;font-weight:var(--font-weight-label, 700);font-size:var(--font-size-label, .85rem)}.availability-period-modal__grid input{min-height:42px;border:1px solid var(--color-border);border-radius:8px;padding:.5rem .65rem}.availability-period-modal__wide{grid-column:1/-1}.availability-period-modal__notice{font-size:var(--font-size-help, .8rem);color:var(--color-text-soft)}.availability-modal-actions{display:flex;justify-content:flex-end;gap:.7rem;margin-top:1.25rem}@media(max-width:700px){.availability-calendar{grid-template-columns:repeat(4,minmax(55px,1fr));max-height:24rem}.availability-calendar-card>header,.availability-period-list>header{flex-direction:column}.availability-period-modal__grid{grid-template-columns:1fr}.availability-period-modal__wide{grid-column:auto}.availability-modal-actions{flex-direction:column-reverse}.availability-modal-actions .btn{width:100%}}

.calendar-foundation-card__heading {
  align-items: center;
  display: flex;
  gap: 18px;
  justify-content: space-between;
}

.calendar-foundation-card__heading h2,
.calendar-foundation-feature h2 {
  margin: 3px 0 0;
}

.calendar-foundation-status {
  background: var(--color-success-soft);
  border: 1px solid var(--color-success);
  border-radius: 8px;
  color: var(--color-success-strong);
  font-size: var(--font-size-table, 12px);
  font-weight: var(--font-weight-label, 850);
  padding: 8px 11px;
  white-space: nowrap;
}

.calendar-foundation-intro {
  color: var(--color-text-soft);
  line-height: 1.55;
  margin: 12px 0 18px;
  max-width: 980px;
}

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

.calendar-provider-card {
  --calendar-provider-color: #708b75;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-top: 4px solid var(--calendar-provider-color);
  border-radius: 12px;
  box-shadow: 0 7px 18px rgba(54, 43, 59, 0.07);
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
  padding: 15px;
}

.calendar-provider-card--google { --calendar-provider-color: #4285f4; }
.calendar-provider-card--microsoft { --calendar-provider-color: #0078d4; }
.calendar-provider-card--apple_caldav { --calendar-provider-color: #d18768; }
.calendar-provider-card--ical { --calendar-provider-color: #708b75; }

.calendar-provider-card__top {
  align-items: center;
  display: flex;
  gap: 10px;
}

.calendar-provider-card__mark {
  background: var(--calendar-provider-color);
  border-radius: 7px;
  box-shadow: 0 0 0 5px color-mix(in srgb, var(--calendar-provider-color) 14%, transparent);
  flex: 0 0 auto;
  height: 26px;
  width: 26px;
}

.calendar-provider-card h3 {
  font-size: var(--font-size-card-title, 15px);
  margin: 0;
}

.calendar-provider-card__top span,
.calendar-provider-card > p {
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 12px);
}

.calendar-provider-card > p {
  flex: 1;
  line-height: 1.45;
  margin: 0;
}

.calendar-provider-card .btn[disabled] {
  cursor: default;
  opacity: 0.72;
}

.calendar-provider-card__connections {
  display: grid;
  gap: 6px;
}

.calendar-provider-card__connections > div {
  background: var(--color-surface-muted);
  border-radius: 8px;
  display: flex;
  font-size: var(--font-size-table, 11px);
  justify-content: space-between;
  padding: 7px 8px;
}

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

.calendar-foundation-feature ul {
  color: var(--color-text-soft);
  display: grid;
  font-size: var(--font-size-table, 13px);
  gap: 8px;
  line-height: 1.4;
  margin: 14px 0 0;
  padding-left: 18px;
}

@media (max-width: 1100px) {
  .calendar-provider-grid,
  .calendar-foundation-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .calendar-provider-grid,
  .calendar-foundation-grid {
    grid-template-columns: 1fr;
  }

  .calendar-foundation-card__heading {
    align-items: flex-start;
    flex-direction: column;
  }
}

.animal-sessions-filters__date {
  display: grid;
  gap: 5px;
  margin: 0;
}

.animal-sessions-filters__date span {
  color: var(--color-primary-strong);
  font-size: var(--font-size-label, .74rem);
  font-weight: var(--font-weight-label, 850);
  letter-spacing: 0;
  text-transform: none;
}

.session-worklist-wrap {
  margin: 0 -3px -7px;
  padding: 0 3px 7px;
}

.table.session-worklist-table {
  min-width: 900px;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0 8px;
}

.table.session-worklist-table th,
.table.session-worklist-table td {
  overflow: hidden;
  padding: var(--ui-space-2, 8px) 11px;
  border: 0;
  font-size: var(--font-size-table, 12px);
  line-height: 1.35;
  vertical-align: middle;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.table.session-worklist-table th {
  padding-top: 1px;
  padding-bottom: var(--ui-space-1, 4px);
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 11px);
}

.session-worklist-table th:first-child,
.session-worklist-table td:first-child {
  width: 160px;
}

.session-worklist-table th:nth-child(2),
.session-worklist-table td:nth-child(2) {
  width: 18%;
}

.session-worklist-table th:nth-child(3),
.session-worklist-table td:nth-child(3) {
  width: 14%;
}

.session-worklist-table th:nth-child(4),
.session-worklist-table td:nth-child(4) {
  width: 13%;
}

.session-worklist-table th:nth-child(5),
.session-worklist-table td:nth-child(5) {
  width: 105px;
}

.session-worklist-table th:last-child,
.session-worklist-table td:last-child {
  width: 105px;
}

.table.animal-sessions-table {
  min-width: 1120px;
}

.animal-sessions-table th:first-child,
.animal-sessions-table td:first-child {
  width: 160px;
}

.animal-sessions-table th:nth-child(2),
.animal-sessions-table td:nth-child(2) {
  width: 13%;
}

.animal-sessions-table th:nth-child(3),
.animal-sessions-table td:nth-child(3) {
  width: 17%;
}

.animal-sessions-table th:nth-child(4),
.animal-sessions-table td:nth-child(4) {
  width: 22%;
}

.animal-sessions-table td.animal-sessions-table__purpose {
  overflow: visible;
}

.animal-sessions-table__purpose .client-related-pill {
  align-items: flex-start;
  overflow-wrap: anywhere;
  white-space: normal;
}

.animal-sessions-table th:nth-child(5),
.animal-sessions-table td:nth-child(5) {
  width: 17%;
}

.animal-sessions-table th:nth-child(6),
.animal-sessions-table td:nth-child(6) {
  width: 170px;
}

.animal-sessions-table th:last-child,
.animal-sessions-table td:last-child {
  overflow: visible;
  width: 155px;
}

.session-worklist-table td:first-child {
  border-radius: 13px 0 0 13px;
  box-shadow: inset 4px 0 0 var(--color-secondary);
}

.session-worklist-table td:last-child {
  border-radius: 0 13px 13px 0;
}

.session-worklist-table tbody tr:nth-child(odd) td {
  background: rgb(var(--color-secondary-rgb) / 0.08);
}

.session-worklist-table tbody tr:nth-child(even) td {
  background: rgb(var(--color-primary-rgb) / 0.07);
}

.session-worklist-table tbody tr {
  transform: scale(1);
  transform-origin: center;
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.table.session-worklist-table tbody tr:hover {
  background: transparent;
  transform: scale(1.004);
  filter: drop-shadow(0 8px 12px rgb(var(--color-primary-rgb) / 0.1));
}

.session-worklist-table tbody tr:hover td {
  background: var(--color-surface);
}

.session-worklist-link {
  display: inline-block;
  max-width: 100%;
  overflow: hidden;
  margin: -3px -5px;
  padding: 3px 5px;
  border-radius: 8px;
  color: var(--color-text);
  font-weight: var(--font-weight-label, 800);
  text-decoration: none;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: color 0.28s ease, background 0.28s ease, transform 0.28s ease;
}

.session-worklist-link:hover {
  background: rgb(var(--color-primary-rgb) / 0.09);
  color: var(--color-primary);
  text-decoration: none;
  transform: translateX(2px);
}

.session-worklist-link:focus-visible {
  outline: 0;
  background: rgb(var(--color-primary-rgb) / 0.12);
  color: var(--color-primary);
  text-decoration: none;
  box-shadow: 0 0 0 3px rgb(var(--color-primary-rgb) / 0.2);
}

.session-worklist-link--date {
  font-variant-numeric: tabular-nums;
}

.session-worklist-animal {
  display: inline-flex;
  max-width: 100%;
  min-width: 0;
  align-items: center;
  gap: 8px;
  color: var(--color-text);
  font-weight: var(--font-weight-label, 750);
  text-decoration: none;
}

.session-worklist-animal > span:last-child {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.session-worklist-animal:hover,
.session-worklist-animal:focus-visible {
  color: var(--color-primary);
  text-decoration: none;
}

.session-worklist-animal:focus-visible {
  outline: 0;
  border-radius: 8px;
  box-shadow: 0 0 0 3px rgb(var(--color-primary-rgb) / 0.2);
}

.session-worklist-empty {
  display: grid;
  gap: 6px;
  justify-items: center;
  padding: 44px 20px;
  border: 1px dashed rgb(var(--color-identity-rgb) / 0.36);
  border-radius: 18px;
  background: var(--color-identity-faint);
  color: var(--color-text-soft);
  text-align: center;
}

.session-worklist-empty strong {
  color: var(--color-primary-strong);
  font-size: var(--font-size-body, 17px);
}

.ui-pagination {
  --pagination-accent: var(--color-primary);
  --pagination-accent-strong: var(--color-primary-strong);
  --pagination-surface: var(--color-surface);
  --pagination-soft: var(--color-primary-soft);
  --pagination-border: rgb(var(--color-primary-rgb) / .2);
  display: grid;
  justify-items: center;
  gap: var(--ui-space-2, 8px);
  margin-top: var(--ui-space-6, 24px);
  padding-top: var(--ui-space-5, 20px);
  border-top: 1px solid var(--pagination-border);
}

.ui-pagination__track {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--ui-space-4, 16px);
  max-width: 100%;
}

.ui-pagination__pages {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--ui-space-2, 8px);
  margin: 0;
  padding: 0;
  list-style: none;
}

.ui-pagination__page {
  display: inline-grid;
  place-items: center;
  box-sizing: border-box;
  min-width: 42px;
  height: 42px;
  padding-inline: var(--ui-space-2, 8px);
  border: 1px solid var(--pagination-border);
  border-radius: var(--ui-radius-round, 50%);
  background: var(--pagination-surface);
  color: var(--pagination-accent-strong);
  box-shadow: var(--ui-shadow-control);
  font-size: var(--font-size-label);
  font-weight: var(--font-weight-label);
  line-height: 1;
  text-decoration: none;
  transition: background var(--ui-motion-fast) var(--ui-ease), border-color var(--ui-motion-fast) var(--ui-ease), color var(--ui-motion-fast) var(--ui-ease), transform var(--ui-motion-fast) var(--ui-ease);
}

.ui-pagination a.ui-pagination__page:hover,
.ui-pagination a.ui-pagination__page:focus-visible {
  border-color: var(--pagination-accent);
  background: var(--pagination-soft);
  color: var(--pagination-accent-strong);
  text-decoration: none;
  transform: translateY(-2px);
}

.ui-pagination__page.is-current {
  border-color: var(--pagination-accent);
  background: var(--pagination-accent);
  color: var(--pagination-surface);
  box-shadow: 0 8px 18px rgb(var(--color-primary-rgb) / .2);
}

.ui-pagination__ellipsis {
  display: grid;
  min-width: 20px;
  height: 42px;
  place-items: center;
  color: var(--color-text-muted);
  font-size: var(--font-size-label);
  font-weight: var(--font-weight-label);
}

.ui-pagination__control {
  flex: 0 0 auto;
  color: var(--pagination-accent-strong);
  font-size: var(--font-size-label);
  font-weight: var(--font-weight-label);
}

.ui-pagination__control[aria-disabled="true"] {
  cursor: default;
  opacity: .38;
  pointer-events: none;
}

.ui-pagination__summary {
  margin: 0;
  color: var(--color-text-soft);
  font-size: var(--font-size-help);
  font-weight: var(--font-weight-body);
}

@media (max-width: 620px) {
  .ui-pagination__track { gap: var(--ui-space-3, 12px); }
  .ui-pagination__control-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  .ui-pagination__control { gap: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .ui-pagination__page { transition: none; }
  .ui-pagination a.ui-pagination__page:hover,
  .ui-pagination a.ui-pagination__page:focus-visible { transform: none; }
}

.agenda-card {
  overflow: visible;
}

.agenda-toolbar {
  position: sticky;
  top: var(--ui-space-3);
  z-index: 18;
  display: grid;
  grid-template-columns: auto minmax(260px, 1fr) auto;
  align-items: center;
  gap: 18px;
  margin: -6px -6px 20px;
  padding: 14px;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.34);
  border-radius: 18px;
  background: var(--color-primary-soft);
  box-shadow: 0 12px 28px rgb(var(--color-primary-rgb) / 0.16);
}

.agenda-view-switcher {
  display: inline-flex;
  padding: 4px;
  border: 1px solid var(--color-border);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: var(--shadow-xs);
}

.agenda-view-switcher__link {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 13px;
  border-radius: 10px;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 13px);
  font-weight: var(--font-weight-label, 700);
  text-decoration: none;
  transition: color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.agenda-view-switcher__link:hover {
  color: var(--color-identity-strong);
}

.agenda-view-switcher__link--active {
  color: var(--color-identity-strong);
  background: var(--color-surface);
  box-shadow:
    inset 0 0 0 2px var(--color-identity),
    0 6px 14px rgb(var(--color-identity-rgb) / 0.2);
}

.agenda-period-navigation {
  min-width: 0;
  display: grid;
  grid-template-columns: 42px minmax(0, auto) 42px;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.agenda-period-navigation__title {
  min-width: 190px;
  text-align: center;
}

.agenda-period-navigation__title strong,
.agenda-period-navigation__title span {
  display: block;
}

.agenda-period-navigation__title strong {
  overflow: hidden;
  color: var(--color-text);
  font-size: var(--font-size-control, 16px);
  text-overflow: ellipsis;
}

.agenda-period-navigation__title span {
  margin-top: 2px;
  color: var(--color-text-soft);
  font-size: var(--font-size-control, 12px);
}

.agenda-nav-button {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.28);
  border-radius: 13px;
  color: var(--color-text);
  background: var(--color-surface);
  box-shadow: 0 9px 18px rgb(var(--color-text-rgb) / 0.08);
  font-size: var(--font-size-control, 26px);
  line-height: 1;
  text-decoration: none;
  transition: color .26s ease, background-color .26s ease, border-color .26s ease, box-shadow .26s ease, transform .26s cubic-bezier(.22, 1, .36, 1);
}

.agenda-nav-button:hover {
  color: var(--color-surface);
  background: var(--color-primary);
  border-color: var(--color-primary-strong);
  box-shadow: 0 12px 22px rgb(var(--color-primary-rgb) / 0.22);
  text-decoration: none;
  transform: translateY(-2px);
}

.agenda-nav-button:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}

.agenda-today-button {
  white-space: nowrap;
}

.agenda-toolbar__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.agenda-display-options {
  position: relative;
  z-index: 40;
}

.agenda-display-options > summary {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  list-style: none;
  cursor: pointer;
  user-select: none;
}

.agenda-display-options > summary::-webkit-details-marker {
  display: none;
}

.agenda-display-options > summary::after {
  content: "⌄";
  margin-left: 7px;
  color: var(--color-text-soft);
  font-size: 12px;
  transition: transform 0.2s ease;
}

.agenda-display-options[open] > summary::after {
  transform: rotate(180deg);
}

.agenda-display-options__panel {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  width: min(280px, calc(100vw - 48px));
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgb(var(--color-identity-rgb) / 0.2);
  border-radius: 16px;
  background: rgb(var(--color-white-rgb) / 0.97);
  box-shadow: 0 22px 54px rgb(var(--color-text-rgb) / 0.16);
  backdrop-filter: blur(16px);
  transform-origin: top right;
  animation: agenda-panel-in 0.18s ease-out both;
}

@keyframes agenda-panel-in {
  from {
    opacity: 0;
    transform: translateY(-4px) scale(0.98);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.agenda-display-options__row {
  display: grid;
  gap: 7px;
}

.agenda-display-options__row > span {
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 11px);
  font-weight: var(--font-weight-label, 700);
  text-transform: uppercase;
}

.agenda-display-options__row > div {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5px;
  padding: 4px;
  border-radius: 12px;
  background: var(--color-surface-muted);
}

.agenda-display-options__row a {
  padding: 7px 8px;
  border-radius: 9px;
  color: var(--color-text-soft);
  font-size: var(--font-size-control, 12px);
  font-weight: var(--font-weight-label, 700);
  text-align: center;
  text-decoration: none;
}

.agenda-display-options__row a.is-active {
  color: var(--color-identity-strong);
  background: var(--color-surface);
  box-shadow: var(--shadow-xs);
}

.agenda-legend {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px 16px;
  margin: -10px 2px 16px;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 12px);
}

.agenda-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.agenda-legend i {
  width: 10px;
  height: 10px;
  display: block;
  flex: 0 0 auto;
  border-radius: 999px;
}

.agenda-week {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 10px;
  padding: 2px 2px 8px;
}

.agenda-week__day,
.agenda-month__cell {
  position: relative;
  border: 1px solid var(--color-border);
  border-radius: 16px;
  background: var(--color-surface);
}

.agenda-week__day {
  min-height: 240px;
  padding: 12px;
}

.agenda-week__day--today,
.agenda-month__cell--today {
  border: 2px solid var(--color-current-day);
  background: var(--color-current-day-soft);
  box-shadow: 0 8px 20px rgb(var(--color-secondary-rgb) / 0.16);
}

.agenda-week__header {
  position: relative;
  z-index: 2;
  min-height: 49px;
  margin: -4px -4px 12px;
  border-radius: 12px;
}

.agenda-week__day--today .agenda-week__header {
  background: var(--color-current-day);
}

.agenda-week__day--today .agenda-week__day-link,
.agenda-week__day--today .agenda-week__day-link > div small,
.agenda-week__day--today .agenda-week__day-link > span,
.agenda-week__day--today .agenda-week__day-link > span small {
  color: var(--color-surface);
}

.agenda-week__day-link {
  min-height: 49px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
  padding: 8px;
  border-radius: 12px;
  color: inherit;
  text-decoration: none;
  transition: background-color 0.16s ease, box-shadow 0.16s ease;
}

.agenda-week__day-link:hover,
.agenda-week__day-link:focus-visible {
  background: var(--color-identity-faint);
  box-shadow: inset 0 0 0 1px rgb(var(--color-identity-rgb) / 0.24);
  outline: none;
}

.agenda-week__header strong,
.agenda-week__header small {
  display: block;
}

.agenda-week__day-link > div small {
  margin-top: 2px;
  color: var(--color-primary);
  font-size: var(--font-size-table, 10px);
  font-weight: var(--font-weight-label, 700);
}

.agenda-week__day-link > span {
  color: var(--color-primary);
  font-size: var(--font-size-table, 20px);
  font-weight: var(--font-weight-label, 700);
  line-height: 1;
}

.agenda-week__day-link > span small {
  margin-top: 4px;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 10px);
  font-weight: var(--font-weight-label, 600);
  text-align: right;
}

.agenda-list {
  position: relative;
  z-index: 3;
  display: grid;
  gap: 8px;
}

.agenda-event {
  position: relative;
  min-width: 0;
  z-index: 3;
}

.agenda-event:hover,
.agenda-event:focus-within {
  z-index: 30;
}

[data-agenda-calendar-appointment] {
  cursor: grab;
  user-select: none;
}

[data-agenda-calendar-appointment]:active {
  cursor: grabbing;
}
.agenda-chip--external_busy,.agenda-entry--external_busy,.agenda-day-event.agenda-entry--external_busy,.agenda-hour-event.agenda-entry--external_busy { background:#eceff1; border:1px solid #aeb8bd; box-shadow:inset 3px 0 0 #65747b; color:#33434a; cursor:default; opacity:.6; transition:background-color .16s ease, color .16s ease, opacity .16s ease; }
.agenda-chip--external_busy:hover,.agenda-entry--external_busy:hover,.agenda-day-event.agenda-entry--external_busy:hover,.agenda-hour-event.agenda-entry--external_busy:hover { background:#e3e8ea; color:#25343a; opacity:.9; transform:none; }

.agenda-external-provider-badge {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 16px;
  margin-right: 4px;
  border: 1px solid rgb(var(--color-text-rgb) / 0.14);
  border-radius: 4px;
  background: #fff;
  vertical-align: -3px;
}

.agenda-external-provider-badge img {
  display: block;
  width: 11px;
  height: 11px;
  object-fit: contain;
}

.agenda-external-provider-badge--google {
  width: 28px;
}

.agenda-external-provider-badge--google img {
  width: 22px;
  height: 8px;
}

.agenda-external-provider-badge--compact {
  width: 13px;
  height: 13px;
  margin: 0;
  border-radius: 3px;
  vertical-align: middle;
}

.agenda-external-provider-badge--compact img {
  width: 9px;
  height: 9px;
}

.agenda-external-provider-badge--compact.agenda-external-provider-badge--google {
  width: 19px;
}

.agenda-external-provider-badge--compact.agenda-external-provider-badge--google img {
  width: 15px;
  height: 6px;
}

.agenda-event.is-agenda-calendar-dragging {
  z-index: 31;
  pointer-events: none;
}

[data-agenda-calendar-appointment].is-dragging,
[data-agenda-calendar-appointment].is-rescheduling {
  opacity: 0.62;
}

.agenda-month__cell.is-agenda-calendar-drop-target,
.agenda-week__day.is-agenda-calendar-drop-target,
.agenda-hours__slot.is-agenda-calendar-drop-target {
  border-color: rgb(var(--color-identity-rgb) / 0.58);
  background: var(--color-identity-faint);
  box-shadow: inset 0 0 0 2px rgb(var(--color-identity-rgb) / 0.34);
}

.agenda-entry,
.agenda-chip {
  color: var(--color-text);
  background: var(--color-identity-faint);
  text-decoration: none;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.agenda-entry:hover,
.agenda-chip:hover {
  z-index: 1;
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgb(var(--color-text-rgb) / 0.1);
}
.agenda-chip--pending,.agenda-entry--pending,.agenda-day-event.agenda-entry--pending,.agenda-hour-event.agenda-entry--pending{background:rgb(215 89 61 / .14)!important;border-color:rgb(215 89 61 / .62)!important;box-shadow:inset 3px 0 0 #d7593d!important}.agenda-pending-label{background:#d7593d;border-radius:999px;color:#fff;display:inline-block;font-size:var(--font-size-table, .64rem);font-style:normal;font-weight:var(--font-weight-label, 850);letter-spacing:.01em;line-height:1;margin-left:5px;padding:3px 5px;vertical-align:middle;white-space:nowrap}
.agenda-event--awaiting-client .agenda-chip,
.agenda-event--awaiting-client .agenda-entry,
.agenda-event--awaiting-client .agenda-day-event,
.agenda-event--awaiting-client .agenda-hour-event {
  background-color: #fff1dc !important;
  background-image: repeating-linear-gradient(135deg, rgb(224 132 31 / .16) 0 7px, transparent 7px 14px) !important;
  border-color: #d9821f !important;
  box-shadow: inset 4px 0 0 #d9821f !important;
  color: #5c3510 !important;
}
.agenda-event--awaiting-client .agenda-chip:hover,
.agenda-event--awaiting-client .agenda-entry:hover,
.agenda-event--awaiting-client .agenda-day-event:hover,
.agenda-event--awaiting-client .agenda-hour-event:hover {
  background-color: #ffe5bd !important;
  color: #452607 !important;
}
.agenda-awaiting-client-label {
  background: #b85f00;
  border-radius: 999px;
  color: #fff;
  display: inline-block;
  font-size: var(--font-size-table, .64rem);
  font-style: normal;
  font-weight: var(--font-weight-label, 850);
  line-height: 1.15;
  margin-left: 5px;
  padding: 3px 6px;
  vertical-align: middle;
  white-space: nowrap;
}
.agenda-event--pending{position:relative}.agenda-event__notification{align-items:center;background:#d7593d;border:2px solid var(--color-surface);border-radius:999px;color:#fff;display:inline-flex;font-size:var(--font-size-table, .66rem);font-weight:var(--font-weight-label, 850);height:21px;justify-content:center;line-height:1;min-width:21px;padding:0 4px;pointer-events:none;position:absolute;right:-7px;top:-8px;z-index:5}.agenda-event.is-agenda-focus-booking .agenda-day-event{outline:3px solid rgb(215 89 61 / .45);outline-offset:4px;box-shadow:0 14px 30px rgb(215 89 61 / .18),inset 3px 0 0 #d7593d!important}
.agenda-booking-request-modal { max-width: 610px; }
.agenda-booking-request-modal__details { display: grid; gap: 10px; margin: 0; }
.agenda-booking-request-modal__details > div { background: rgb(var(--color-primary-rgb) / .06); border: 1px solid rgb(var(--color-primary-rgb) / .12); border-radius: 10px; display: grid; gap: 3px; padding: 10px 12px; }
.agenda-booking-request-modal__details dt { color: var(--color-text-soft); font-size: var(--font-size-table, .75rem); font-weight: var(--font-weight-label, 800); letter-spacing: .04em; text-transform: uppercase; }
.agenda-booking-request-modal__details dd { margin: 0; }
.agenda-booking-request-modal__actions > form { margin: 0; }
.agenda-booking-request-modal__waiting { margin: 14px 0 0; }
.agenda-booking-request-modal__proposal { background: rgb(var(--color-secondary-rgb) / .08); border: 1px solid rgb(var(--color-secondary-rgb) / .2); border-radius: 12px; display: grid; gap: 8px; padding: 12px; }
.agenda-booking-request-modal__proposal label { font-size: var(--font-size-table, .88rem); font-weight: var(--font-weight-label, 750); }
.agenda-booking-request-modal__proposal > div { align-items: center; display: flex; flex-wrap: wrap; gap: 10px; }
.agenda-booking-request-modal__proposal .input { flex: 1 1 215px; }
.agenda-booking-request-modal__proposal > select.input { width: min(100%, 440px); }
@media (min-width: 540px) { .agenda-booking-request-modal__details { grid-template-columns: 1fr 1fr; } .agenda-booking-request-modal__details--wide { grid-column: 1 / -1; } }

.agenda-entry {
  display: block;
  padding: 9px 10px;
  border-radius: 12px;
  font-size: var(--font-size-table, 12px);
}

.agenda-entry strong,
.agenda-entry span,
.agenda-entry small {
  display: block;
}

.agenda-entry strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.agenda-entry span {
  margin-top: 3px;
}

.agenda-entry small {
  margin-top: 4px;
  overflow: hidden;
  color: #57534e;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.agenda-entry--cancelled,
.agenda-chip--cancelled,
.agenda-hour-event.agenda-entry--cancelled {
  opacity: 0.52;
  text-decoration: line-through;
}

.agenda-empty {
  position: relative;
  z-index: 2;
  pointer-events: none;
  margin: 22px 0 0;
  color: #a8a29e;
  font-size: var(--font-size-table, 12px);
  text-align: center;
}

.agenda-month {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 8px;
}

.agenda-month__weekday {
  padding: 5px 8px;
  color: #57534e;
  font-size: var(--font-size-table, 12px);
  font-weight: var(--font-weight-label, 700);
  text-transform: uppercase;
}

.agenda-month__weekday abbr {
  display: none;
  text-decoration: none;
}

.agenda-month__cell {
  min-width: 0;
  min-height: 126px;
  padding: 9px;
}

.agenda-month__week-link {
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
}

.agenda-month__week-link:focus-visible {
  outline: 3px solid rgb(var(--color-secondary-rgb) / 0.58);
  outline-offset: -4px;
}

.agenda-month__date {
  position: relative;
  z-index: 3;
  min-height: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
  margin-bottom: 7px;
  color: inherit;
  font-weight: var(--font-weight-label, 700);
  text-decoration: none;
}

.agenda-month__date > span {
  width: 25px;
  height: 25px;
  display: grid;
  place-items: center;
  border-radius: 9px;
}

.agenda-month__date small {
  color: var(--color-primary);
  font-size: var(--font-size-table, 9px);
}

.agenda-month__cell--today .agenda-month__date > span {
  color: var(--color-surface);
  background: var(--color-current-day);
  box-shadow: 0 4px 10px rgb(var(--color-secondary-rgb) / 0.2);
}

.agenda-month__cell--today .agenda-month__date small {
  color: var(--color-current-day-strong);
}

.agenda-month__cell--today .agenda-month__date {
  margin-bottom: 24px;
}

.agenda-month__cell--today .agenda-month__date small {
  position: absolute;
  top: 32px;
  left: 0;
}

.agenda-month__cell--muted {
  color: #a8a29e;
  background: #fafaf9;
}

.agenda-month__cell--muted .agenda-month__events {
  opacity: 0.48;
}

.agenda-month__events {
  position: relative;
  z-index: 4;
  display: grid;
  gap: 5px;
}

.agenda-month__events:hover,
.agenda-month__events:focus-within {
  z-index: 30;
}

.agenda-month__events .agenda-event {
  display: block;
}

.agenda-chip {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 7px;
  border-radius: 9px;
  font-size: var(--font-size-table, 11px);
}

.agenda-chip__dot {
  width: 6px;
  height: 6px;
  display: block;
  flex: 0 0 auto;
  border-radius: 999px;
  background: currentColor;
  opacity: 0.62;
}

.agenda-chip__label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.agenda-more-link {
  position: relative;
  z-index: 3;
  padding: 2px 4px;
  color: var(--color-primary);
  font-size: var(--font-size-table, 10px);
  font-weight: var(--font-weight-label, 700);
  text-decoration: none;
}

.agenda-card--hours-hidden .agenda-event-time {
  display: none;
}

.agenda-empty-create {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  border-radius: inherit;
  color: var(--color-primary);
  text-decoration: none;
}

.agenda-empty-create::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--color-identity-faint);
  opacity: 0;
  transition: opacity 0.2s ease;
}

.agenda-empty-create > span {
  position: absolute;
  top: 50%;
  right: 8px;
  padding: 3px 6px;
  border-radius: 7px;
  background: rgb(var(--color-white-rgb) / 0.88);
  font-size: var(--font-size-table, 9px);
  font-weight: var(--font-weight-label, 700);
  opacity: 0;
  transform: translateY(calc(-50% + 3px));
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.agenda-empty-create:hover::before,
.agenda-empty-create:focus-visible::before,
.agenda-empty-create:hover > span,
.agenda-empty-create:focus-visible > span {
  opacity: 1;
}

.agenda-empty-create:hover > span,
.agenda-empty-create:focus-visible > span {
  transform: translateY(-50%);
}

.agenda-quick-create {
  position: absolute;
  inset: 6px 6px auto auto;
  z-index: 6;
  width: 23px;
  height: 23px;
  display: grid;
  place-items: center;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.28);
  border-radius: 50%;
  background: rgb(var(--color-white-rgb) / 0.9);
  box-shadow: 0 2px 5px rgb(var(--color-primary-rgb) / 0.12);
  color: var(--color-primary);
  opacity: 0;
  pointer-events: none;
  text-decoration: none;
  transform: translateY(2px);
  transition: opacity 0.16s ease, background-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}

.agenda-quick-create--week-day {
  top: 68px;
}

.agenda-quick-create > span {
  color: inherit;
  font-size: var(--font-size-body);
  font-weight: var(--font-weight-label, 800);
  line-height: 1;
}

.agenda-month__cell:hover > .agenda-quick-create,
.agenda-hours__slot:hover > .agenda-quick-create,
.agenda-week__day:hover > .agenda-quick-create,
.agenda-quick-create:focus-visible {
  opacity: 0.78;
  pointer-events: auto;
  transform: translateY(0);
}

.agenda-quick-create:hover,
.agenda-quick-create:focus-visible {
  background: var(--color-surface);
  box-shadow: 0 0 0 2px rgb(var(--color-primary-rgb) / 0.14), 0 2px 6px rgb(var(--color-primary-rgb) / 0.16);
  opacity: 1;
}

.agenda-event-popover {
  position: absolute;
  left: var(--agenda-popover-anchor, 50%);
  bottom: calc(100% + 9px);
  width: 210px;
  max-width: calc(100vw - 40px);
  display: none;
  gap: 3px;
  padding: 11px 12px;
  border: 1px solid var(--agenda-popover-border, rgb(var(--color-identity-rgb) / 0.18));
  border-radius: 13px;
  color: var(--color-text);
  background: var(--agenda-popover-background, rgb(var(--color-white-rgb) / 0.97));
  box-shadow: 0 16px 40px rgb(var(--color-text-rgb) / 0.16), inset 3px 0 0 var(--agenda-popover-color, var(--color-identity));
  backdrop-filter: blur(14px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(var(--agenda-popover-translate, -50%), 6px) scale(0.98);
  transform-origin: bottom center;
  transition:
    opacity 0.2s ease,
    visibility 0s linear 0.2s,
    transform 0.24s cubic-bezier(0.22, 1, 0.36, 1);
}

.agenda-event-popover::after {
  content: "";
  position: absolute;
  top: 100%;
  left: var(--agenda-popover-arrow, 50%);
  width: 9px;
  height: 9px;
  border-right: 1px solid var(--agenda-popover-border, rgb(var(--color-identity-rgb) / 0.18));
  border-bottom: 1px solid var(--agenda-popover-border, rgb(var(--color-identity-rgb) / 0.18));
  background: var(--agenda-popover-background, rgb(var(--color-white-rgb) / 0.97));
  transform: translate(-50%, -5px) rotate(45deg);
}

.agenda-event:hover .agenda-event-popover,
.agenda-event:focus-within .agenda-event-popover {
  display: grid;
  opacity: 1;
  visibility: visible;
  transform: translate(var(--agenda-popover-translate, -50%), 0) scale(1);
  transition-delay: 0.06s, 0s, 0.06s;
}

.agenda-month__cell:nth-child(7n + 1),
.agenda-month__cell:nth-child(7n + 2),
.agenda-week__day:nth-child(1),
.agenda-week__day:nth-child(2) {
  --agenda-popover-anchor: 0%;
  --agenda-popover-translate: 0%;
  --agenda-popover-arrow: 12px;
}

.agenda-month__cell:nth-child(7n + 6),
.agenda-month__cell:nth-child(7n),
.agenda-week__day:nth-child(6),
.agenda-week__day:nth-child(7) {
  --agenda-popover-anchor: 100%;
  --agenda-popover-translate: -100%;
  --agenda-popover-arrow: calc(100% - 12px);
}

.agenda-event-popover strong,
.agenda-event-popover > span,
.agenda-event-popover small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.agenda-day {
  overflow: hidden;
  border: 1px solid var(--color-border);
  border-radius: 18px;
  background: var(--color-surface);
}

.agenda-day__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 18px;
  border-bottom: 1px solid var(--color-border);
  background: var(--color-identity-faint);
}

.agenda-day--today {
  border: 2px solid var(--color-current-day);
  box-shadow: 0 10px 24px rgb(var(--color-secondary-rgb) / 0.15);
}

.agenda-day--today .agenda-day__header {
  border-bottom-color: var(--color-current-day-strong);
  color: var(--color-surface);
  background: var(--color-current-day);
}

.agenda-day--today .agenda-day__header div span,
.agenda-day--today .agenda-day__header > span {
  color: var(--color-surface);
}

.agenda-day__header strong,
.agenda-day__header span {
  display: block;
}

.agenda-day__header strong {
  font-size: var(--font-size-table, 15px);
}

.agenda-day__header div span,
.agenda-day__header > span {
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 12px);
}

.agenda-day__timeline {
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr);
}

.agenda-day__time,
.agenda-day__slot {
  min-height: 28px;
  border-bottom: 1px solid rgb(var(--color-text-rgb) / 0.075);
}

.agenda-day__time {
  padding: 5px 12px 0 0;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 10px);
  text-align: right;
}

.agenda-day__slot {
  --agenda-day-create-gutter: 72px;
  --agenda-day-event-gap: 6px;
  --agenda-day-event-inset: 8px;
  position: relative;
  border-left: 1px solid var(--color-border);
  transition: background-color 0.16s ease, box-shadow 0.16s ease;
}

.agenda-day__slot.is-agenda-drop-target {
  background: var(--color-identity-faint);
  box-shadow: inset 0 0 0 2px rgb(var(--color-identity-rgb) / 0.38);
}

.agenda-day__slot.is-agenda-drop-target .agenda-empty-create::before {
  opacity: 1;
}

.agenda-day__time--half,
.agenda-day__slot--half {
  border-bottom-color: rgb(var(--color-text-rgb) / 0.14);
}

.agenda-day__time--hour,
.agenda-day__slot--hour {
  min-height: 32px;
  border-bottom: 1px solid rgb(var(--color-text-rgb) / 0.28);
}

.agenda-day__time--hour {
  color: var(--color-text);
  font-weight: var(--font-weight-label, 700);
}

.agenda-event--day {
  position: absolute;
  top: 0;
  right: var(--agenda-day-event-inset);
  left: var(--agenda-day-event-inset);
  min-width: 0;
  z-index: 4;
}

.agenda-event--day.is-dragging,
.agenda-event--day.is-resizing {
  z-index: 8;
}

.agenda-event--day.is-dragging {
  pointer-events: none;
}

.agenda-event--day.is-agenda-focus-booking {
  z-index: 7;
}

.agenda-event--day.is-agenda-focus-booking .agenda-day-event {
  outline: 3px solid rgb(var(--color-accent-rgb) / 0.42);
  outline-offset: 3px;
  box-shadow: 0 14px 34px rgb(var(--color-accent-rgb) / 0.2);
}

.agenda-event-time-preview {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 9;
  min-width: 96px;
  box-sizing: border-box;
  padding: 7px 10px;
  border: 1px solid rgb(var(--color-identity-rgb) / 0.5);
  border-radius: 6px;
  background: rgb(var(--color-white-rgb) / 0.94);
  box-shadow: 0 8px 22px rgb(var(--color-text-rgb) / 0.2);
  color: var(--color-text);
  font-size: var(--font-size-table, 24px);
  font-weight: var(--font-weight-label, 800);
  line-height: 1;
  text-align: center;
  transform: translate(-50%, -50%);
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}

.agenda-event--day.is-time-preview-visible .agenda-event-time-preview {
  visibility: visible;
  opacity: 1;
}

.body-app.is-agenda-pointer-dragging,
.body-app.is-agenda-pointer-dragging * {
  cursor: grabbing !important;
}

.body-app.is-agenda-resizing,
.body-app.is-agenda-resizing * {
  cursor: ns-resize !important;
}

.agenda-day-event {
  position: relative;
  min-height: 24px;
  height: 100%;
  box-sizing: border-box;
  display: block;
  overflow: hidden;
  padding: 8px 10px;
  border-radius: 10px;
  color: var(--color-text);
  cursor: grab;
  font-size: var(--font-size-table, 12px);
  text-decoration: none;
  user-select: none;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.agenda-event-resize-handle {
  position: absolute;
  right: 7px;
  left: 7px;
  z-index: 7;
  height: 10px;
  cursor: ns-resize;
  touch-action: none;
}

.agenda-event-resize-handle::after {
  position: absolute;
  top: 4px;
  right: 34%;
  left: 34%;
  height: 2px;
  border-radius: 1px;
  background: rgb(var(--color-text-rgb) / 0.48);
  content: "";
  opacity: 0.68;
  transition: opacity 0.16s ease, background-color 0.16s ease;
}

.agenda-event-resize-handle--start {
  top: -5px;
}

.agenda-event-resize-handle--end {
  bottom: -5px;
}

.agenda-event-resize-handle:hover::after,
.agenda-event-resize-handle:focus-visible::after,
.agenda-event--day.is-resizing .agenda-event-resize-handle::after {
  background: var(--color-identity);
  opacity: 1;
}

.agenda-event-resize-handle:focus-visible {
  outline: 2px solid var(--color-identity);
  outline-offset: 1px;
}

.agenda-day-event:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgb(var(--color-text-rgb) / 0.12);
}

.agenda-day-event:active {
  cursor: grabbing;
}

.agenda-day-event.is-dragging,
.agenda-day-event.is-rescheduling {
  opacity: 0.62;
  transform: scale(0.99);
}

.agenda-day-event strong,
.agenda-day-event span,
.agenda-day-event small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.agenda-day-event span,
.agenda-day-event small {
  margin-top: 2px;
}

.agenda-day-event small {
  color: #57534e;
}

.agenda-day-event small.agenda-pending-label {
  color: var(--color-surface);
}

.agenda-event-popover strong {
  font-size: var(--font-size-table, 12px);
}

.agenda-event-popover > span {
  color: var(--color-text);
  font-size: var(--font-size-table, 11px);
}

.agenda-event-popover small {
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 10px);
}

.agenda-hours-scroll {
  max-width: 100%;
  overflow: auto;
  border: 1px solid var(--color-border);
  border-radius: 16px;
  background: var(--color-surface);
  scrollbar-color: rgb(var(--color-identity-rgb) / 0.28) transparent;
}

.agenda-hours {
  min-width: 830px;
  display: grid;
  grid-template-columns: 58px repeat(7, minmax(110px, 1fr));
}

.agenda-hours__corner,
.agenda-hours__day-header {
  position: sticky;
  top: 0;
  z-index: 12;
  border-bottom: 1px solid var(--color-border);
  background: rgb(var(--color-white-rgb) / 0.96);
  backdrop-filter: blur(12px);
}

.agenda-hours__corner {
  left: 0;
  z-index: 14;
}

.agenda-hours__day-header {
  min-width: 0;
  text-align: center;
}

.agenda-hours__day-link {
  min-height: 100%;
  display: block;
  padding: 9px 7px;
  color: inherit;
  text-decoration: none;
  transition: background-color 0.16s ease, box-shadow 0.16s ease;
}

.agenda-hours__day-link:hover,
.agenda-hours__day-link:focus-visible {
  background: var(--color-identity-faint);
  box-shadow: inset 0 -2px 0 rgb(var(--color-identity-rgb) / 0.38);
  outline: none;
}

.agenda-hours__day-header strong,
.agenda-hours__day-header span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.agenda-hours__day-header strong {
  font-size: var(--font-size-table, 11px);
}

.agenda-hours__day-header span {
  margin-top: 2px;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 9px);
}

.agenda-hours__day-header--today {
  color: var(--color-surface);
  background: var(--color-current-day);
}

.agenda-hours__day-header--today span {
  color: var(--color-surface);
}

.agenda-hours__time {
  position: sticky;
  left: 0;
  z-index: 10;
  padding: 8px 7px 0 0;
  border-right: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  color: var(--color-text-soft);
  background: rgb(var(--color-white-rgb) / 0.97);
  font-size: var(--font-size-table, 9px);
  text-align: right;
}

.agenda-hours__slot {
  position: relative;
  min-height: 62px;
  padding: 34px 4px 4px;
  border-right: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  background: var(--color-surface);
}

.agenda-hours__slot-day-link {
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
  cursor: pointer;
}

.agenda-hours__slot-day-link:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: -3px;
}

.agenda-hours__slot--today {
  background: var(--color-current-day-soft);
}

.agenda-hours__events {
  position: relative;
  z-index: 3;
  display: grid;
  gap: 3px;
  min-width: 0;
}

.agenda-hours__event-row {
  display: grid;
  grid-auto-columns: minmax(0, 1fr);
  grid-auto-flow: column;
  gap: 3px;
  min-width: 0;
}

.agenda-event--hour {
  min-width: 0;
}

.agenda-hour-event {
  position: relative;
  z-index: 3;
  display: block;
  overflow: hidden;
  padding: 6px 7px;
  border-radius: 9px;
  color: var(--color-text);
  font-size: var(--font-size-table, 9px);
  text-decoration: none;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.agenda-hour-event:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgb(var(--color-text-rgb) / 0.1);
}

.agenda-hour-event strong,
.agenda-hour-event span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.agenda-hour-event span {
  margin-top: 2px;
}

.agenda-card--compact .agenda-month__cell {
  min-height: 92px;
  padding: 6px;
}

.agenda-card--compact .agenda-chip {
  padding: 4px 6px;
}

.agenda-card--compact .agenda-week__day {
  min-height: 180px;
}

.agenda-card--compact .agenda-hours__slot {
  min-height: 46px;
}

.agenda-card--compact .agenda-year {
  gap: 10px;
}

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

.agenda-year__month {
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--color-border);
  border-radius: 16px;
  background: var(--color-surface);
  box-shadow: var(--shadow-xs);
}

.agenda-year__month-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}

.agenda-year__month-header h3 {
  margin: 0;
  font-size: var(--font-size-card-title, 15px);
}

.agenda-year__month-header a {
  color: var(--color-primary);
  font-size: var(--font-size-control, 11px);
  font-weight: var(--font-weight-label, 700);
  text-decoration: none;
}

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

.agenda-year__weekday {
  padding: 2px 0 5px;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 9px);
  font-weight: var(--font-weight-label, 700);
  text-align: center;
}

.agenda-year__day {
  position: relative;
  aspect-ratio: 1;
  min-width: 0;
  display: grid;
  place-items: center;
  border-radius: 8px;
  color: var(--color-text);
  font-size: var(--font-size-table, 10px);
  text-decoration: none;
}

.agenda-year__day:hover {
  background: var(--color-surface-muted);
}

.agenda-year__day--busy {
  background: transparent;
  color: var(--color-secondary-deep);
  font-weight: var(--font-weight-label, 700);
}

.agenda-year__day--busy::before {
  position: absolute;
  inset: 2px;
  border-radius: 6px;
  background: var(--color-secondary-soft);
  content: "";
  transition: background-color var(--ui-motion-fast, 0.16s) ease;
}

.agenda-year__day--busy > span {
  position: relative;
  z-index: 1;
}

.agenda-year__day--busy:hover {
  background: transparent;
  color: var(--color-secondary-deep);
}

.agenda-year__day--busy:hover::before {
  background: rgb(var(--color-secondary-rgb) / 0.24);
}

.agenda-year__day--today {
  color: var(--color-surface);
  background: var(--color-current-day);
  box-shadow: 0 3px 8px rgb(var(--color-secondary-rgb) / 0.2);
  font-weight: var(--font-weight-label, 700);
}

.agenda-year__day--today:hover {
  background: var(--color-current-day-strong);
}

.agenda-year__day--today.agenda-year__day--busy {
  background: transparent;
  color: var(--color-secondary-deep);
  box-shadow: inset 0 0 0 1px var(--color-current-day);
}

.agenda-year__day--today.agenda-year__day--busy:hover {
  background: transparent;
}

.agenda-year__day--muted {
  color: transparent;
}

.section-heading-inline {
  margin-bottom: 16px;
}

.section-heading-inline h2 {
  margin-bottom: 4px;
}

.section-heading-inline p {
  margin: 0;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 13px);
}

@media (max-width: 900px) {
  .filters-bar,
  .filters-bar--compact,
  .dashboard-kpis-layout,
  .dashboard-alerts,
  .dashboard-content-grid,
  .detail-grid,
  .annotation-editor,
  .species-catalog-layout,
  .settings-practices-grid {
    grid-template-columns: 1fr;
  }

  .species-create-card {
    position: static;
  }

  .agenda-header-actions {
    flex-wrap: wrap;
    justify-content: flex-start;
  }

  .session-worklist-filters {
    grid-template-columns: minmax(0, 1fr);
  }

  .animal-interventions-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .appointment-form__grid,
  .appointment-form__section--place,
  .appointment-session__summary {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .appointment-session__summary > span {
    grid-column: span 2;
  }

  .appointment-form__field--client,
  .appointment-form__field--animal {
    grid-column: span 3;
  }

  .appointment-form__schedule {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  .appointment-place__mode,
  .appointment-place__address-extra {
    grid-column: span 2;
  }

  .appointment-place__existing,
  .appointment-place__address {
    grid-column: span 4;
  }

  .appointment-form__field--practice {
    grid-column: 1 / span 3;
    grid-row: 3;
  }

  .appointment-form__field--purpose {
    grid-column: 4 / span 3;
    grid-row: 3;
  }

  .appointment-form__field--offer {
    grid-column: 1 / -1;
    grid-row: 4;
  }

  .agenda-toolbar {
    grid-template-columns: 1fr auto;
  }

  .agenda-period-navigation {
    grid-column: 1 / -1;
    grid-row: 2;
  }

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

  .annotation-board {
    min-height: 360px;
    max-height: none;
  }

  .annotation-sidebar {
    max-height: none;
    overflow: visible;
    padding-right: 0;
  }

  .annotation-session-settings {
    grid-template-columns: 1fr;
  }

  .annotation-board--3d .annotation-board__hint {
    right: 14px;
  }

  .annotation-editor--3d .annotation-sidebar {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px) {
  .settings-practice-card {
    min-height: 0;
    padding: 18px;
  }

  .settings-practice-card__footer {
    align-items: stretch;
    flex-direction: column;
  }

  .settings-practice-card__footer .btn {
    width: 100%;
  }

  .appointment-form-hero {
    align-items: flex-start;
    padding: 18px;
  }

  .appointment-form-card,
  .appointment-form__section--details,
  .appointment-form__section--place,
  .appointment-form__private-notes,
  .appointment-session {
    padding: 16px;
  }

  .appointment-form__grid,
  .appointment-form__section--place,
  .appointment-place__new,
  .appointment-place__locality,
  .appointment-session__summary,
  .appointment-session__grid,
  .appointment-session__reports {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }

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

  .appointment-session__summary > span,
  .appointment-session__wide {
    grid-column: 1;
  }

  .appointment-session__header {
    align-items: flex-start;
  }

  .appointment-session__actions .btn {
    width: 100%;
  }

  .appointment-session__statuses {
    justify-content: flex-start;
  }

  .appointment-session__send-report,
  .appointment-session__send-report .btn {
    width: 100%;
  }

  .appointment-session__annotations-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .appointment-session__annotations-header .btn {
    width: 100%;
  }

  .appointment-session__annotation-row {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px 12px;
  }

  .appointment-session__annotation-row time {
    text-align: right;
  }

  .appointment-session__annotation-action {
    grid-column: 1 / -1;
  }

  .appointment-form__field--client,
  .appointment-form__field--animal,
  .appointment-form__schedule,
  .appointment-form__field--practice,
  .appointment-form__field--purpose,
  .appointment-form__field--offer,
  .appointment-place__mode,
  .appointment-place__existing,
  .appointment-place__address,
  .appointment-place__address-extra {
    grid-column: 1;
    grid-row: auto;
    justify-self: stretch;
    width: 100%;
  }

  .appointment-form__field--offer .input {
    width: 100%;
  }

  .appointment-form .form-actions .btn {
    width: 100%;
  }

  .appointment-status-actions,
  .appointment-status-actions form,
  .appointment-status-actions .btn {
    width: 100%;
  }

  .animal-form-section {
    padding: 18px;
  }

  .agenda-page-header {
    align-items: stretch;
  }

  .agenda-create-button {
    width: 100%;
  }

  .agenda-card {
    display: flex;
    flex-direction: column;
    padding: 12px;
  }

  .agenda-toolbar {
    order: 1;
    grid-template-columns: 1fr;
    gap: 12px;
    margin: 0 0 14px;
    padding: 10px;
  }

  .agenda-view-switcher {
    min-width: 0;
  }

  .agenda-view-switcher__link {
    min-width: 0;
    flex: 1 1 0;
    padding-inline: 10px;
  }

  .agenda-period-navigation {
    grid-column: 1;
    grid-template-columns: 38px minmax(0, 1fr) 38px;
    gap: 8px;
  }

  .agenda-period-navigation__title {
    min-width: 0;
  }

  .agenda-period-navigation__title strong {
    font-size: var(--font-size-control, 14px);
  }

  .agenda-nav-button {
    width: 38px;
    height: 38px;
  }

  .agenda-today-button {
    flex: 1 1 0;
    min-height: 46px;
    padding-inline: 12px;
  }

  .agenda-toolbar__actions {
    width: 100%;
  }

  .agenda-display-options {
    flex: 1 1 0;
  }

  .agenda-display-options > summary {
    width: 100%;
    justify-content: center;
  }

  .agenda-display-options__panel {
    width: 100%;
    min-width: 280px;
  }

  .agenda-card .filters-bar {
    order: 4;
    grid-template-columns: 1fr 1fr;
    margin: 14px 0 0;
    padding: 10px;
  }

  .agenda-card .filters-bar .input {
    grid-column: 1 / -1;
  }

  .agenda-card .filters-bar .btn {
    width: 100%;
  }

  .agenda-legend {
    order: 2;
    justify-content: flex-start;
    margin: 0 2px 12px;
  }

  .agenda-month,
  .agenda-week,
  .agenda-year,
  .agenda-hours-scroll,
  .agenda-day {
    order: 3;
  }

  .agenda-week {
    grid-template-columns: 1fr;
    overflow: visible;
  }

  .agenda-week__day {
    min-height: 0;
  }

  .agenda-card--compact .agenda-week__day {
    min-height: 0;
    padding: 9px;
  }

  .agenda-empty {
    margin: 8px 0;
    text-align: left;
  }

  .agenda-month {
    gap: 3px;
  }

  .agenda-month__weekday {
    padding: 3px 0;
    text-align: center;
  }

  .agenda-month__weekday span {
    display: none;
  }

  .agenda-month__weekday abbr {
    display: inline;
  }

  .agenda-month__cell {
    min-height: 60px;
    padding: 4px;
    border-radius: 10px;
  }

  .agenda-card--compact .agenda-month__cell {
    min-height: 54px;
    padding: 3px;
  }

  .agenda-month__date {
    min-height: 22px;
    justify-content: flex-start;
    margin: 0;
    font-size: var(--font-size-table, 11px);
  }

  .agenda-empty-create--month {
    inset: 3px 3px auto auto;
    width: 24px;
    height: 24px;
  }

  .agenda-empty-create--month > span {
    font-size: var(--font-size-subtitle);
  }

  .agenda-month__date > span {
    width: 22px;
    height: 22px;
    border-radius: 7px;
  }

  .agenda-month__date small,
  .agenda-chip__label,
  .agenda-more-link {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
  }

  .agenda-month__events {
    display: flex;
    justify-content: center;
    gap: 2px;
    margin-top: 5px;
  }

  .agenda-chip {
    width: 8px;
    height: 8px;
    min-height: 8px;
    display: block;
    flex: 0 0 auto;
    padding: 0;
    border-radius: 999px;
    box-shadow: none;
  }

  .agenda-chip__dot {
    display: none;
  }

  .agenda-year {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .agenda-hours {
    min-width: 780px;
  }

  .agenda-day__header {
    padding: 12px;
  }

  .agenda-day__header strong {
    font-size: var(--font-size-table, 13px);
  }

  .agenda-day__header > span {
    text-align: right;
  }

  .agenda-day__timeline {
    grid-template-columns: 54px minmax(0, 1fr);
  }

  .agenda-day__time {
    padding-right: 8px;
  }

  .agenda-day__slot {
    --agenda-day-event-gap: 4px;
    --agenda-day-event-inset: 5px;
  }
}

/* Galerie photo generique des seances */
.session-photo-gallery {
  background:
    radial-gradient(circle at 93% 2%, color-mix(in srgb, var(--color-secondary) 15%, transparent), transparent 180px),
    var(--color-surface);
  border: 1px solid color-mix(in srgb, var(--color-identity) 28%, var(--color-border));
  border-radius: 17px;
  box-shadow: 0 14px 34px color-mix(in srgb, var(--color-anthracite) 9%, transparent);
  display: grid;
  gap: 14px;
  margin-top: 18px;
  min-width: 0;
  overflow: hidden;
  padding: 17px;
  position: relative;
}

.session-photo-gallery::before {
  background: linear-gradient(180deg, var(--color-identity), color-mix(in srgb, var(--color-identity) 28%, transparent));
  border-radius: 0 0 8px 0;
  content: "";
  height: 72px;
  left: 0;
  position: absolute;
  top: 0;
  width: 4px;
}

.session-photo-gallery__header,
.session-photo-gallery__commands,
.session-photo-gallery__title,
.session-photo-card__actions,
.session-photo-upload__actions {
  align-items: center;
  display: flex;
}

.session-photo-gallery__header {
  gap: 18px;
  flex-wrap: wrap;
  justify-content: space-between;
}

.session-photo-gallery__title {
  flex: 1 1 auto;
  gap: 11px;
  min-width: 0;
  width: 320px;
  max-width: 100%;
}

.session-photo-gallery__title > div {
  min-width: 0;
}

.session-photo-gallery__mark {
  align-items: center;
  background: linear-gradient(145deg, var(--color-identity), var(--color-primary));
  border-radius: 13px 5px 13px 5px;
  box-shadow: 5px 5px 0 color-mix(in srgb, var(--color-secondary) 22%, transparent);
  color: var(--color-surface);
  display: flex;
  flex: 0 0 43px;
  font-size: var(--font-size-body, 19px);
  font-weight: var(--font-weight-label, 900);
  height: 43px;
  justify-content: center;
}

.session-photo-gallery__eyebrow {
  color: var(--color-secondary);
  display: block;
  font-size: var(--font-size-caption, 10px);
  font-weight: var(--font-weight-label, 850);
  letter-spacing: .09em;
  text-transform: uppercase;
}

.session-photo-gallery__title h2 {
  color: var(--color-primary);
  font-size: var(--font-size-section-title, 19px);
  margin: 1px 0 0;
}

.session-photo-gallery__title p {
  color: var(--color-text-soft);
  font-size: var(--font-size-body, 12px);
  line-height: var(--line-height-body, 1.4);
  margin: 2px 0 0;
}

.session-photo-gallery__commands {
  flex: 0 0 auto;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.session-photo-gallery__commands .btn {
  flex: 0 0 auto;
  font-size: var(--font-size-control, 11px);
  min-height: 32px;
  padding: 6px 9px;
}

.session-photo-gallery__count,
.session-photo-scope {
  border-radius: 999px;
  font-size: var(--font-size-help, 10px);
  font-weight: var(--font-weight-label, 850);
  padding: 6px 9px;
  white-space: nowrap;
}

.session-photo-gallery__count {
  background: var(--color-identity-faint);
  border: 1px solid color-mix(in srgb, var(--color-identity) 28%, transparent);
  color: var(--color-primary);
}

.session-photo-upload {
  animation: session-photo-reveal .35s cubic-bezier(.2, .8, .2, 1) both;
  background: color-mix(in srgb, var(--color-identity-faint) 45%, var(--color-surface));
  border: 1px solid color-mix(in srgb, var(--color-identity) 25%, var(--color-border));
  border-radius: 14px;
  padding: 12px;
}

.session-photo-upload[hidden] {
  display: none;
}

@keyframes session-photo-reveal {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: translateY(0); }
}

.session-photo-upload form {
  align-items: stretch;
  display: grid;
  gap: 13px;
  grid-template-columns: minmax(220px, .68fr) minmax(410px, 1.32fr);
}

.session-photo-dropzone {
  align-items: center;
  background: var(--color-surface);
  border: 1px dashed color-mix(in srgb, var(--color-identity) 62%, var(--color-border));
  border-radius: 12px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 184px;
  overflow: hidden;
  padding: 18px;
  text-align: center;
  transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}

.session-photo-dropzone:hover,
.session-photo-dropzone:focus-within {
  border-color: var(--color-secondary);
  box-shadow: 0 10px 24px color-mix(in srgb, var(--color-secondary) 14%, transparent);
  transform: translateY(-2px);
}

.session-photo-dropzone input {
  height: 1px;
  opacity: 0;
  position: absolute;
  width: 1px;
}

.session-photo-dropzone__icon {
  align-items: center;
  background: var(--color-identity-faint);
  border-radius: 10px 4px 10px 4px;
  color: var(--color-primary);
  display: flex;
  font-size: 24px;
  height: 42px;
  justify-content: center;
  margin-bottom: 9px;
  width: 42px;
}

.session-photo-dropzone strong {
  color: var(--color-primary);
  font-size: var(--font-size-table, 13px);
}

.session-photo-dropzone small {
  color: var(--color-text-soft);
  font-size: var(--font-size-help, 10px);
  margin-top: 4px;
}

.session-photo-upload__details {
  display: grid;
  gap: 9px;
  min-width: 0;
}

.session-photo-upload__details .field > span small {
  color: var(--color-text-soft);
  font-weight: var(--font-weight-label, 500);
}

.session-photo-observations {
  display: grid;
  gap: 9px;
  max-height: 310px;
  overflow: auto;
  padding-right: 4px;
}

.session-photo-observations[hidden] {
  display: none;
}

.session-photo-observation-field > span {
  overflow-wrap: anywhere;
}

.session-photo-observation-field textarea {
  min-height: 64px;
  resize: vertical;
}

.session-photo-visibility {
  border: 0;
  display: grid;
  gap: 7px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
  min-width: 0;
  padding: 0;
}

.session-photo-visibility legend {
  color: var(--color-text);
  font-size: var(--font-size-label, 12px);
  font-weight: var(--font-weight-label, 750);
  margin-bottom: 5px;
}

.session-photo-visibility label {
  cursor: pointer;
  min-width: 0;
  position: relative;
}

.session-photo-visibility input {
  opacity: 0;
  pointer-events: none;
  position: absolute;
}

.session-photo-visibility label > span {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 10px;
  display: block;
  min-height: 58px;
  padding: 9px 10px 9px 32px;
  position: relative;
  transition: border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}

.session-photo-visibility label > span::before {
  border: 2px solid color-mix(in srgb, var(--color-text-soft) 62%, transparent);
  border-radius: 7px;
  content: "";
  height: 14px;
  left: 10px;
  position: absolute;
  top: 12px;
  width: 14px;
}

.session-photo-visibility input:checked + span {
  border-color: var(--color-identity);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-identity) 13%, transparent);
}

.session-photo-visibility input:checked + span::before {
  background: var(--color-identity);
  border-color: var(--color-identity);
  box-shadow: inset 0 0 0 3px var(--color-surface);
}

.session-photo-visibility input:focus-visible + span {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

.session-photo-visibility strong,
.session-photo-visibility small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
}

.session-photo-visibility strong {
  color: var(--color-primary);
  font-size: var(--font-size-table, 11px);
}

.session-photo-visibility small {
  color: var(--color-text-soft);
  font-size: var(--font-size-help, 9px);
  line-height: 1.3;
  margin-top: 2px;
}

.session-photo-consent {
  align-items: center;
  background: color-mix(in srgb, var(--color-secondary) 10%, var(--color-surface));
  border: 1px solid color-mix(in srgb, var(--color-secondary) 30%, transparent);
  border-radius: 9px;
  color: var(--color-text);
  cursor: pointer;
  display: flex;
  font-size: var(--font-size-table, 11px);
  gap: 8px;
  padding: 8px 10px;
}

.session-photo-consent[hidden] {
  display: none;
}

.session-photo-consent input {
  accent-color: var(--color-identity);
  flex: 0 0 auto;
}

.session-photo-upload__actions {
  align-self: end;
  border-top: 1px solid var(--color-border);
  gap: 7px;
  justify-content: flex-end;
  padding-top: 9px;
}

.session-photo-status {
  color: var(--color-text-soft);
  font-size: var(--font-size-caption, 11px);
  margin-right: auto;
}

.session-photo-status[data-status="success"] {
  color: var(--color-identity);
}

.session-photo-status[data-status="error"],
.session-photo-modal__error {
  color: var(--color-danger);
}

.session-photo-gallery__grid {
  align-items: stretch;
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 168px), 188px));
  justify-content: center;
  min-width: 0;
}

.session-photo-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 13px;
  box-shadow: 0 7px 18px color-mix(in srgb, var(--color-anthracite) 8%, transparent);
  display: flex;
  flex-direction: column;
  height: 100%;
  min-width: 0;
  overflow: hidden;
  transition: border-color .3s ease, box-shadow .3s ease, transform .3s cubic-bezier(.2, .8, .2, 1);
}

.session-photo-card:hover {
  border-color: color-mix(in srgb, var(--color-identity) 48%, var(--color-border));
  box-shadow: 0 13px 26px color-mix(in srgb, var(--color-anthracite) 13%, transparent);
  transform: translateY(-3px);
}

.session-photo-card__image {
  aspect-ratio: 4 / 3;
  background: color-mix(in srgb, var(--color-identity) 12%, var(--color-surface));
  border: 0;
  cursor: zoom-in;
  display: block;
  height: auto;
  overflow: hidden;
  padding: 0;
  position: relative;
  width: 100%;
}

.session-photo-card__image img {
  height: 100%;
  object-fit: cover;
  transition: transform .55s cubic-bezier(.2, .8, .2, 1);
  width: 100%;
}

.session-photo-card:hover .session-photo-card__image img {
  transform: scale(1.035);
}

.session-photo-card__image > span {
  background: color-mix(in srgb, var(--color-anthracite) 76%, transparent);
  border-radius: 999px;
  bottom: 8px;
  color: var(--color-surface);
  font-size: var(--font-size-table, 9px);
  font-weight: var(--font-weight-label, 800);
  opacity: 0;
  padding: 5px 8px;
  position: absolute;
  right: 8px;
  transform: translateY(4px);
  transition: opacity .25s ease, transform .25s ease;
}

.session-photo-card:hover .session-photo-card__image > span,
.session-photo-card__image:focus-visible > span {
  opacity: 1;
  transform: translateY(0);
}

.session-photo-card__body {
  display: grid;
  flex: 1 1 auto;
  gap: 7px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 9px;
}

.session-photo-card__meta {
  min-width: 0;
}

.session-photo-card__meta strong,
.session-photo-card__meta small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.session-photo-card__observation {
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 10px);
  grid-column: 1 / -1;
  line-height: 1.45;
  margin: 0;
  overflow-wrap: anywhere;
}

.session-photo-card__observation--collapsible:not(.is-expanded) {
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  display: -webkit-box;
  overflow: hidden;
}

.session-photo-card__observation-toggle {
  background: transparent;
  border: 0;
  color: var(--color-primary);
  cursor: pointer;
  font: inherit;
  font-size: var(--font-size-control, 9px);
  font-weight: var(--font-weight-label, 750);
  grid-column: 1 / -1;
  justify-self: start;
  padding: 0;
}

.session-photo-card__observation-toggle:hover,
.session-photo-card__observation-toggle:focus-visible {
  color: var(--color-secondary-deep);
}

.session-photo-card__meta strong {
  color: var(--color-primary);
  font-size: var(--font-size-help, 12px);
}

.session-photo-card__meta small {
  color: var(--color-text-soft);
  font-size: var(--font-size-help, 9px);
  margin-top: 2px;
}

.session-photo-scope {
  align-self: start;
  padding: 4px 7px;
}

.session-photo-scope--private {
  background: color-mix(in srgb, var(--color-anthracite) 7%, var(--color-surface));
  border: 1px solid color-mix(in srgb, var(--color-anthracite) 16%, transparent);
  color: var(--color-text-soft);
}

.session-photo-scope--care_team {
  background: color-mix(in srgb, var(--color-secondary) 13%, var(--color-surface));
  border: 1px solid color-mix(in srgb, var(--color-secondary) 34%, transparent);
  color: var(--color-primary);
}

.session-photo-card__actions {
  border-top: 1px solid var(--color-border);
  flex-wrap: wrap;
  gap: 6px;
  grid-column: 1 / -1;
  justify-content: flex-start;
  margin-top: auto;
  padding-top: 7px;
}

.session-photo-card__actions form {
  margin: 0;
}

.session-photo-gallery__empty {
  align-items: center;
  background: color-mix(in srgb, var(--color-identity-faint) 36%, var(--color-surface));
  border: 1px dashed color-mix(in srgb, var(--color-identity) 32%, var(--color-border));
  border-radius: 12px;
  color: var(--color-text-soft);
  display: flex;
  gap: 11px;
  justify-content: center;
  min-height: 92px;
  padding: 14px;
  text-align: left;
}

.session-photo-gallery__empty[hidden] {
  display: none;
}

.session-photo-gallery__empty > span {
  align-items: center;
  background: var(--color-identity-faint);
  border-radius: 9px 3px 9px 3px;
  color: var(--color-primary);
  display: flex;
  flex: 0 0 34px;
  font-weight: var(--font-weight-label, 900);
  height: 34px;
  justify-content: center;
}

.session-photo-gallery__empty strong,
.session-photo-gallery__empty small {
  display: block;
}

.session-photo-gallery__empty strong {
  color: var(--color-primary);
  font-size: var(--font-size-table, 12px);
}

.session-photo-gallery__empty small,
.session-photo-gallery__access {
  color: var(--color-text-soft);
  font-size: var(--font-size-help, 10px);
  line-height: 1.4;
}

.session-photo-gallery__access {
  border-top: 1px solid var(--color-border);
  margin: 0;
  padding-top: 9px;
}

.session-photo-edit-modal .app-confirm-modal__panel {
  width: min(100%, 39rem);
}

.session-photo-edit-modal form {
  display: grid;
  gap: 12px;
  margin-top: 14px;
}

.session-photo-modal__error {
  background: color-mix(in srgb, var(--color-danger) 7%, var(--color-surface));
  border-radius: 8px;
  font-size: var(--font-size-table, 11px);
  margin: 0;
  padding: 8px;
}

.session-photo-lightbox {
  background: color-mix(in srgb, var(--color-anthracite) 88%, transparent);
  padding: 28px;
}

.session-photo-lightbox__panel {
  align-items: center;
  display: flex;
  flex-direction: column;
  height: min(88vh, 900px);
  justify-content: center;
  max-width: 1200px;
  position: relative;
  width: 92vw;
}

.session-photo-lightbox__panel img {
  border-radius: 12px;
  box-shadow: 0 24px 80px color-mix(in srgb, var(--color-anthracite) 55%, transparent);
  max-height: calc(100% - 52px);
  max-width: 100%;
  object-fit: contain;
}

.session-photo-lightbox__panel p {
  color: var(--color-surface);
  font-size: var(--font-size-table, 13px);
  margin: 11px 0 0;
  text-align: center;
}

.session-photo-lightbox__close {
  align-items: center;
  background: var(--color-surface);
  border: 0;
  border-radius: 999px;
  color: var(--color-primary);
  cursor: pointer;
  display: flex;
  font-size: 23px;
  height: 38px;
  justify-content: center;
  position: absolute;
  right: -8px;
  top: -8px;
  width: 38px;
  z-index: 1;
}

@media (max-width: 860px) {
  .session-photo-upload form {
    grid-template-columns: 1fr;
  }

  .session-photo-dropzone {
    min-height: 130px;
  }
}

@media (max-width: 640px) {
  .session-photo-gallery__header {
    align-items: flex-start;
    flex-direction: column;
  }

  .session-photo-gallery__commands {
    align-items: center;
    display: grid;
    gap: 6px;
    grid-template-columns: max-content max-content;
    justify-content: flex-start;
    width: 100%;
  }

  .session-photo-gallery__commands .session-photo-gallery__count {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .session-photo-gallery__commands .btn {
    width: auto;
  }

  .session-photo-upload__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .session-photo-visibility {
    grid-template-columns: 1fr;
  }

  .session-photo-status {
    margin: 0;
  }

  .session-photo-upload__actions .btn {
    width: 100%;
  }

  .session-photo-gallery__grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 188px));
  }

  .session-photo-card__image {
    height: auto;
  }

  .session-photo-lightbox {
    padding: 14px;
  }
}

.service-rates-page {
  display: grid;
  gap: 18px;
}

.service-rates-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
}

.service-rates-hero h1 {
  margin: 8px 0 6px;
}

.service-rates-hero p {
  margin: 0;
  color: var(--color-text-soft);
}

.service-rates-intro {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 12px 16px;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.14);
  border-radius: 14px;
  background: var(--color-surface);
  box-shadow: 0 8px 22px rgb(var(--color-text-rgb) / 0.05);
}

.service-rates-intro > div {
  display: flex;
  align-items: baseline;
  gap: 8px;
  white-space: nowrap;
}

.service-rates-intro strong {
  color: var(--color-secondary);
  font-size: var(--font-size-body, 1.35rem);
}

.service-rates-intro span,
.service-rates-intro p {
  margin: 0;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 13px);
}

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

.service-rate-card {
  min-width: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.16);
  box-shadow: 0 12px 28px rgb(var(--color-text-rgb) / 0.07);
}

.service-rate-card > header {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  padding: 14px 16px;
  border-bottom: 1px solid rgb(var(--color-primary-rgb) / 0.12);
  background: rgb(var(--color-primary-rgb) / 0.045);
}

.service-rate-card > header > span {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: var(--color-secondary);
  color: var(--color-surface);
  font-size: var(--font-size-caption, 12px);
  font-weight: var(--font-weight-label, 900);
}

.service-rate-card header small {
  display: block;
  margin-bottom: 2px;
  color: var(--color-text-soft);
  font-size: var(--font-size-help, 10px);
  font-weight: var(--font-weight-label, 850);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.service-rate-card h2 {
  margin: 0;
  color: var(--color-primary);
  font-size: var(--font-size-card-title, 1rem);
}

.service-rate-card header i {
  min-width: 72px;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 11px);
  font-style: normal;
  font-weight: var(--font-weight-label, 800);
  text-align: right;
  transition: color 0.2s ease;
}

.service-rate-card header i[data-state="saved"] { color: var(--color-primary); }
.service-rate-card header i[data-state="error"] { color: #9a3d31; }

.service-rate-card form {
  padding: 16px;
}

.service-rate-fields {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(120px, 0.6fr);
  gap: 12px;
}

.service-rate-fields label {
  display: grid;
  gap: 6px;
  min-width: 0;
  color: var(--color-text);
  font-size: var(--font-size-label, 12px);
  font-weight: var(--font-weight-label, 800);
}

.service-rate-money {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 40px;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--color-border);
  border-radius: 11px;
  background: var(--color-surface);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.service-rate-money:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgb(var(--color-primary-rgb) / 0.1);
}

.service-rate-money input {
  width: 100%;
  min-width: 0;
  height: 44px;
  padding: 0 12px;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--color-text);
  font: inherit;
  font-size: var(--font-size-input, 15px);
  font-weight: var(--font-weight-body, 750);
}

.service-rate-money b {
  display: grid;
  place-items: center;
  background: rgb(var(--color-secondary-rgb) / 0.12);
  color: var(--color-primary);
  font-size: var(--font-size-table, 13px);
}

.service-rate-card form > p {
  margin: 10px 0 0;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 11px);
}

.service-rates-empty {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
}

.service-rates-empty > span {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border-radius: 16px;
  background: rgb(var(--color-secondary-rgb) / 0.14);
  color: var(--color-secondary);
  font-size: var(--font-size-body, 1.4rem);
  font-weight: var(--font-weight-label, 900);
}

.service-rates-empty h2 { margin: 0 0 4px; }
.service-rates-empty p { margin: 0; color: var(--color-text-soft); }

.invoice-vat-settings {
  display: grid;
  gap: 16px;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid rgb(var(--color-primary-rgb) / .14);
}

.invoice-vat-settings > header {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: start;
  gap: 11px;
}

.invoice-vat-settings > header > span {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: var(--color-secondary);
  color: var(--color-surface);
  font-size: var(--font-size-caption, 12px);
  font-weight: var(--font-weight-label, 900);
}

.invoice-vat-settings header small { color: var(--color-text-soft); font-size: var(--font-size-help, 10px); font-weight: var(--font-weight-label, 850); letter-spacing: .08em; text-transform: uppercase; }
.invoice-vat-settings header h2 { margin: 2px 0 3px; font-size: var(--font-size-section-title, 1.05rem); }
.invoice-vat-settings header p { margin: 0; color: var(--color-text-soft); font-size: var(--font-size-table, 12px); }

.invoice-vat-switch {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: fit-content;
  cursor: pointer;
}

.invoice-vat-switch input { position: absolute; opacity: 0; pointer-events: none; }
.invoice-vat-switch > span { position: relative; width: 44px; height: 24px; border: 1px solid var(--color-border); border-radius: 999px; background: rgb(var(--color-text-rgb) / .09); transition: background-color .25s ease, border-color .25s ease; }
.invoice-vat-switch i { position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: var(--color-surface); box-shadow: 0 2px 5px rgb(var(--color-text-rgb) / .2); transition: transform .3s cubic-bezier(.22,1,.36,1); }
.invoice-vat-switch input:checked + span { border-color: var(--color-primary); background: var(--color-primary); }
.invoice-vat-switch input:checked + span i { transform: translateX(20px); }
.invoice-vat-switch input:focus-visible + span { outline: 3px solid rgb(var(--color-primary-rgb) / .16); outline-offset: 2px; }
.invoice-vat-switch strong { color: var(--color-text); font-size: var(--font-size-table, 13px); }

.invoice-vat-grid { display: flex; align-items: start; flex-wrap: wrap; gap: 14px; }
.invoice-vat-grid > .field { flex: 0 1 auto; width: fit-content; max-width: 100%; }
.invoice-vat-grid .service-rate-money { display: inline-flex; width: max-content; max-width: 100%; }
.invoice-vat-grid [name="default_vat_rate"] { flex: 0 1 10ch; width: 10ch; max-width: 100%; }
.invoice-vat-grid .service-rate-money b { flex: 0 0 40px; }
.invoice-vat-grid [name="vat_exemption_mention"] { field-sizing: content; width: auto; max-width: 100%; }
.invoice-vat-settings [data-vat-rate-field],
.invoice-vat-settings [data-vat-exemption-field] { transition: opacity .24s ease, transform .3s cubic-bezier(.22,1,.36,1); }
.invoice-vat-settings:not(.is-vat-applicable) [data-vat-rate-field],
.invoice-vat-settings.is-vat-applicable [data-vat-exemption-field] { opacity: .42; }

.settings-general-page .invoice-number-settings { max-width: 52rem; border-top: 4px solid var(--color-secondary-strong); box-shadow: var(--ui-shadow-card-crisp); }
.settings-general-page .invoice-number-settings__heading > span { background: var(--color-secondary-strong); color: var(--color-surface); }
.settings-general-page .invoice-number-settings__grid .field { background: var(--color-surface-muted); border-color: var(--color-border); }
.settings-general-page .invoice-vat-settings { min-width: 0; margin-top: var(--ui-space-4); padding: var(--ui-space-5); border: 1px solid var(--color-border); border-top: 4px solid var(--color-primary); border-radius: var(--ui-radius-card); background: var(--color-primary-soft); box-shadow: var(--ui-shadow-card-crisp); }
.settings-general-page .invoice-vat-settings > header > span { background: var(--color-primary); }
.settings-general-page .invoice-vat-grid > .field { box-sizing: border-box; min-width: 0; padding: var(--ui-space-3); border: 1px solid var(--color-border); border-radius: var(--ui-radius-control); background: var(--color-surface); }
.settings-general-page .invoice-vat-grid > .field > small { display: block; margin-top: var(--ui-space-2); line-height: 1.4; }
@media (max-width: 580px) { .settings-general-page .invoice-vat-settings { padding: var(--ui-space-4); } }

.invoice-vat-exemption-inline,
.invoice-vat-exemption {
  padding: 10px 12px;
  border-left: 3px solid var(--color-secondary);
  border-radius: 8px;
  background: rgb(var(--color-secondary-rgb) / .09);
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 12px);
  font-weight: var(--font-weight-label, 750);
}

.invoice-vat-exemption { margin: 12px 0 0; }

.service-offer-groups {
  display: grid;
  gap: 18px;
}

.service-offer-group {
  container-type: inline-size;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.16);
  box-shadow: 0 13px 30px rgb(var(--color-text-rgb) / 0.07);
}

.service-offer-group__header {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 15px 17px;
  border-bottom: 1px solid rgb(var(--color-primary-rgb) / 0.13);
  background: rgb(var(--color-primary-rgb) / 0.045);
}

.service-offer-group__number {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 11px;
  background: var(--color-secondary);
  color: var(--color-surface);
  font-size: 12px;
  font-weight: 900;
}

.service-offer-group__header small {
  color: var(--color-text-soft);
  font-size: var(--font-size-help, 10px);
  font-weight: var(--font-weight-label, 850);
  letter-spacing: .09em;
  text-transform: uppercase;
}

.service-offer-group__header h2 {
  margin: 2px 0;
  color: var(--color-primary);
  font-size: var(--font-size-card-title, 1.05rem);
}

.service-offer-group__header p {
  margin: 0;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 11px);
}

.service-offer-add {
  min-width: 154px;
  white-space: nowrap;
}

.service-offer-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 13px;
  padding: 15px;
}

.service-offer-empty {
  grid-column: 1 / -1;
  display: grid;
  gap: 4px;
  padding: 20px;
  border: 1px dashed rgb(var(--color-primary-rgb) / .24);
  border-radius: 13px;
  color: var(--color-text-soft);
  text-align: center;
}

.service-offer-empty[hidden] { display: none; }
.service-offer-empty strong { color: var(--color-text); font-size: var(--font-size-table, 13px); }
.service-offer-empty span { font-size: var(--font-size-table, 12px); }

.service-offer-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgb(var(--color-primary-rgb) / .16);
  border-radius: 14px;
  background: var(--color-surface);
  box-shadow: 0 9px 22px rgb(var(--color-text-rgb) / .055);
  animation: service-offer-enter .3s cubic-bezier(.22,1,.36,1);
}

@keyframes service-offer-enter {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: translateY(0); }
}

.service-offer-card > header {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 42px;
  padding: 8px 10px 8px 12px;
  border-bottom: 1px solid rgb(var(--color-primary-rgb) / .1);
  background: rgb(var(--color-secondary-rgb) / .07);
}

.service-offer-kind {
  padding: 4px 8px;
  border-radius: 7px;
  background: rgb(var(--color-secondary-rgb) / .14);
  color: var(--color-primary);
  font-size: var(--font-size-table, 10px);
  font-weight: var(--font-weight-label, 900);
  letter-spacing: .05em;
  text-transform: uppercase;
}

.service-offer-card header i {
  flex: 1 1 auto;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 10px);
  font-style: normal;
  font-weight: var(--font-weight-label, 800);
  text-align: right;
}

.service-offer-card header i[data-state="saved"] { color: var(--color-primary); }
.service-offer-card header i[data-state="error"] { color: #9a3d31; }

.service-offer-delete {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #a65345;
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease, transform .2s ease;
}

.service-offer-delete:hover { background: rgb(166 83 69 / .11); color: #7d3429; transform: scale(1.05); }
.service-offer-delete svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.service-offer-fields {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(118px, .75fr) minmax(108px, .55fr);
  gap: 10px;
  padding: 13px;
}

.service-offer-field {
  display: grid;
  align-content: start;
  gap: 5px;
  min-width: 0;
  color: var(--color-text);
  font-size: var(--font-size-table, 11px);
  font-weight: var(--font-weight-label, 800);
}

.service-offer-field > span:first-child { min-height: 14px; }
.service-offer-field small { color: var(--color-text-soft); font-size: var(--font-size-help, 9px); font-weight: var(--font-weight-label, 650); }
.service-offer-field .client-portal-field-error { color: var(--color-danger); font-size: var(--font-size-table, .82rem); font-weight: var(--font-weight-label, 700); }
.service-offer-field [data-offer-continue-invalid] { border-color: var(--color-danger); }
.service-offer-field--name { grid-column: span 2; }
.service-offer-field--purpose,
.service-offer-field--name {
  grid-row: span 3;
  grid-template-rows: subgrid;
}
.service-offer-field--description { grid-column: 1 / -1; }

.service-offer-eligibility {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 14px;
  min-width: 0;
  margin: 0;
  padding: 10px 12px;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  background: rgb(var(--color-primary-rgb) / .04);
}
.service-offer-eligibility legend { padding: 0 5px; color: var(--color-primary); font-weight: 800; }
.service-offer-eligibility label { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; cursor: pointer; }
.service-offer-eligibility__choices { display: flex; flex-wrap: wrap; gap: 7px 12px; }
.service-offer-eligibility__choices:has(input:disabled) { opacity: .55; }

.practitioner-cabinet-settings {
  margin: 0 0 18px;
  padding: 12px 14px;
  border: 1px solid var(--color-border);
  border-radius: 14px;
  background: rgb(var(--color-primary-rgb) / .045);
}
.practitioner-cabinet-settings legend { padding: 0 5px; color: var(--color-primary); font-weight: 800; }
.practitioner-cabinet-settings__address { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px; }
.practitioner-cabinet-settings__address[hidden] { display: none; }
.practitioner-cabinet-settings__address label { display: grid; gap: 5px; font-weight: 700; }
.practitioner-cabinet-settings__search { grid-column: 1 / -1; position: relative; }
.practitioner-cabinet-settings__search .practitioner-home-address__suggestions { top: calc(100% - 1.5rem); }
.practitioner-cabinet-settings__search .settings-autosave__field-error[hidden] { display: none; }
.practitioner-cabinet-settings__address .input { width: 100%; max-width: 100%; box-sizing: border-box; }
.practitioner-opening-hours__cabinet-day { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 10px; color: var(--color-primary); font-weight: 700; cursor: pointer; }
.practitioner-opening-hours__cabinet-slot { display: inline-flex !important; align-items: center; gap: 5px; white-space: nowrap; cursor: pointer; }
.practitioner-opening-hours__cabinet-slot input { width: auto !important; min-height: 0 !important; }
.practitioner-opening-hours__slot { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto 31px; }
@media (max-width: 620px) {
  .practitioner-cabinet-settings__address { grid-template-columns: minmax(0, 1fr); }
  .practitioner-opening-hours__slot { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .practitioner-opening-hours__cabinet-slot { grid-column: 1; }
}

.service-offer-photo {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 118px minmax(0, 1fr);
  align-items: center;
  gap: 13px;
  min-width: 0;
  padding: 10px;
  border: 1px solid rgb(var(--color-primary-rgb) / .13);
  border-radius: 12px;
  background: rgb(var(--color-primary-rgb) / .035);
}

.service-offer-photo__preview {
  display: grid;
  place-items: center;
  width: 118px;
  max-width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border: 1px solid var(--color-border);
  border-radius: 10px;
  background: var(--color-surface);
}

.service-offer-photo__preview img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.service-offer-photo__preview img[hidden],
.service-offer-photo__preview span[hidden] { display: none; }

.service-offer-photo__preview span {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  color: var(--color-text-soft);
}

.service-offer-photo__preview svg {
  width: 30px;
  height: 30px;
  fill: currentColor;
  opacity: .6;
}

.service-offer-photo__copy {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.service-offer-photo__copy strong {
  color: var(--color-text);
  font-size: var(--font-size-table, 12px);
}

.service-offer-photo__copy > small {
  color: var(--color-text-soft);
  font-size: var(--font-size-help, 10px);
  line-height: 1.4;
}

.service-offer-photo__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 3px;
}

.service-offer-photo__actions .btn {
  min-height: 42px;
  padding: var(--ui-space-2, 8px) 11px;
  font-size: var(--font-size-control, 11px);
}

.service-offer-photo__actions [hidden] { display: none; }

@container (max-width: 900px) {
  .service-offer-list { grid-template-columns: minmax(0, 1fr); }
}

@container (max-width: 560px) {
  .service-offer-fields { grid-template-columns: minmax(0, 1fr); }
  .service-offer-field--name,
  .service-offer-field--description,
  .service-offer-photo { grid-column: auto; }
  .service-offer-photo { grid-template-columns: minmax(0, 1fr); }
  .service-offer-photo__preview { width: min(100%, 240px); }
}

.service-offer-field > input,
.service-offer-field > select,
.service-offer-field > textarea {
  width: 100%;
  min-width: 0;
  min-height: 42px;
  padding: 9px 10px;
  border: 1px solid var(--color-border);
  border-radius: 10px;
  outline: 0;
  background: var(--color-surface);
  color: var(--color-text);
  font: inherit;
  font-size: var(--font-size-input, 12px);
  transition: border-color .2s ease, box-shadow .2s ease;
}

.service-offer-field > textarea { min-height: 62px; resize: vertical; line-height: 1.45; }
.service-offer-field > input:focus,
.service-offer-field > select:focus,
.service-offer-field > textarea:focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px rgb(var(--color-primary-rgb) / .09); }

@media (max-width: 1120px) {
  .service-offer-list { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 820px) {
  .service-rates-grid { grid-template-columns: minmax(0, 1fr); }
  .service-rates-hero { align-items: flex-start; flex-direction: column; }
  .service-rates-intro { align-items: flex-start; flex-direction: column; }
  .service-offer-group__header { grid-template-columns: 42px minmax(0, 1fr); }
  .service-offer-add { grid-column: 1 / -1; justify-self: start; }
  .invoice-vat-grid { grid-template-columns: minmax(0,1fr); }
}

@media (max-width: 540px) {
  .service-rate-fields { grid-template-columns: minmax(0, 1fr); }
  .service-rates-empty { grid-template-columns: 54px minmax(0, 1fr); }
  .service-rates-empty .btn { grid-column: 1 / -1; }
  .service-offer-fields { grid-template-columns: minmax(0, 1fr); }
  .service-offer-field--name,
  .service-offer-field--description { grid-column: auto; }
  .service-offer-photo { grid-column: auto; grid-template-columns: minmax(0, 1fr); }
  .service-offer-photo__preview { width: min(100%, 240px); }
}

@media (prefers-reduced-motion: reduce) {
  .session-photo-upload {
    animation: none;
  }

  .session-photo-card,
  .session-photo-card__image img,
  .session-photo-card__image > span,
  .session-photo-dropzone {
    transition: none;
  }
}

.horse-3d-shell {
  position: relative;
  z-index: 2;
  overflow: hidden;
  border: 1px solid var(--border-color, #d8ddd6);
  border-radius: 16px;
  background: #edf1ea;
}

.shiatsu-point-editor-layout {
  grid-template-columns: minmax(0, 1fr);
}

.shiatsu-point-editor__settings {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  max-width: 100%;
  gap: var(--ui-space-3);
}
.shiatsu-point-editor__species {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
}
.shiatsu-point-editor__settings .practice-model-field--inline { flex: 0 1 auto; }


.shiatsu-point-presets-popup__content {
  max-height: 250px;
  padding: 8px;
  overflow-y: auto;
  border-top: 1px solid var(--color-border);
  scrollbar-gutter: stable;
}

/* The two groups share the layer panel's compact controls and rounded edges. */
.shiatsu-point-presets-popup__content--combined {
  max-height: none;
  overflow: visible;
  scrollbar-gutter: auto;
  display: grid;
  gap: var(--ui-space-3);
}

.shiatsu-point-presets-popup__section {
  min-width: 0;
  padding: var(--ui-space-2);
  border: 1px solid rgb(var(--color-primary-rgb) / 0.24);
  border-radius: var(--radius-sm);
  background: var(--color-primary-soft);
}

.shiatsu-point-presets-popup .shiatsu-point-presets-popup__section-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-2);
  margin: 0 0 var(--ui-space-2);
  padding-bottom: var(--ui-space-2);
  border-bottom: 1px solid rgb(var(--color-primary-rgb) / 0.24);
  color: var(--color-primary-strong);
  font-size: var(--font-size-control);
  font-weight: var(--font-weight-label);
  line-height: var(--line-height-body);
}

.shiatsu-point-presets-popup__section-title > span:last-child {
  flex-shrink: 0;
}

.shiatsu-point-presets-popup__section--games {
  border-color: var(--color-secondary-muted);
  background: var(--color-secondary-faint);
}

.shiatsu-point-presets-popup .shiatsu-point-presets-popup__section--games .shiatsu-point-presets-popup__section-title {
  border-color: var(--color-secondary-muted);
  color: var(--color-secondary-deep);
}

.shiatsu-point-presets-popup__section--games .shiatsu-point-preset-list__item.is-editing {
  border-color: var(--color-secondary-strong);
  background: var(--color-secondary-soft);
  box-shadow: inset 3px 0 0 var(--color-secondary-strong);
}

.shiatsu-point-presets-popup__section--games .shiatsu-point-preset-list__title,
.shiatsu-point-presets-popup__section .shiatsu-point-preset-list__identity strong,
.shiatsu-point-presets-popup__section .shiatsu-point-preset-list__identity > span {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  overflow-wrap: anywhere;
}

.shiatsu-point-presets-popup__section--games .shiatsu-point-preset-list__title,
.shiatsu-point-presets-popup__section .session-reference-choice strong {
  font-size: var(--font-size-control);
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  overflow-wrap: anywhere;
}

/* Keep the personal-game action visible within the single tools scroll area. */
.shiatsu-point-presets-popup__section--games .shiatsu-point-preset-list__add {
  position: sticky;
  bottom: 0;
  z-index: 1;
  padding-block: var(--ui-space-2);
  background: var(--color-surface);
  border-radius: var(--radius-sm);
}

.shiatsu-point-presets-popup__section--games .shiatsu-point-preset-list__add-button {
  display: flex;
  width: auto;
  height: auto;
  min-height: var(--ui-control-height, 38px);
  padding: var(--ui-space-2) var(--ui-space-3);
  border-radius: var(--radius-sm);
  border-color: var(--color-highlight-strong);
  background: var(--color-highlight-strong);
  color: var(--color-surface);
  font-size: var(--font-size-control);
  white-space: normal;
}

.shiatsu-point-presets-popup__section--games .shiatsu-point-preset-list__add-button:hover:not(:disabled),
.shiatsu-point-presets-popup__section--games .shiatsu-point-preset-list__add-button:focus-visible {
  background: var(--color-highlight-soft);
  color: var(--color-highlight-strong);
  outline-color: var(--color-highlight-strong);
}

.shiatsu-point-presets-popup__content > p {
  margin: 7px 3px 2px;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 10px);
  font-weight: var(--font-weight-label, 700);
}

.shiatsu-point-preset-list {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.shiatsu-point-preset-list[hidden] {
  display: none;
}

.shiatsu-point-preset-list__item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
  min-height: 48px;
  padding: 6px 7px 6px 9px;
  border: 1px solid rgb(var(--color-text-rgb) / 0.1);
  border-radius: 10px;
  background: rgb(var(--color-white-rgb) / 0.76);
  transition: border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}

.shiatsu-point-preset-list__item:hover {
  border-color: rgb(var(--color-primary-rgb) / 0.3);
  box-shadow: var(--shadow-xs);
  transform: translateY(-1px);
}

.shiatsu-point-preset-list__item[role="button"] {
  cursor: pointer;
}

.shiatsu-point-preset-list__item[role="button"]:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}

.shiatsu-point-preset-list__item.is-editing {
  border-color: rgb(var(--color-primary-rgb) / 0.52);
  background: rgb(var(--color-primary-rgb) / 0.08);
  box-shadow: inset 3px 0 0 var(--color-primary);
}

.shiatsu-point-preset-list__item.is-editing .shiatsu-point-preset-list__identity > span {
  color: var(--color-primary);
  font-weight: var(--font-weight-label, 850);
}

.shiatsu-point-preset-list__add {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-height: 42px;
  padding: 2px 1px 0;
}

.shiatsu-point-preset-list__add-line {
  height: 1px;
  background: rgb(var(--color-primary-rgb) / 0.24);
}

.shiatsu-point-preset-list__add-button {
  display: grid;
  width: 42px;
  height: 42px;
  padding: 0;
  place-items: center;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.36);
  border-radius: 50%;
  color: var(--color-primary);
  background: rgb(var(--color-white-rgb) / 0.9);
  box-shadow: var(--shadow-xs);
  cursor: pointer;
  font: inherit;
  font-size: var(--font-size-control, 25px);
  font-weight: var(--font-weight-label, 700);
  line-height: 1;
  transition: color 180ms ease, background 180ms ease, transform 180ms ease;
}

.shiatsu-point-preset-list__add-button:hover:not(:disabled),
.shiatsu-point-preset-list__add-button:focus-visible {
  color: var(--color-surface);
  background: var(--color-primary);
  transform: translateY(-1px);
}

.shiatsu-point-preset-list__add-button:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}

.shiatsu-point-preset-list__add-button:disabled {
  opacity: 0.45;
  cursor: wait;
}

.session-reference-choice {
  display: grid;
  width: 100%;
  min-width: 0;
  gap: 2px;
  padding: 1px 0;
  border: 0;
  color: var(--color-text);
  background: transparent;
  cursor: pointer;
  font: inherit;
  text-align: left;
}

.session-reference-choice strong,
.session-reference-choice span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.session-reference-choice strong {
  font-size: var(--font-size-table, 12px);
  font-weight: var(--font-weight-label, 850);
}

.session-reference-choice span {
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 10px);
  font-weight: var(--font-weight-label, 700);
}

.session-reference-choice:hover strong,
.session-reference-choice:focus-visible strong {
  color: var(--color-primary);
  text-shadow: 0 0 12px rgb(var(--color-primary-rgb) / 0.18);
}

.session-reference-choice:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
  border-radius: 7px;
}

.shiatsu-point-search-results {
  display: grid;
  gap: 6px;
  max-height: 220px;
  overflow-y: auto;
  margin-top: 8px;
  padding-right: 2px;
}

.shiatsu-point-search-results > p {
  margin: 4px 0;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 11px);
}

.shiatsu-point-search-results .session-reference-choice {
  padding: 8px 9px;
  border: 1px solid rgb(var(--color-text-rgb) / 0.1);
  border-radius: 9px;
  background: rgb(var(--color-white-rgb) / 0.76);
}

.annotation-point-search-popup .field {
  margin: 0;
  text-align: left;
}

.annotation-point-search-popup .field > span {
  margin-bottom: 4px;
  color: var(--color-text-soft);
  font-size: var(--font-size-label, 10px);
  font-weight: var(--font-weight-label, 800);
  text-align: left;
}

.annotation-point-search-popup .input {
  min-height: 34px;
  padding: 7px 9px;
  font-size: var(--font-size-input, 12px);
}

.horse-3d-popup-stack .annotation-point-search-popup > summary {
  justify-content: flex-start;
  gap: 12px;
  font-size: var(--font-size-control, 13px);
  font-weight: var(--font-weight-label, 800);
  text-align: left;
}

.horse-3d-popup-stack .annotation-point-search-popup > summary > span:first-child {
  margin: 0;
  min-width: 0;
  font-size: inherit;
  text-align: left;
}

.horse-3d-popup-stack .annotation-point-search-popup > summary::after {
  flex: 0 0 auto;
  margin-left: auto;
}

.shiatsu-point-preset-list__identity {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.shiatsu-point-preset-list__title {
  min-width: 0;
  padding: 1px 0;
  overflow: hidden;
  border: 0;
  color: var(--color-text);
  background: transparent;
  cursor: text;
  font: inherit;
  font-size: var(--font-size-card-title, 12px);
  font-weight: var(--font-weight-title, 850);
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.shiatsu-point-preset-list__title.is-loadable,
[data-shiatsu-native-game-list] .shiatsu-point-preset-list__title {
  cursor: pointer;
}

.shiatsu-point-preset-list__item.is-loading {
  opacity: 0.68;
}

.shiatsu-point-preset-list__item.is-loading .shiatsu-point-preset-list__title::after {
  content: "…";
}

.shiatsu-point-preset-list__title:hover {
  color: var(--color-primary);
  text-shadow: 0 0 12px rgb(var(--color-primary-rgb) / 0.18);
}

.shiatsu-point-preset-list__title:focus-visible,
.shiatsu-point-preset-list__title-input:focus {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}

.shiatsu-point-preset-list__title-input {
  width: 100%;
  min-width: 0;
  height: 27px;
  padding: 3px 6px;
  border: 1px solid var(--color-primary);
  border-radius: 7px;
  color: var(--color-text);
  background: var(--color-surface);
  font: inherit;
  font-size: var(--font-size-input, 12px);
  font-weight: var(--font-weight-body, 800);
}

.shiatsu-point-preset-list__identity > span {
  overflow: hidden;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 10px);
  font-weight: var(--font-weight-label, 700);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.shiatsu-point-preset-list__actions {
  display: flex;
  align-items: center;
  gap: 4px;
}

.shiatsu-point-preset-list__action {
  display: grid;
  width: 29px;
  height: 29px;
  padding: 0;
  place-items: center;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.16);
  border-radius: 9px;
  color: var(--color-primary);
  background: rgb(var(--color-primary-rgb) / 0.07);
  cursor: pointer;
  transition: color 180ms ease, background 180ms ease, transform 180ms ease;
}

.shiatsu-point-preset-list__action:hover:not(:disabled),
.shiatsu-point-preset-list__action:focus-visible {
  color: var(--color-surface);
  background: var(--color-primary);
  transform: translateY(-1px);
}

.shiatsu-point-preset-list__action:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 1px;
}

.shiatsu-point-preset-list__action:disabled {
  opacity: 0.34;
  cursor: not-allowed;
}

.shiatsu-point-preset-list__action svg {
  width: 15px;
  height: 15px;
  fill: currentColor;
}

.shiatsu-point-preset-list__action--delete {
  color: var(--color-secondary);
  border-color: rgb(var(--color-secondary-rgb) / 0.2);
  background: rgb(var(--color-secondary-rgb) / 0.08);
}

.shiatsu-point-preset-list__action--delete.is-confirming {
  color: var(--color-surface);
  background: var(--color-secondary);
  box-shadow: 0 0 0 3px rgb(var(--color-secondary-rgb) / 0.22);
  animation: shiatsu-preset-confirm 900ms ease-in-out infinite alternate;
}

@keyframes shiatsu-preset-confirm {
  to { box-shadow: 0 0 0 5px rgb(var(--color-secondary-rgb) / 0.08); }
}

.shiatsu-point-board {
  min-height: 0;
  max-height: none;
  aspect-ratio: auto;
  overflow: hidden;
}

.shiatsu-point-board::before {
  display: none;
}

.shiatsu-point-model-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 20px;
  padding: 12px 16px;
  border: 1px solid var(--border-color, #d8ddd6);
  border-radius: 12px;
  color: #57534e;
  background: #fffdf8;
  font-size: var(--font-size-body, 14px);
}

.shiatsu-point-model-meta p {
  margin: 0;
}

.shiatsu-point-model-meta p:first-child {
  flex: 1 1 100%;
}

.horse-3d-shell--reference .horse-3d-viewer {
  height: clamp(520px, 58vw, 700px);
  max-height: 700px;
}

.horse-3d-viewer {
  width: 100%;
  height: min(58vw, 540px);
  min-height: 360px;
  cursor: crosshair;
}

.horse-3d-canvas {
  display: block;
  width: 100%;
  height: 100%;
  touch-action: none;
  cursor: grab;
}

.horse-3d-canvas:active {
  cursor: grabbing;
}

.horse-3d-canvas--selectable-point,
.horse-3d-canvas--selectable-point:active {
  cursor: pointer;
}

.horse-3d-canvas--placing,
.horse-3d-canvas--placing:active {
  cursor: crosshair;
}

.horse-3d-canvas--panning,
.horse-3d-canvas--panning:active {
  cursor: move;
}

.horse-3d-canvas--moving-point,
.horse-3d-canvas--moving-point:active {
  cursor: crosshair;
}

.horse-3d-canvas--dragging-point,
.horse-3d-canvas--dragging-point:active {
  cursor: grabbing;
}

.horse-3d-view-toolbar {
  position: absolute;
  z-index: 5;
  bottom: 12px;
  left: 12px;
  pointer-events: none;
}

.horse-3d-view-thumbnails {
  display: grid;
  grid-template-columns: repeat(5, clamp(2rem, 3.4vw, 2.75rem));
  gap: 5px;
  width: max-content;
  max-width: calc(100vw - 24px);
}

.horse-3d-presentation-switch {
  display: flex;
  gap: var(--ui-space-1);
  margin-bottom: var(--ui-space-2);
  pointer-events: auto;
}

.horse-3d-view-toolbar__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
  align-items: center;
}

.horse-3d-controls__surface {
  margin: 0;
  color: var(--color-text-soft);
  font-size: var(--font-size-control);
}

.horse-3d-presentation-switch .btn {
  min-height: var(--ui-compact-control-height);
  padding: var(--ui-space-1) var(--ui-space-3);
}

.horse-3d-view-thumbnail {
  appearance: none;
  display: grid;
  width: clamp(2rem, 3.4vw, 2.75rem);
  aspect-ratio: 1;
  padding: 0;
  border: 1px solid rgb(var(--color-identity-rgb) / 0.3);
  border-radius: 6px;
  background: #edf1ea;
  box-shadow: 0 2px 7px rgb(var(--color-text-rgb) / 0.16);
  cursor: pointer;
  overflow: hidden;
  pointer-events: auto;
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.horse-3d-view-thumbnail__visual {
  align-items: center;
  display: flex;
  width: 100%;
  height: 100%;
  justify-content: center;
}

.horse-3d-view-thumbnail__visual img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #edf1ea;
  opacity: 0;
  transition: opacity .16s ease;
}

.horse-3d-view-thumbnail.is-ready .horse-3d-view-thumbnail__visual img { opacity: 1; }

.horse-3d-view-thumbnail:hover,
.horse-3d-view-thumbnail:focus-visible {
  border-color: var(--color-primary);
  outline: 0;
  transform: translateY(-1px);
}

.horse-3d-view-thumbnail:focus-visible {
  box-shadow: 0 0 0 3px var(--color-focus);
}

.horse-3d-view-thumbnail.is-active {
  border: 2px solid var(--color-secondary);
  box-shadow: 0 0 0 2px rgb(var(--color-white-rgb) / 0.8), 0 4px 10px rgb(var(--color-text-rgb) / .2);
}

.shiatsu-help-trigger {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 5;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.24);
  border-radius: 50%;
  color: var(--color-primary);
  background: rgb(var(--color-white-rgb) / 0.92);
  box-shadow: var(--shadow-xs);
  cursor: pointer;
  font-size: var(--font-size-body, 19px);
  font-weight: var(--font-weight-label, 900);
  line-height: 1;
  transition: color 160ms ease, background-color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

.shiatsu-help-trigger:hover,
.shiatsu-help-trigger.is-active {
  color: var(--color-surface);
  background: var(--color-primary);
  box-shadow: var(--shadow);
  transform: translateY(-1px);
}

.shiatsu-help-trigger:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}

.shiatsu-help-popup {
  position: absolute;
  top: 54px;
  left: 12px;
  z-index: 5;
  width: min(360px, calc(100% - 24px));
  padding: 14px;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.22);
  border-radius: var(--radius-sm);
  color: var(--color-text);
  background: rgb(var(--color-white-rgb) / 0.96);
  box-shadow: var(--shadow-lg);
  backdrop-filter: blur(12px);
}

.shiatsu-help-popup h3 {
  margin: 0 0 12px;
  color: var(--color-primary);
  font-size: var(--font-size-card-title, 16px);
}

.shiatsu-help-popup ul {
  display: grid;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.shiatsu-help-popup li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 9px 10px;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.1);
  border-radius: var(--radius-sm);
  background: rgb(var(--color-primary-rgb) / 0.045);
  box-shadow: var(--shadow-xs);
  font-size: var(--font-size-table, 13px);
}

.shiatsu-help-popup li > span {
  color: var(--color-text-soft);
  font-weight: var(--font-weight-label, 700);
}

.shiatsu-help-popup__shortcut {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 5px;
  color: var(--color-primary);
  font-style: normal;
  font-weight: var(--font-weight-label, 800);
  text-align: right;
  white-space: nowrap;
}

.shiatsu-help-popup__shortcut kbd {
  display: inline-grid;
  place-items: center;
  min-width: 30px;
  min-height: 27px;
  padding: 3px 8px;
  border: 1px solid rgb(var(--color-text-rgb) / 0.18);
  border-radius: 7px;
  color: var(--color-text);
  background: var(--color-surface);
  box-shadow:
    0 2px 0 rgb(var(--color-text-rgb) / 0.14),
    var(--shadow-xs);
  font-family: inherit;
  font-size: var(--font-size-table, 12px);
  font-weight: var(--font-weight-label, 900);
  line-height: 1;
}

.shiatsu-help-popup__shortcut small {
  color: var(--color-text-soft);
  font-size: var(--font-size-help, 10px);
  font-weight: var(--font-weight-label, 700);
}

.shiatsu-help-popup__shortcut em {
  color: var(--color-text-soft);
  font-style: normal;
  font-weight: var(--font-weight-label, 900);
}

.shiatsu-help-popup__shortcut span {
  color: var(--color-primary);
  font-weight: var(--font-weight-label, 800);
}

.horse-3d-layer-popup {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 4;
  width: min(280px, calc(100% - 24px));
  overflow: hidden;
  border: 1px solid rgb(var(--color-text-rgb) / 0.13);
  border-radius: var(--radius-sm);
  background: rgb(var(--color-white-rgb) / 0.92);
  box-shadow: var(--shadow);
  backdrop-filter: blur(12px);
}

.horse-3d-layer-popup > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 40px;
  padding: 0 12px;
  cursor: pointer;
  color: var(--color-primary);
  font-size: var(--font-size-control, 13px);
  font-weight: var(--font-weight-label, 800);
  list-style: none;
}

.horse-3d-layer-popup > summary::-webkit-details-marker { display: none; }

.horse-3d-layer-popup > summary::after {
  width: 22px;
  height: 22px;
  content: "−";
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--color-surface);
  background: var(--color-primary);
  font-size: 17px;
  font-weight: 500;
  line-height: 1;
}

.horse-3d-layer-popup:not([open]) > summary::after { content: "+"; }

.horse-3d-layer-popup > summary:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: -3px;
}

.horse-3d-layer-popup .horse-3d-controls {
  grid-template-columns: 1fr;
  gap: 6px;
  padding: 8px;
  border-top: 1px solid var(--color-border);
  background: transparent;
}

.horse-3d-layer-popup .horse-3d-layer-control {
  padding: 7px 8px;
  background: rgb(var(--color-white-rgb) / 0.74);
}

.horse-3d-popup-stack {
  position: absolute;
  top: 52px;
  bottom: 112px;
  right: 0;
  z-index: 4;
  display: block;
  width: min(300px, calc(100% - 12px));
  transform: translateX(0);
  transition: transform 0.42s cubic-bezier(0.22, 1, 0.36, 1);
  pointer-events: auto;
  visibility: hidden;
}

.horse-3d-popup-stack[data-popup-state-ready="true"] {
  visibility: visible;
}

.horse-3d-popup-stack__toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  position: relative;
  top: auto;
  right: auto;
  z-index: 2;
  width: 34px;
  height: 30px;
  margin: 0 0 6px auto;
  padding: 0;
  border: 1px solid rgb(var(--color-identity-rgb) / 0.42);
  border-right: 0;
  border-radius: 12px 0 0 12px;
  color: var(--color-primary);
  background: rgb(var(--color-white-rgb) / 0.95);
  box-shadow: -8px 10px 26px rgb(var(--color-text-rgb) / 0.13);
  cursor: pointer;
  backdrop-filter: blur(12px);
  transition: width 0.42s cubic-bezier(0.22, 1, 0.36, 1), flex-basis 0.42s cubic-bezier(0.22, 1, 0.36, 1), color 0.2s ease, background 0.2s ease;
}

.horse-3d-popup-stack__toggle:hover {
  color: var(--color-surface);
  background: var(--color-identity);
}

.horse-3d-popup-stack__toggle-tool {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
}

.horse-3d-popup-stack__toggle-tool {
  display: none;
}

.horse-3d-popup-stack__toggle-tool svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.horse-3d-popup-stack__toggle-icon {
  position: relative;
  width: 16px;
  height: 16px;
  display: block;
  transition: transform 0.42s cubic-bezier(0.22, 1, 0.36, 1);
}

.horse-3d-popup-stack__toggle-icon span {
  position: absolute;
  top: 3px;
  width: 8px;
  height: 8px;
  border-top: 1.8px solid currentColor;
  border-right: 1.8px solid currentColor;
  transform: rotate(45deg);
}

.horse-3d-popup-stack__toggle-icon span:first-child { left: 0; }
.horse-3d-popup-stack__toggle-icon span:last-child { left: 6px; }

.horse-3d-popup-stack__content {
  width: 100%;
  min-width: 0;
  max-height: calc(100% - 36px);
  display: grid;
  gap: 8px;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-bottom: 4px;
  scrollbar-width: thin;
  scrollbar-color: rgb(var(--color-identity-rgb) / 0.45) transparent;
  transition: opacity 0.22s ease;
}

@media (min-width: 761px) {
  .horse-3d-popup-stack[data-popup-accordion-ready="true"] {
    bottom: var(--ui-space-3);
  }
}

/* The active tool can use the space freed by its collapsed siblings. */
.horse-3d-popup-stack[data-popup-accordion-ready="true"] .horse-3d-popup-stack__content > details[open] > :not(summary) {
  box-sizing: border-box;
  max-height: var(--horse-popup-body-height);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.horse-3d-popup-stack__toggle:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: -3px;
}

.horse-3d-popup-stack.is-collapsed {
  width: 64px;
  transform: none;
  /* Only the toggle remains interactive; the empty strip must not mask points. */
  pointer-events: none;
}

.horse-3d-popup-stack.is-collapsed .horse-3d-popup-stack__toggle-icon {
  transform: rotate(180deg);
}

.horse-3d-popup-stack.is-collapsed .horse-3d-popup-stack__toggle {
  pointer-events: auto;
  position: absolute;
  width: 64px;
  top: 0;
  right: auto;
  left: 0;
  height: 44px;
  margin: 0;
  border-right: 1px solid rgb(var(--color-identity-rgb) / 0.42);
  border-radius: 12px;
}

.horse-3d-popup-stack.is-collapsed .horse-3d-popup-stack__toggle-tool {
  display: inline-grid;
}

.horse-3d-popup-stack.is-collapsed .horse-3d-popup-stack__content {
  display: none;
}

.horse-3d-popup-stack__content > .horse-3d-layer-popup,
.horse-3d-popup-stack__content > .shiatsu-point-presets-popup {
  position: relative;
  top: auto;
  right: auto;
  width: 100%;
  pointer-events: auto;
}

.shiatsu-point-presets-popup {
  overflow: hidden;
  border: 1px solid rgb(var(--color-text-rgb) / 0.13);
  border-radius: var(--radius-sm);
  background: rgb(var(--color-white-rgb) / 0.92);
  box-shadow: var(--shadow);
  backdrop-filter: blur(12px);
}

.shiatsu-point-presets-popup > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 40px;
  padding: 0 12px;
  cursor: pointer;
  color: var(--color-primary);
  font-size: var(--font-size-control, 13px);
  font-weight: var(--font-weight-label, 800);
  list-style: none;
}

.shiatsu-point-presets-popup > summary::-webkit-details-marker { display: none; }

[data-annotation-sets-popup] > summary,
[data-shiatsu-games-popup] > summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 22px;
  column-gap: 8px;
  min-height: 50px;
  padding-block: 5px;
}

[data-shiatsu-games-popup] > summary > span:first-child {
  grid-column: 1;
  white-space: normal;
}

[data-annotation-sets-popup] > summary > span:first-child {
  grid-column: 1;
  font-size: var(--font-size-control, 12px);
  white-space: nowrap;
}

[data-annotation-sets-popup] > summary > span:last-child,
[data-shiatsu-games-popup] > summary > span:last-child {
  grid-column: 1;
  margin: 0;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

[data-annotation-sets-popup] > summary::after,
[data-shiatsu-games-popup] > summary::after {
  grid-column: 2;
  grid-row: 1 / 3;
}

.shiatsu-point-presets-popup > summary > span:last-child {
  margin-left: auto;
  margin-right: 8px;
  color: var(--color-text-soft);
  font-size: var(--font-size-control, 10px);
}

.shiatsu-point-presets-popup[data-annotation-sets-popup] > summary > span:last-child,
[data-shiatsu-games-popup] > summary > span:last-child { margin: 0; }

[data-annotation-sets-popup] > summary > span:first-child,
[data-annotation-sets-popup] > summary > [data-annotation-set-summary] {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}

.shiatsu-point-presets-popup > summary::after {
  display: grid;
  width: 22px;
  height: 22px;
  content: "−";
  place-items: center;
  border-radius: 50%;
  color: var(--color-surface);
  background: var(--color-primary);
  font-size: 17px;
  font-weight: 500;
  line-height: 1;
}

.shiatsu-point-presets-popup:not([open]) > summary::after { content: "+"; }

.shiatsu-point-sets-popup .shiatsu-point-preset-list__identity {
  width: 100%;
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--color-text);
  text-decoration: none;
  text-align: left;
  cursor: pointer;
}

.shiatsu-point-sets-popup .shiatsu-point-preset-list__identity:hover strong,
.shiatsu-point-sets-popup .shiatsu-point-preset-list__identity:focus-visible strong {
  color: var(--color-primary);
}

.shiatsu-point-sets-popup .shiatsu-point-preset-list__identity strong {
  overflow: hidden;
  font-size: var(--font-size-control, 13px);
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.shiatsu-point-sets-popup .shiatsu-point-preset-list__identity span {
  color: var(--color-text-soft);
  font-size: var(--font-size-control, 10px);
}

.shiatsu-point-sets-popup .shiatsu-point-preset-list__item {
  min-height: 42px;
  padding: 5px 6px 5px 9px;
}

.shiatsu-point-sets-popup .shiatsu-point-preset-list__actions {
  flex: 0 0 auto;
  gap: 3px;
}

.shiatsu-point-sets-popup .shiatsu-point-preset-list__action {
  width: 27px;
  height: 27px;
}

.shiatsu-point-sets-popup .shiatsu-point-preset-list__add {
  display: block;
  min-height: 0;
  padding: 2px 0 0;
}

.shiatsu-point-sets-popup .shiatsu-point-preset-list__add-line {
  display: none;
}

.shiatsu-point-sets-popup .shiatsu-point-preset-list__add-button {
  display: flex;
  width: 100%;
  height: auto;
  min-height: 34px;
  justify-content: center;
  align-items: center;
  padding: 6px 10px;
  border-radius: var(--radius-sm);
  font-size: var(--font-size-control, 12px);
  font-weight: var(--font-weight-label, 700);
  line-height: 1.2;
  white-space: nowrap;
}

.shiatsu-point-sets-popup .shiatsu-point-preset-list__item--native {
  border-color: var(--color-primary-strong);
  background: var(--color-primary-soft);
  box-shadow: none;
}

.shiatsu-point-sets-popup .shiatsu-point-preset-list__item--native.is-editing {
  background: rgb(var(--color-primary-rgb) / 0.22);
  border-color: var(--color-primary-deep);
  box-shadow: inset 3px 0 0 var(--color-identity);
}

.shiatsu-point-sets-popup .shiatsu-point-preset-list__item--native .shiatsu-point-preset-list__identity strong,
.shiatsu-point-sets-popup .shiatsu-point-preset-list__item--native .shiatsu-point-preset-list__identity span {
  color: var(--color-primary-strong);
}

.shiatsu-point-sets-popup .shiatsu-point-preset-list__item--native .shiatsu-point-preset-list__identity span {
  justify-self: start;
  margin-top: var(--ui-space-1);
  padding: var(--ui-space-1) var(--ui-space-2);
  border-radius: var(--ui-radius-badge);
  background: var(--color-surface);
}

.shiatsu-point-sets-popup .shiatsu-point-preset-list__item--native .shiatsu-point-preset-list__identity:focus-visible {
  outline: 2px solid var(--color-primary-strong);
  outline-offset: 2px;
  border-radius: var(--ui-radius-field);
}

/* One shared visual code links an ensemble to its games on both editing screens. */
[data-shiatsu-set-tone] {
  --shiatsu-set-accent: var(--color-text-soft);
  --shiatsu-set-surface: var(--color-surface-off-white);
}
[data-shiatsu-set-tone="0"] {
  --shiatsu-set-accent: var(--color-primary-strong);
  --shiatsu-set-surface: var(--color-primary-soft);
}
[data-shiatsu-set-tone="1"] {
  --shiatsu-set-accent: var(--color-highlight-strong);
  --shiatsu-set-surface: var(--color-highlight-soft);
}
[data-shiatsu-set-tone="2"] {
  --shiatsu-set-accent: var(--color-secondary-deep);
  --shiatsu-set-surface: var(--color-secondary-soft);
}
[data-shiatsu-set-tone="3"] {
  --shiatsu-set-accent: var(--color-identity-strong);
  --shiatsu-set-surface: var(--color-identity-soft);
}
[data-shiatsu-set-tone="4"] {
  --shiatsu-set-accent: var(--color-success-strong);
  --shiatsu-set-surface: var(--color-success-soft);
}
[data-shiatsu-set-tone="5"] {
  --shiatsu-set-accent: var(--color-settings-hero);
  --shiatsu-set-surface: var(--color-surface-off-white);
}
.shiatsu-point-sets-popup .shiatsu-point-preset-list__item[data-shiatsu-set-tone]:not(.shiatsu-point-preset-list__item--native) {
  background: var(--shiatsu-set-surface);
  border-color: var(--shiatsu-set-accent);
  border-left-width: 4px;
}
.shiatsu-point-sets-popup .shiatsu-point-preset-list__item[data-shiatsu-set-tone].is-editing {
  box-shadow: inset 3px 0 0 var(--shiatsu-set-accent);
}
.shiatsu-point-sets-popup.shiatsu-point-presets-popup__section {
  background: var(--color-surface-off-white);
  border-color: var(--color-border);
}
.shiatsu-point-presets-popup .shiatsu-point-sets-popup .shiatsu-point-presets-popup__section-title {
  color: var(--color-text);
  border-color: var(--color-border);
}
.shiatsu-point-presets-popup__section--games[data-shiatsu-set-tone] {
  margin-top: var(--ui-space-3);
  background: var(--shiatsu-set-surface);
  border-color: var(--shiatsu-set-accent);
  border-inline-start-width: 4px;
}
.shiatsu-point-presets-popup .shiatsu-point-presets-popup__section--games[data-shiatsu-set-tone] .shiatsu-point-presets-popup__section-title {
  color: var(--shiatsu-set-accent);
  border-color: var(--shiatsu-set-accent);
}
.shiatsu-point-presets-popup__parent {
  margin: 0 0 var(--ui-space-2);
  padding: var(--ui-space-2);
  background: var(--shiatsu-set-accent);
  color: var(--color-surface);
  border-radius: var(--radius-sm);
  font-size: var(--font-size-control);
  font-weight: var(--font-weight-label);
  overflow-wrap: anywhere;
}
.shiatsu-point-presets-popup__section--games[data-shiatsu-set-tone="0"] .shiatsu-point-presets-popup__parent {
  background: rgb(var(--color-primary-rgb) / 0.22);
  color: var(--color-primary-strong);
}
.shiatsu-point-presets-popup__section--games[data-shiatsu-set-tone] .shiatsu-point-preset-list__item {
  border-left: 4px solid var(--shiatsu-set-accent);
}
.shiatsu-point-presets-popup__section--games[data-shiatsu-set-tone] .shiatsu-point-preset-list__item.is-editing {
  background: var(--shiatsu-set-surface);
  border-color: var(--shiatsu-set-accent);
  box-shadow: inset 3px 0 0 var(--shiatsu-set-accent);
}

.shiatsu-point-presets-popup__section--games .shiatsu-point-preset-list__item:not([data-annotation-all-points-row]) {
  margin-inline-start: var(--ui-space-3);
  min-width: 0;
}

.shiatsu-point-preset-list__all-title {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
}
.shiatsu-point-preset-list__branch-arrow {
  color: var(--shiatsu-set-accent);
  flex-shrink: 0;
}
.shiatsu-point-presets-popup__parent .shiatsu-point-preset-list__branch-arrow {
  color: inherit;
}

.shiatsu-point-favorite-star {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  padding: var(--ui-space-2);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-surface);
  color: var(--color-text);
  cursor: pointer;
}
.shiatsu-point-favorite-star svg {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
}
.shiatsu-point-favorite-star.is-favorite svg { fill: var(--ui-favorite-star); }
.shiatsu-point-favorite-star:hover:not(:disabled) { background: var(--ui-warning-surface); }
.shiatsu-point-favorite-star:focus-visible { outline: 2px solid var(--color-primary-strong); outline-offset: 2px; }
.shiatsu-point-favorite-star:disabled { opacity: .5; cursor: default; }
.shiatsu-point-favorite-star[hidden] { display: none; }
.shiatsu-point-favorite-choice {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  min-width: 0;
}
.shiatsu-point-favorite-choice > .session-reference-choice { flex: 1; min-width: 0; }
.shiatsu-point-favorites__list { display: grid; gap: var(--ui-space-2); }
.shiatsu-point-favorites__status { margin: 0 0 var(--ui-space-2); }
.shiatsu-point-favorite-cell { white-space: nowrap; }
.shiatsu-point-favorite-cell > .shiatsu-point-favorite-star { margin-inline-end: var(--ui-space-2); }

.shiatsu-point-sets-popup__purchase {
  display: flex;
  justify-content: center;
  padding-top: var(--ui-space-2);
}

.shiatsu-point-sets-popup__purchase > .btn {
  max-width: 100%;
  white-space: nowrap;
}

.shiatsu-native-success .app-confirm-modal__panel {
  box-sizing: border-box;
  max-height: calc(100dvh - 2rem);
  overflow-y: auto;
  position: relative;
}

.shiatsu-point-presets-popup > summary:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: -3px;
}

.horse-3d-marker-size-control {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 5px 10px;
  padding: 8px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  color: var(--color-text);
  background: rgb(var(--color-white-rgb) / 0.74);
  font-size: var(--font-size-table, 13px);
  font-weight: var(--font-weight-label, 700);
}

.horse-3d-marker-size-control input[type="range"] {
  grid-column: 1 / -1;
  width: 100%;
  accent-color: var(--color-primary);
}

.horse-3d-marker-size-control output {
  color: var(--color-primary);
  font-variant-numeric: tabular-nums;
}

.annotation-point-options {
  display: grid;
  grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
  gap: 10px;
}

.annotation-point-options--muscle {
  grid-template-columns: minmax(190px, 1fr) minmax(176px, .82fr);
  max-width: 480px;
}

.annotation-editor--3d .annotation-point-options {
  grid-column: 1 / -1;
}

.annotation-point-color-control,
.annotation-reference-toggle {
  min-width: 0;
  min-height: 54px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: rgb(var(--color-white-rgb) / 0.74);
  box-shadow: var(--shadow-xs);
}

.annotation-point-color-control {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 10px 8px 12px;
  color: var(--color-text);
  font-size: var(--font-size-table, 13px);
  font-weight: var(--font-weight-label, 700);
}

.annotation-point-color-control--muscle,
.annotation-muscle-selection-opacity {
  min-height: 46px;
}

.annotation-point-color-control--muscle {
  gap: 8px;
  padding: 6px 8px 6px 10px;
}

.annotation-muscle-selection-opacity {
  display: grid;
  grid-template-columns: auto minmax(70px, 1fr) auto;
  align-items: center;
  gap: 8px;
  min-width: 0;
  padding: 6px 10px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: rgb(var(--color-white-rgb) / .74);
  box-shadow: var(--shadow-xs);
  color: var(--color-text);
  font-size: var(--font-size-table, 12px);
  font-weight: var(--font-weight-label, 760);
}

.annotation-muscle-selection-opacity input[type="range"] { min-width: 0; margin: 0; }
.annotation-muscle-selection-opacity output { color: var(--color-primary); font-size: var(--font-size-table, 12px); font-variant-numeric: tabular-nums; }

.annotation-point-color-control input[type="color"] {
  appearance: none;
  flex: 0 0 38px;
  width: 38px;
  height: 34px;
  padding: 3px;
  cursor: pointer;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.3);
  border-radius: 9px;
  background: var(--color-bg);
  box-shadow: inset 0 1px 2px rgb(var(--color-text-rgb) / 0.08);
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.annotation-point-color-control input[type="color"]::-webkit-color-swatch-wrapper {
  padding: 0;
}

.annotation-point-color-control input[type="color"]::-webkit-color-swatch {
  border: 0;
  border-radius: 6px;
}

.annotation-point-color-control input[type="color"]::-moz-color-swatch {
  border: 0;
  border-radius: 6px;
}

.annotation-point-color-control input[type="color"]:hover {
  border-color: var(--color-identity);
  transform: translateY(-1px);
}

.annotation-point-color-control input[type="color"]:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}

.annotation-reference-toggle {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  cursor: pointer;
  color: var(--color-text);
  font-size: var(--font-size-control, 13px);
  font-weight: var(--font-weight-label, 700);
  transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

.annotation-reference-toggle > span:last-child {
  min-width: 0;
  line-height: 1.2;
}

.annotation-reference-toggle input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.annotation-reference-toggle__switch {
  position: relative;
  flex: 0 0 38px;
  width: 38px;
  height: 22px;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.3);
  border-radius: 999px;
  background: var(--color-bg);
  box-shadow: inset 0 1px 2px rgb(var(--color-text-rgb) / 0.08);
  transition: border-color 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

.annotation-reference-toggle__switch::after {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 14px;
  height: 14px;
  content: "";
  border-radius: 50%;
  background: var(--color-surface);
  box-shadow: 0 2px 5px rgb(var(--color-text-rgb) / 0.2);
  transition: transform 180ms ease;
}

.annotation-reference-toggle input:checked + .annotation-reference-toggle__switch {
  border-color: var(--color-primary);
  background: var(--color-primary);
  box-shadow: 0 5px 12px rgb(var(--color-primary-rgb) / 0.2);
}

.annotation-reference-toggle input:checked + .annotation-reference-toggle__switch::after {
  transform: translateX(16px);
}

.annotation-reference-toggle input:focus-visible + .annotation-reference-toggle__switch {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}

.annotation-reference-toggle:has(input:checked) {
  border-color: rgb(var(--color-primary-rgb) / 0.32);
  background: rgb(var(--color-primary-rgb) / 0.045);
}

.annotation-dot--reference {
  border: 2px solid var(--color-surface);
  background: var(--color-identity);
  box-shadow: 0 0 0 3px rgb(var(--color-identity-rgb) / 0.2);
}

.horse-3d-controls {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 12px;
  border-top: 1px solid var(--border-color, #d8ddd6);
  background: var(--color-surface);
}

.horse-3d-layer-control {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-areas:
    "toggle label order"
    "opacity opacity opacity";
  align-items: center;
  gap: 6px 8px;
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  color: var(--color-text);
  background: var(--color-surface);
  box-shadow: var(--shadow-xs);
  transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
  font-size: var(--font-size-body, 14px);
  font-weight: var(--font-weight-label, 600);
}

.horse-3d-layer-control input[type="checkbox"] {
  grid-area: toggle;
  appearance: none;
  display: grid;
  width: 20px;
  height: 20px;
  margin: 0;
  cursor: pointer;
  place-content: center;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.32);
  border-radius: 7px;
  background: var(--color-bg);
  box-shadow: inset 0 1px 1px rgb(var(--color-text-rgb) / 0.05);
  transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.horse-3d-layer-control input[type="checkbox"]::after {
  width: 8px;
  height: 4px;
  content: "";
  border-bottom: 2px solid var(--color-surface);
  border-left: 2px solid var(--color-surface);
  opacity: 0;
  transform: rotate(-45deg) scale(0.55);
  transition: opacity 140ms ease, transform 160ms ease;
}

.horse-3d-layer-control input[type="checkbox"]:checked {
  border-color: var(--color-primary);
  background: var(--color-primary);
  box-shadow: 0 5px 12px rgb(var(--color-primary-rgb) / 0.24);
}

.horse-3d-layer-control input[type="checkbox"]:checked::after {
  opacity: 1;
  transform: rotate(-45deg) scale(1);
}

.horse-3d-layer-control input[type="checkbox"]:hover {
  border-color: var(--color-identity);
  transform: translateY(-1px);
}

.horse-3d-layer-control input[type="checkbox"]:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}

.horse-3d-layer-control:has(input[type="checkbox"]:checked) {
  border-color: rgb(var(--color-primary-rgb) / 0.28);
  background: rgb(var(--color-primary-rgb) / 0.035);
}

.horse-3d-layer-control > span {
  grid-area: label;
}

.horse-3d-layer-order {
  grid-area: order;
  width: auto;
  min-width: 76px;
  min-height: 32px;
  padding: 4px 24px 4px 8px;
  border-radius: 7px;
  font-size: var(--font-size-table, 12px);
  font-weight: var(--font-weight-label, 600);
}

.horse-3d-layer-control input[type="range"] {
  grid-area: opacity;
  width: 100%;
  min-width: 0;
  accent-color: #708b75;
}

.horse-models-form {
  display: grid;
  gap: 18px;
}

.model-species-tabs {
  display: flex;
  align-items: center;
  gap: 6px;
  width: max-content;
  max-width: 100%;
  margin: -2px 0 14px;
  padding: 5px;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.16);
  border-radius: 12px;
  background: rgb(var(--color-white-rgb) / 0.8);
  box-shadow: var(--shadow-xs);
}

.model-species-tabs__link {
  min-width: 92px;
  padding: 8px 16px;
  border-radius: 9px;
  color: var(--color-text-soft);
  text-align: center;
  font-size: var(--font-size-control, 13px);
  font-weight: var(--font-weight-label, 800);
  transition: color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

.model-species-tabs__link:hover,
.model-species-tabs__link:focus-visible {
  color: var(--color-primary);
  background: rgb(var(--color-primary-rgb) / 0.08);
}

.model-species-tabs__link.is-active {
  color: var(--color-white);
  background: var(--color-primary);
  box-shadow: 0 6px 14px rgb(var(--color-primary-rgb) / 0.2);
}

.horse-models-card {
  padding: 16px;
}

.horse-models-workspace {
  display: grid;
  grid-template-columns: minmax(360px, 1.05fr) minmax(420px, 0.95fr);
  align-items: start;
  gap: 20px;
}

.horse-models-settings {
  display: grid;
  gap: 10px;
  min-width: 0;
}

.horse-models-settings__header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 14px;
  padding: 2px 2px 4px;
}

.horse-models-settings__header h2 {
  margin: 4px 0 0;
  color: var(--color-primary-dark);
  font-size: var(--font-size-section-title, 1.12rem);
}

.horse-models-settings__header p {
  max-width: 245px;
  margin: 0;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 12px);
  line-height: 1.4;
  text-align: right;
}

.horse-models-autosave {
  min-height: 20px;
  justify-self: end;
  padding: 3px 9px;
  border-radius: 999px;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 11px);
  font-weight: var(--font-weight-label, 800);
  opacity: 0;
  transform: translateY(-3px);
  transition: opacity 0.22s ease, transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), color 0.22s ease, background-color 0.22s ease;
}

.horse-models-autosave.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.horse-models-autosave[data-state="saving"] {
  background: rgb(var(--color-secondary-rgb) / 0.12);
  color: var(--color-text-soft);
}

.horse-models-autosave[data-state="saved"] {
  background: rgb(var(--color-primary-rgb) / 0.1);
  color: var(--color-primary);
}

.horse-models-autosave[data-state="error"] {
  background: rgb(174 69 55 / 0.1);
  color: #9a3d31;
}

.horse-model-preview {
  position: sticky;
  top: 92px;
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.2);
  border-radius: 18px;
  background: #f8f5ee;
  box-shadow: 0 16px 34px rgb(var(--color-text-rgb) / 0.09);
}

.horse-model-preview__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 16px 18px 10px;
}

.horse-model-preview__header h2 {
  margin: 4px 0 0;
  color: var(--color-text);
  font-size: var(--font-size-section-title, 1.08rem);
}

.horse-model-preview__eyebrow {
  color: var(--color-primary);
  font-size: var(--font-size-caption, 11px);
  font-weight: var(--font-weight-label, 850);
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.horse-model-preview__status {
  flex: 0 0 auto;
  padding: 5px 8px;
  border-radius: 999px;
  background: rgb(var(--color-secondary-rgb) / 0.14);
  color: var(--color-text-soft);
  font-size: var(--font-size-caption, 11px);
  font-weight: var(--font-weight-label, 750);
}

.horse-model-preview__canvas {
  width: 100%;
  height: clamp(330px, 42vh, 470px);
  min-height: 330px;
  background: #fffdf8;
}

.horse-model-preview__canvas canvas {
  display: block;
  width: 100% !important;
  height: 100% !important;
}

.horse-model-preview__canvas--error {
  display: grid;
  place-items: center;
}

.horse-model-preview__legend {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 12px 16px;
  border-top: 1px solid rgb(var(--color-primary-rgb) / 0.12);
  border-bottom: 1px solid rgb(var(--color-primary-rgb) / 0.12);
}

.horse-model-preview__legend span {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 11px);
  font-weight: var(--font-weight-label, 750);
}

.horse-model-preview__legend i {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  border: 2px solid #fff;
  border-radius: 6px;
  box-shadow: 0 0 0 1px rgb(var(--color-text-rgb) / 0.18);
}

.horse-model-preview__layer-field {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(150px, 0.7fr);
  align-items: center;
  gap: 12px;
  margin: 0;
  padding: 10px 16px 0;
}

.horse-model-preview__layer-field > span {
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 12px);
  font-weight: var(--font-weight-label, 750);
}

.horse-model-preview__layer-field .input {
  width: 100%;
  min-width: 0;
  min-height: 38px;
}

.horse-model-preview__help {
  margin: 0;
  padding: 10px 16px 13px;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 11px);
  line-height: 1.45;
}

.horse-models-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

.horse-models-upgrade {
  margin: 0;
  padding: 10px 12px;
  border-left: 3px solid #d18768;
  border-radius: 8px;
  color: #57534e;
  background: rgb(209 135 104 / 0.1);
  font-size: var(--font-size-table, 13px);
}

.horse-model-preset {
  display: grid;
  gap: 10px;
  margin: 0;
  min-width: 0;
  padding: 10px 12px 12px;
  border: 1px solid var(--border-color, #d8ddd6);
  border-radius: 14px;
  background: #fffdf8;
  transition: border-color 0.24s ease, box-shadow 0.24s ease, transform 0.24s ease;
}

.horse-model-preset--active {
  border-color: rgb(var(--color-secondary-rgb) / 0.72);
  box-shadow: 0 10px 24px rgb(var(--color-secondary-rgb) / 0.12);
}

.horse-model-preset legend {
  padding: 0 6px;
}

.horse-model-preset__activation {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #376d70;
  font-size: var(--font-size-table, 13px);
  font-weight: var(--font-weight-label, 700);
  cursor: pointer;
}

.horse-model-preset__activation input[type="radio"] {
  appearance: none;
  width: 18px;
  height: 18px;
  margin: 0;
  border: 2px solid #879d8b;
  border-radius: 50%;
  background: #fffdf8;
  transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}

.horse-model-preset__activation input[type="radio"]:checked {
  border-color: #376d70;
  box-shadow: inset 0 0 0 4px #fffdf8;
  background: #376d70;
}

.horse-model-preset__activation input[type="radio"]:focus-visible {
  outline: 3px solid rgb(112 139 117 / 0.28);
  outline-offset: 2px;
}

@media (max-width: 1180px) {
  .horse-models-workspace {
    grid-template-columns: minmax(300px, 0.8fr) minmax(390px, 1.2fr);
  }
}

@media (max-width: 900px) {
  .horse-models-workspace {
    grid-template-columns: minmax(0, 1fr);
  }

  .horse-model-preview {
    position: relative;
    top: auto;
  }

  .horse-models-settings__header {
    align-items: flex-start;
    flex-direction: column;
  }

  .horse-models-settings__header p { max-width: none; text-align: left; }
}

.horse-model-preset__name { gap: 4px; }

.horse-model-preset__colors {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.horse-model-color {
  display: grid;
  grid-template-rows: minmax(2.4em, auto) 34px;
  justify-items: center;
  align-items: end;
  gap: 4px;
  min-width: 0;
  color: #57534e;
  font-size: var(--font-size-table, 12px);
  font-weight: var(--font-weight-label, 700);
}

.horse-model-color > span {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  min-height: 2.4em;
  line-height: 1.2;
  text-align: center;
}

.horse-model-color input[type="color"] {
  width: 100%;
  height: 34px;
  padding: 2px;
  border: 1px solid var(--border-color, #d8ddd6);
  border-radius: 8px;
  background: #fffdf8;
  cursor: pointer;
}

.shiatsu-point-board--flat {
  min-height: 560px;
}

.shiatsu-point-popover {
  --shiatsu-popover-x: 16px;
  --shiatsu-popover-y: 16px;
  position: absolute;
  top: var(--shiatsu-popover-y);
  left: var(--shiatsu-popover-x);
  z-index: 8;
  width: var(--shiatsu-popover-width, min(780px, calc(100% - 28px)));
  max-height: min(360px, var(--shiatsu-popover-max-height, calc(100% - 28px)));
  overflow: hidden;
  color: var(--color-text);
  cursor: default;
  user-select: text;
}

.shiatsu-point-popover__surface {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  max-height: inherit;
  overflow: hidden;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.34);
  border-radius: 16px;
  background: rgb(var(--color-white-rgb) / 0.97);
  box-shadow: 0 18px 48px rgb(var(--color-text-rgb) / 0.22);
  backdrop-filter: blur(12px);
}

.shiatsu-point-popover__header {
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--color-border);
  color: var(--color-primary);
  background: rgb(var(--color-white-rgb) / 0.98);
  cursor: grab;
  touch-action: none;
  user-select: none;
}

.shiatsu-point-popover__header-actions {
  display: flex;
  align-items: center;
  gap: 7px;
}

.shiatsu-point-popover.is-dragging .shiatsu-point-popover__header {
  cursor: grabbing;
}

.shiatsu-point-popover__content {
  min-height: 0;
  overflow: auto;
  padding: 12px 14px 14px;
  scrollbar-gutter: stable;
}

.shiatsu-point-popover__close {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  color: var(--color-primary);
  background: var(--color-primary-faint);
  cursor: pointer;
  font-size: 21px;
  line-height: 1;
  transition: color 160ms ease, background-color 160ms ease, transform 160ms ease;
}

.shiatsu-point-popover__delete {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 1px solid rgb(var(--color-danger-rgb, 180 55 55) / 0.24);
  border-radius: 8px;
  color: var(--color-danger, #b42318);
  background: rgb(var(--color-white-rgb) / 0.9);
  cursor: pointer;
  transition: color 160ms ease, border-color 160ms ease, background-color 160ms ease, transform 160ms ease;
}

.shiatsu-point-popover__delete svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.85;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.shiatsu-point-popover__delete:hover,
.shiatsu-point-popover__delete:focus-visible,
.shiatsu-point-popover__delete.is-confirming {
  color: var(--color-surface);
  border-color: var(--color-danger, #b42318);
  background: var(--color-danger, #b42318);
  transform: scale(1.05);
}

.shiatsu-point-popover__close:hover {
  color: var(--color-surface);
  background: var(--color-primary);
  transform: scale(1.05);
}

.shiatsu-point-popover__fields {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 11px 12px;
}

.shiatsu-point-popover__fields .field {
  gap: var(--ui-space-1, 4px);
  min-width: 0;
}

.shiatsu-point-popover__fields .textarea {
  min-height: 56px;
}

.shiatsu-point-popover.is-read-only .shiatsu-point-color-field,
.shiatsu-point-popover.is-read-only .shiatsu-point-function-remove,
.shiatsu-point-popover.is-read-only .shiatsu-point-function-add,
.shiatsu-point-popover.is-read-only .shiatsu-point-popover__actions {
  display: none;
}

.shiatsu-point-popover.is-read-only .shiatsu-point-functions-field {
  grid-column: 1 / -1;
}

.shiatsu-point-popover.is-read-only .shiatsu-point-function-row {
  grid-template-columns: minmax(0, 1fr);
}

.shiatsu-point-popover.is-read-only .shiatsu-point-function-row textarea {
  width: 100%;
  min-height: 88px;
  height: auto;
  resize: vertical;
}

.shiatsu-point-popover.is-read-only input[readonly],
.shiatsu-point-popover.is-read-only textarea[readonly] {
  color: var(--color-text);
  background: var(--color-surface);
  cursor: text;
}

.shiatsu-point-list__read-only-row {
  cursor: pointer;
}

.shiatsu-point-list__read-only-row:hover,
.shiatsu-point-list__read-only-row:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: -2px;
  background: var(--color-primary-faint);
}

.shiatsu-point-popover__wide {
  grid-column: span 2;
}

.shiatsu-point-color-field {
  grid-column: span 1;
}

.shiatsu-point-functions-field {
  grid-column: span 3;
}

.shiatsu-point-popover__notes {
  grid-column: 1 / -1;
}

.shiatsu-point-function-list {
  display: grid;
  gap: 7px;
}

.shiatsu-point-function-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 32px;
  gap: 6px;
  align-items: start;
}

.shiatsu-point-function-row .input {
  width: 100%;
  min-height: 36px;
  height: 36px;
}

.shiatsu-point-functions-field > span {
  min-width: 0;
}

.shiatsu-point-function-remove {
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  margin-top: 3px;
  border: 1px solid rgb(var(--color-danger-rgb, 180 55 55) / 0.28);
  border-radius: 8px;
  color: var(--color-danger, #b42318);
  background: var(--color-surface);
  font-size: var(--font-size-body, 20px);
  font-weight: var(--font-weight-label, 800);
  line-height: 1;
  cursor: pointer;
}

.shiatsu-point-color-control {
  align-items: center;
  display: inline-flex;
  gap: 9px;
  width: fit-content;
}

.shiatsu-point-color-control input[type="color"] {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 9px;
  cursor: pointer;
  height: 36px;
  padding: 3px;
  width: 54px;
}

.shiatsu-point-color-control output {
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 0.76rem);
  font-weight: var(--font-weight-label, 800);
  letter-spacing: 0.04em;
}

.shiatsu-point-function-remove:hover,
.shiatsu-point-function-remove:focus-visible {
  color: var(--color-surface);
  background: var(--color-danger, #b42318);
}

.shiatsu-point-function-remove:disabled {
  visibility: hidden;
}

.shiatsu-point-function-add {
  justify-self: start;
  min-height: 32px;
  margin-top: 7px;
  padding: 5px 10px;
  font-size: var(--font-size-table, 12px);
}

.shiatsu-point-popover__actions {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 6px;
  margin-top: 12px;
}

.shiatsu-point-autosave-status {
  flex: 1 1 auto;
  min-height: 20px;
  color: var(--color-text-muted);
  font-size: var(--font-size-caption, 12px);
  font-weight: var(--font-weight-label, 700);
}

.shiatsu-point-autosave-status[data-state="saving"] {
  color: var(--color-primary);
}

.shiatsu-point-autosave-status[data-state="saved"] {
  color: var(--color-success, #34745d);
}

.shiatsu-point-autosave-status[data-state="error"] {
  color: var(--color-danger, #b42318);
}

.shiatsu-point-popover__actions .btn {
  flex: 1 1 0;
  min-width: 0;
  min-height: 38px;
  padding-right: var(--ui-space-2, 8px);
  padding-left: var(--ui-space-2, 8px);
  font-size: var(--font-size-control, 12px);
  white-space: nowrap;
}


.annotation-point-popover {
  top: auto;
  right: 14px;
  bottom: 14px;
  left: 14px;
  width: auto;
  max-height: min(340px, calc(100% - 28px));
}

.annotation-point-popover .shiatsu-point-popover__content {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  gap: 12px;
  overflow: hidden;
}

.annotation-point-popover__fields {
  min-height: 0;
  overflow-y: auto;
  padding-right: 3px;
}

.annotation-point-popover .shiatsu-point-popover__header {
  cursor: default;
}

.annotation-point-popover__title {
  display: flex;
  flex: 1 1 auto;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem;
  min-width: 0;
}

.annotation-point-popover__point-name {
  color: var(--color-accent-strong);
  font-weight: var(--font-weight-label);
}

.annotation-point-popover__fields {
  display: grid;
  grid-template-columns: minmax(110px, 0.18fr) minmax(0, 1fr);
  gap: 12px;
  align-items: start;
}

.annotation-stimulation-choice {
  display: grid;
  grid-column: 1 / -1;
  gap: 7px;
  margin: 0;
  max-width: 360px;
  padding: 0;
  border: 0;
}

.annotation-stimulation-choice legend {
  margin: 0 0 2px;
  color: var(--color-text, #243735);
  font-size: var(--font-size-label, 12px);
  font-weight: var(--font-weight-label, 700);
}

.annotation-stimulation-choice__options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
}

.annotation-stimulation-choice__options label {
  position: relative;
  min-width: 0;
  cursor: pointer;
}

.annotation-stimulation-choice__options label.is-disabled {
  cursor: not-allowed;
}

.annotation-stimulation-choice__options input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.annotation-stimulation-choice__options span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 6px 9px;
  border: 1px solid #c8d5d1;
  border-radius: 8px;
  background: #fff;
  color: #28524f;
  font-size: var(--font-size-control, 12px);
  font-weight: 750;
  transition: background-color .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease;
}

.annotation-stimulation-choice__options label:hover span {
  border-color: #69948e;
  background: #f2f7f5;
}

.annotation-stimulation-choice__options input:checked + span {
  border-color: #376d70;
  background: #376d70;
  color: #fff;
  box-shadow: 0 5px 12px rgba(55, 109, 112, .18);
}

.annotation-stimulation-choice__options input:disabled + span {
  border-color: rgb(var(--color-text-rgb) / 0.18);
  background: rgb(var(--color-text-rgb) / 0.08);
  color: var(--color-text-soft);
  opacity: 0.62;
}

.annotation-stimulation-choice__options input:focus-visible + span {
  outline: 3px solid rgba(224, 107, 160, .3);
  outline-offset: 2px;
}

.annotation-point-popover__color input[type="color"] {
  min-height: 42px;
  padding: 4px;
}

.annotation-point-popover__comment .textarea {
  min-height: 74px;
}

.annotation-point-popover__actions {
  justify-content: flex-end;
  margin-top: 0;
  padding-top: 10px;
  border-top: 1px solid var(--color-border);
  background: rgb(var(--color-white-rgb) / 0.98);
}

.annotation-point-popover__actions .btn {
  flex: 0 1 160px;
}

.shiatsu-point-fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  gap: 16px;
  padding: 22px;
  border: 1px solid var(--border-color, #d8ddd6);
  border-radius: 16px;
  background: #fffdf8;
}

.shiatsu-point-fields__wide,
.shiatsu-point-fields .annotation-toolbar {
  grid-column: 1 / -1;
}

.horse-3d-layer[aria-pressed="true"] {
  color: #f6f2e9;
  border-color: #376d70;
  background: #376d70;
}

@media (max-width: 640px) {
  .horse-3d-viewer { min-height: 300px; }
  .horse-3d-shell--reference .horse-3d-viewer { height: 420px; }
  .horse-3d-view-toolbar { bottom: 8px; left: 8px; }
  .shiatsu-help-popup { width: min(300px, calc(100% - 16px)); top: 48px; left: 8px; }
  .shiatsu-help-trigger { top: 8px; left: 8px; }
  .horse-3d-popup-stack { top: 48px; right: 8px; bottom: 82px; width: min(280px, calc(100% - 16px)); }
  .horse-3d-shell:has(.horse-3d-presentation-switch) .horse-3d-popup-stack {
    bottom: calc(82px + var(--ui-compact-control-height) + var(--ui-space-2));
  }
  .horse-3d-controls { gap: 6px; padding: 8px; }
  .horse-3d-layer-control {
    gap: 5px 6px;
    padding: 8px;
  }
  .horse-3d-layer-order { min-width: 0; padding-right: 18px; }
  .horse-models-grid { grid-template-columns: 1fr; }
  .horse-model-preview__header { align-items: stretch; flex-direction: column; }
  .horse-model-preview__status { align-self: flex-start; }
  .horse-model-preview__canvas { height: 330px; }
  .horse-model-preview__legend { grid-template-columns: 1fr; }
  .horse-model-preview__layer-field { grid-template-columns: 1fr; gap: 6px; }
  .annotation-point-options { grid-template-columns: 1fr; }
  .shiatsu-point-editor__settings { grid-template-columns: 1fr; max-width: none; }
  .shiatsu-point-fields { grid-template-columns: 1fr; }
  .shiatsu-point-fields__wide,
  .shiatsu-point-fields .annotation-toolbar { grid-column: auto; }
  .shiatsu-point-popover {
    width: min(calc(100% - 16px), var(--shiatsu-popover-max-width, calc(100% - 16px)));
    max-height: min(520px, calc(100% - 16px));
  }
  .shiatsu-point-popover__fields { grid-template-columns: 1fr; }
  .shiatsu-point-popover__wide { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .clients-table tbody tr:hover,
  .species-catalog__list li:hover,
  .activity-journal-table tbody tr:hover,
  .appointment-session__annotation-row:hover {
    transform: none;
    filter: none;
  }

  .clients-table tbody tr,
  .table.clients-table td,
  .species-catalog__list li,
  .activity-journal-table tbody tr,
  .appointment-session__annotation-row,
  .agenda-day__slot,
  .agenda-day-event,
  .agenda-event-popover,
  .btn,
  .btn::before,
  .table-action,
  .species-catalog__edit,
  .species-catalog__delete,
  .species-catalog__inline-save,
  .species-catalog__inline-cancel,
  .agenda-nav-button,
  .agenda-empty-create::before,
  .agenda-empty-create > span,
  .agenda-display-options__panel {
    animation: none;
    transition: none;
  }
}
.app-confirm-modal {
  position: fixed;
  inset: 0;
  z-index: var(--ui-layer-dialog, 3000);
  display: grid;
  place-items: center;
  padding: var(--ui-space-5, 1.25rem);
  background: var(--ui-overlay-backdrop, rgb(var(--color-text-rgb) / 0.42));
  backdrop-filter: blur(4px);
}

.app-confirm-modal[hidden] {
  display: none;
}

.app-confirm-modal__panel {
  width: min(100%, 32rem);
  padding: 1.35rem 1.4rem var(--ui-space-5, 1.25rem);
  border: 1px solid rgb(var(--color-text-rgb) / 0.12);
  border-radius: var(--ui-radius-overlay, 1rem);
  background: var(--color-surface);
  box-shadow: var(--ui-shadow-overlay, 0 24px 70px rgb(var(--color-text-rgb) / 0.26));
  color: var(--color-text);
}

.app-confirm-modal__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-4, 1rem);
}

.app-confirm-modal__header h2 {
  margin: 0;
  color: var(--color-primary);
  font-size: var(--font-size-card-title, 1.12rem);
  line-height: var(--line-height-title, 1.3);
}

.app-confirm-modal__close {
  display: inline-grid;
  width: 2rem;
  height: 2rem;
  flex: 0 0 auto;
  place-items: center;
  border: 0;
  border-radius: var(--ui-radius-pill, 999px);
  background: rgb(var(--color-text-rgb) / 0.07);
  color: var(--color-text-soft);
  cursor: pointer;
  font-size: 1.35rem;
  line-height: 1;
}

.app-confirm-modal__close:hover,
.app-confirm-modal__close:focus-visible {
  background: rgb(var(--color-primary-rgb) / 0.14);
  color: var(--color-primary);
}

.app-confirm-modal__message {
  margin: var(--ui-space-4, 1rem) 0 var(--ui-space-5, 1.25rem);
  color: var(--color-text-soft);
  line-height: 1.55;
}

.app-confirm-modal__actions {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 1fr;
  width: fit-content;
  max-width: 100%;
  margin-left: auto;
  justify-content: flex-end;
  gap: 0.65rem;
}

.app-confirm-modal__field {
  display: grid;
  gap: var(--ui-space-2, 8px);
  margin-bottom: var(--ui-space-4, 16px);
  min-width: 0;
}

/* One shared practitioner enrollment form, rendered inline or inside the canonical dialog. */
.practitioner-registration-modal__panel{width:min(100%,42rem);max-height:calc(100dvh - 2rem);overflow-y:auto;padding:1.5rem}
.practitioner-registration-modal__panel .app-confirm-modal__header{padding-bottom:.85rem;margin-bottom:var(--ui-space-3, 12px);border-bottom:1px solid #e4dfdf}
.practitioner-registration-modal__panel .app-confirm-modal__header h2{font-size:var(--font-size-section-title)}
.practitioner-registration-form{display:grid;gap:1.1rem;min-width:0}
.practitioner-registration-form__progress{color:#9a376b;font-size:var(--font-size-caption);font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.practitioner-registration-form__step{display:grid;gap:1rem;min-width:0}
.practitioner-registration-form__step[hidden],.practitioner-registration-form__next[hidden],.practitioner-registration-form__actions [hidden]{display:none!important}
.practitioner-registration-form__step h3{margin:0;color:#295d61;font-size:var(--font-size-card-title)}
.practitioner-registration-form__step>p{margin:0;color:#445258;line-height:1.5}
.practitioner-registration-form__choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin:0;padding:0;border:0;min-width:0}
.practitioner-registration-form__offer-card{display:grid;align-content:start;gap:.7rem;min-width:0;padding:.82rem;border:1px solid #d9dfe0;border-radius:8px;background:#fff}
.practitioner-registration-form__offer-card:has(input:checked){border-color:#ad4d82;background:#fff7fa;box-shadow:0 0 0 1px #ad4d82}
.practitioner-registration-form__offer-card>strong{color:#274d55}
.practitioner-registration-form__periods{display:grid;gap:.5rem;min-width:0}
.practitioner-registration-form__periods .practitioner-registration-form__choice{padding:.6rem}
.practitioner-registration-form__choice{display:flex;gap:.7rem;min-width:0;align-items:flex-start;padding:.82rem;border:1px solid #d9dfe0;border-radius:8px;background:#fff;cursor:pointer;transition:border-color .15s,background-color .15s,box-shadow .15s}
.practitioner-registration-form__choice:has(input:checked){border-color:#ad4d82;background:#fff1f7;box-shadow:0 0 0 1px #ad4d82}
.practitioner-registration-form__choice:focus-within{outline:2px solid #ad4d82;outline-offset:2px}
.practitioner-registration-form__choice input{appearance:none;display:inline-grid;place-items:center;width:1rem;height:1rem;flex:0 0 1rem;margin:.2rem 0 0;border:1.5px solid #925977;border-radius:50%;background:#fff;cursor:pointer}
.practitioner-registration-form__choice input:checked{border-color:#963668;background:#963668;box-shadow:inset 0 0 0 3px #fff}
.practitioner-registration-form__choice input:focus-visible{outline:2px solid #963668;outline-offset:2px}
.practitioner-registration-form__choice span{display:grid;gap:.2rem;min-width:0}
.practitioner-registration-form__choice strong{color:#274d55}
.practitioner-registration-form__choice small{color:#45535a;line-height:1.35}
.practitioner-registration-form__next{justify-self:end}
.practitioner-registration-form__actions{display:flex;gap:.7rem;flex-wrap:wrap;justify-content:flex-end}
.practitioner-registration-form__error{display:block;color:#9b2439;font-size:var(--font-size-help);font-weight:700;line-height:1.4}
.practitioner-registration-form__notice{padding:.85rem 1rem;border:1px solid #b5ddc5;border-radius:8px;background:#eefaf2;color:#28583d}
.practitioner-registration-form__legal{font-size:var(--font-size-help)}
.practitioner-registration-page{min-height:100dvh;max-width:1050px;margin:0 auto;padding:1.5rem clamp(1rem,4vw,2.5rem) 3rem}
.practitioner-registration-page__brand{display:inline-flex;align-items:center;gap:.65rem;color:#295d61;text-decoration:none}
.practitioner-registration-page__brand img{object-fit:contain}
.practitioner-registration-page__layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start;gap:clamp(1rem,4vw,3rem);margin-top:clamp(2rem,7vh,5rem)}
.practitioner-registration-page__intro{padding:1rem 0}
.practitioner-registration-page__intro h1,.practitioner-registration-page__card h1{color:#295d61;line-height:1.15}
.practitioner-registration-page__intro p,.practitioner-registration-page__card>p{color:#45535a;line-height:1.6}
.practitioner-registration-page__card{padding:clamp(1.2rem,3vw,2rem);min-width:0}
.practitioner-registration-page--single{max-width:700px}
.practitioner-registration-page--single .practitioner-registration-page__card{margin-top:clamp(2rem,7vh,5rem)}
.practitioner-registration-page__resend{display:flex;gap:.8rem;flex-wrap:wrap;align-items:center;margin:1.25rem 0}
.practitioner-registration-activation{display:grid;gap:1rem}
.practitioner-registration-activation__names{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.login-entry-signup{margin:1rem 0 0;color:#45535a;font-size:var(--font-size-label);line-height:1.5}
.login-entry-signup a{color:#883063;font-weight:750}
.login-entry-signup a:hover,.login-entry-signup a:focus-visible{color:#68234b}
.subscription-plan-card[id^="subscription-plan-"]{scroll-margin-top:1.5rem}
.subscription-plan-card[id^="subscription-plan-"]:target{outline:2px solid #ad4d82;outline-offset:3px}
.subscription-plan-card__payment-help{margin:0 0 var(--ui-space-3, 12px);color:var(--color-text, #263a40);font-weight:var(--font-weight-label, 700);line-height:1.5}
@media(max-width:700px){.practitioner-registration-page__layout{grid-template-columns:1fr;margin-top:1rem}.practitioner-registration-page__intro{padding:0}.practitioner-registration-modal__panel{padding:1rem}.practitioner-registration-form__choices{grid-template-columns:1fr}.practitioner-registration-activation__names{grid-template-columns:1fr}}

/* Practitioner registration and first-run guidance share the canonical controls. */
.practitioner-registration-form__practice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin:0;padding:0;border:0;min-width:0}
.practitioner-registration-form__practice-grid .practitioner-registration-form__choice input{border-radius:5px}
.practitioner-registration-form__practice-grid .practitioner-registration-form__choice input:checked{box-shadow:inset 0 0 0 3px #fff}
.practitioner-registration-form__immutability-note{color:var(--color-danger-strong);font-size:var(--font-size-help);font-weight:var(--font-weight-label,600)}
.practitioner-registration-form__official,.practitioner-onboarding-official{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;min-width:0}
.practitioner-registration-form__official[hidden],.practitioner-onboarding-official[hidden],.practitioner-registration-form__error[hidden]{display:none!important}
.practitioner-registration-form__official .field,.practitioner-onboarding-official .field{min-width:0}
.practitioner-registration-form__official input[readonly],.practitioner-onboarding-official input[readonly],.practitioner-profile-fields input[readonly]{background:#f3f6f5;color:#29474b;cursor:default}
.practitioner-profile-official-note{padding:.8rem 1rem;border-left:4px solid #a84376;border-radius:8px;background:#fff2f7;color:#67354e;line-height:1.45}
.practitioner-registration-activation__guidance{margin:0;color:#405259;line-height:1.5}
.practitioner-profile-onboarding-target{padding:.6rem;border:2px solid var(--color-danger-strong);border-radius:var(--ui-radius-field,8px);background:var(--ui-danger-surface,#fff1f2)}
.practitioner-profile-fields .practitioner-profile-onboarding-target input,.practitioner-profile-fields .practitioner-profile-onboarding-target select,.practitioner-home-service-area--onboarding-target .practitioner-home-address input{border-color:var(--color-danger-strong)}
.practitioner-profile-onboarding-hint{display:block;margin:.25rem 0 0;color:var(--color-danger-strong)!important;font-size:var(--font-size-help);font-weight:var(--font-weight-label,700);line-height:1.4}
.practitioner-default-service-area-card--onboarding{border-color:var(--color-danger-strong)}
.practitioner-opening-hours-card--onboarding{border:2px solid var(--color-danger-strong);background:var(--ui-danger-surface,#fff1f2)}
.practitioner-opening-hours-card--onboarding>.practitioner-profile-onboarding-hint{margin:0 0 var(--ui-space-3,12px)}
.practitioner-home-service-area--onboarding-target{border:2px solid var(--color-danger-strong);background:var(--ui-danger-surface,#fff1f2)}
.practitioner-home-service-area--onboarding-target legend{color:var(--color-danger-strong)}
.practitioner-profile-card--details,.practitioner-profile-card[id]{scroll-margin-top:5rem}
.practitioner-practices h3{margin:0 0 .6rem;color:#285c61;font-size:var(--font-size-card-title)}
.practitioner-directory-panel .practitioner-practices>.practitioner-practices__selected{display:flex;flex-wrap:wrap;gap:.5rem}
.practitioner-practices__selected span{display:inline-flex;align-items:center;min-height:36px;padding:.4rem .7rem;border:1px solid #e3b9d0;border-radius:var(--ui-radius-control,8px);background:#fff0f6;color:#71314f;font-weight:var(--font-weight-label,600)}
.practitioner-practices>p{margin:.7rem 0 0;color:#526267;font-size:var(--font-size-help)}
.practitioner-profile-official-note{grid-column:1/-1;margin:.25rem 0}
.practitioner-onboarding-page{display:grid;gap:1.25rem;width:min(100%,48rem)!important;max-width:48rem!important;min-width:0;margin-inline:auto!important}
.practitioner-onboarding-heading{padding:.2rem .3rem .5rem;border-bottom:1px solid #d8e5e2}
.practitioner-onboarding-heading .eyebrow{color:#9b4673}
.practitioner-onboarding-heading h1{margin:.35rem 0;color:#285c61}
.practitioner-onboarding-heading p{margin:0;color:#526267;line-height:1.5}
.app-content--with-onboarding{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,16.5rem);align-items:start;gap:clamp(1rem,2vw,1.75rem)}
.app-content--with-onboarding>.page:not(.practitioner-onboarding-page){width:100%;max-width:none;min-width:0;margin:0}
.app-content--with-onboarding>.page.appointment-form-page{width:min(100%,900px);max-width:900px;margin-inline:auto}
.app-content.app-content--with-onboarding:has(>.page>.page-header.aenima-page-hero:first-child){padding:28px}
.app-content.app-content--with-onboarding:has(>.page>.page-header.aenima-page-hero:first-child)>.page>.page-header.aenima-page-hero:first-child{border-radius:var(--ui-radius-control,13px)}
.app-content.app-content--with-onboarding:has(>.page>.page-header.aenima-page-hero:first-child)>.page>:not(.page-header.aenima-page-hero:first-child){width:auto;margin-inline:0}
.practitioner-onboarding-progress{display:grid;grid-template-columns:1fr minmax(9rem,19rem);align-items:center;gap:1rem;padding:1.2rem 1.4rem;background:var(--color-primary-soft);color:var(--color-primary-deep);border-color:rgb(var(--color-primary-rgb) / .24)}
.practitioner-onboarding-progress .eyebrow{color:var(--color-secondary-deep)}
.practitioner-onboarding-progress h2{margin:.45rem 0 0;color:var(--color-primary-deep);font-size:var(--font-size-section-title)}
.practitioner-onboarding-progress progress{width:100%;height:.8rem;appearance:none;border:1px solid rgb(var(--color-primary-rgb) / .28);border-radius:999px;background:var(--color-surface);accent-color:var(--color-secondary);overflow:hidden}
.practitioner-onboarding-progress progress::-webkit-progress-bar{background:var(--color-surface)}
.practitioner-onboarding-progress progress::-webkit-progress-value{background:var(--color-secondary)}
.practitioner-onboarding-progress progress::-moz-progress-bar{background:var(--color-secondary)}
.practitioner-onboarding-next{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;padding:1.25rem 1.4rem;background:#fff5f9;border-left:4px solid #a84376;min-width:0}
.practitioner-onboarding-next>div{min-width:0}
.practitioner-onboarding-next .eyebrow{color:#883c65}
.practitioner-onboarding-next h2{margin:.2rem 0;color:#71314f;font-size:var(--font-size-card-title)}
.practitioner-onboarding-next p{margin:0;color:#405259}
.practitioner-onboarding-next .btn{flex:none}
.practitioner-onboarding-layout{display:grid;gap:1.2rem;min-width:0}
.practitioner-onboarding-steps{display:grid;gap:.85rem;min-width:0}
.practitioner-onboarding-step{display:grid;gap:.8rem;padding:1.2rem 1.4rem;border-left:4px solid #b35486;scroll-margin-top:6rem;min-width:0}
.practitioner-onboarding-step:nth-child(odd):not(.is-complete):not(.is-recommended){background:#fff9fc}
.practitioner-onboarding-step.is-complete{border-left-color:#4f9273;background:#f7fcf9}
.practitioner-onboarding-step.is-recommended{border-left-color:#c89235;background:#fffaf0}
.practitioner-onboarding-step__heading{display:flex;align-items:center;gap:.75rem}
.practitioner-onboarding-step__number{display:grid;place-items:center;flex:none;width:2.5rem;height:2.5rem;border-radius:8px;background:#ffe8f1;color:#883c65;font-weight:800}
.practitioner-onboarding-step.is-complete .practitioner-onboarding-step__number{background:#dff3e8;color:#316c50}
.practitioner-onboarding-step.is-recommended .practitioner-onboarding-step__number{background:#fae8c0;color:#6b4d14}
.practitioner-onboarding-step__heading small{display:block;color:#8a3d64;font-weight:700}
.practitioner-onboarding-step.is-complete .practitioner-onboarding-step__heading small{color:#316c50}
.practitioner-onboarding-step h2{margin:.15rem 0 0;font-size:var(--font-size-card-title);color:#254f55}
.practitioner-onboarding-step p{margin:0;color:#46565a;line-height:1.5}
.practitioner-onboarding-step form{display:grid;gap:.8rem;justify-items:start}
.practitioner-onboarding-step__actions{display:grid;gap:.9rem}
.practitioner-onboarding-confirm{display:flex;align-items:center;gap:.6rem;color:#2e4b50}
.practitioner-onboarding-confirm input{accent-color:#a84376;width:1.1rem;height:1.1rem}
.practitioner-onboarding-step__complete{color:#2c7252;font-weight:800}
.practitioner-onboarding-rail{position:sticky;top:1rem;display:flex;align-items:center;justify-content:center;align-self:start;height:calc(100vh - 2rem);min-width:0}
.practitioner-onboarding-tour{display:grid;gap:1rem;width:min(100%,15.5rem);max-height:calc(100vh - 2rem);overflow-y:auto;padding:1.15rem;border-top:4px solid #af4e80;background:#fff0f6;min-width:0}
.practitioner-onboarding-tour__header{display:grid;gap:.4rem}
.practitioner-onboarding-tour h2{margin:0;color:#71314f;font-size:var(--font-size-card-title)}
.practitioner-onboarding-tour p{margin:0;color:#405259;font-size:var(--font-size-help)}
.practitioner-onboarding-tour progress{width:100%;height:.55rem;accent-color:#a84376}
.practitioner-onboarding-tour__list{display:grid;gap:.35rem;margin:0;padding:0;list-style:none}
.practitioner-onboarding-tour__list li{display:grid;grid-template-columns:1.8rem minmax(0,1fr);align-items:start;gap:.5rem;padding:.45rem .25rem;border-top:1px solid #e7c5d7;min-width:0}
.practitioner-onboarding-tour__marker{display:grid;place-items:center;width:1.8rem;height:1.8rem;border-radius:50%;background:#fff;color:#883c65;font-size:var(--font-size-caption);font-weight:800}
.practitioner-onboarding-tour__list li.is-complete .practitioner-onboarding-tour__marker{background:#e1f2e7;color:#287151}
.practitioner-onboarding-tour__list li.is-current .practitioner-onboarding-tour__marker{background:#285c61;color:#fff}
.practitioner-onboarding-tour__link{display:grid;gap:.1rem;min-width:0;color:#71314f;text-decoration:none}
.practitioner-onboarding-tour__link strong{font-size:var(--font-size-label);font-weight:700;line-height:1.25}
.practitioner-onboarding-tour__link small{color:#536369;font-size:var(--font-size-help)}
.practitioner-onboarding-tour__list li.is-current .practitioner-onboarding-tour__link strong{color:#245e65}
.practitioner-onboarding-tour__link:hover strong,.practitioner-onboarding-tour__link:focus-visible strong{color:#245e65}
.practitioner-onboarding-tour__overview{display:flex;align-items:center;justify-content:space-between;gap:.4rem;padding-top:.7rem;border-top:1px solid #e7c5d7;color:#245e65;font-weight:700}
.dashboard-onboarding-invite{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.5rem;border-left:4px solid #a84376;background:#fff5f8}
.dashboard-onboarding-invite h2{margin:.35rem 0;color:#71314f}
.dashboard-onboarding-invite p{margin:.25rem 0 0}
.app-nav__link--onboarding{background:#fff0f6;color:#71314f;border-left:4px solid #a84376;box-shadow:0 6px 16px rgba(74,31,58,.1)}
.app-nav__link--onboarding:hover,.app-nav__link--onboarding:focus-visible,.app-nav__link--onboarding.app-nav__link--active{background:#ffe5f0;color:#71314f}
.app-shell--onboarding-locked .app-sidebar__collapse{display:none}
.app-shell--onboarding-locked .app-nav__link--locked,.app-shell--onboarding-locked .app-nav__link--locked:hover{background:transparent;color:rgb(var(--color-white-rgb) / .52);box-shadow:none;cursor:not-allowed;transform:none}
.app-shell--onboarding-locked .app-nav__link--locked .app-nav__icon{opacity:.8}
.practitioner-onboarding-mobile-shortcut{display:none}
@media(max-width:1080px){.practitioner-onboarding-mobile-shortcut{position:fixed;z-index:26;bottom:calc(1rem + env(safe-area-inset-bottom));left:1rem;display:inline-flex;align-items:center;min-height:42px;max-width:calc(100vw - 8rem);padding:.55rem .9rem;border:1px solid #e7aecb;border-left:4px solid #a84376;border-radius:var(--ui-radius-control,13px);background:#fff0f6;color:#71314f;font-weight:var(--font-weight-label,600);box-shadow:0 8px 22px rgba(74,31,58,.14)}.practitioner-onboarding-mobile-shortcut:hover,.practitioner-onboarding-mobile-shortcut:focus-visible{background:#ffe5f0;color:#71314f}}
@media(max-width:1080px){.app-shell--with-secondary-drawer .app-content--with-onboarding{display:block}.app-shell--with-secondary-drawer .practitioner-onboarding-rail{display:none}.app-shell--with-secondary-drawer .practitioner-onboarding-mobile-shortcut{position:fixed;z-index:26;bottom:calc(1rem + env(safe-area-inset-bottom));left:1rem;display:inline-flex;align-items:center;min-height:42px;max-width:calc(100vw - 8rem);padding:.55rem .9rem;border:1px solid #e7aecb;border-left:4px solid #a84376;border-radius:var(--ui-radius-control,13px);background:#fff0f6;color:#71314f;font-weight:var(--font-weight-label,600);box-shadow:0 8px 22px rgba(74,31,58,.14)}}
@media(max-width:900px){.app-content--with-onboarding{display:block}.practitioner-onboarding-rail{display:none}.practitioner-onboarding-next{flex-wrap:wrap}}
@media(max-width:700px){.practitioner-registration-form__practice-grid,.practitioner-registration-form__official,.practitioner-onboarding-official,.practitioner-onboarding-progress{grid-template-columns:1fr}.dashboard-onboarding-invite{flex-direction:column;align-items:flex-start}}

.app-confirm-modal__actions > .btn {
  min-width: 0;
  white-space: normal;
}

.client-export-options {
  display: grid;
  gap: 0.55rem;
  margin: 0 0 1.25rem;
  padding: 0.8rem 0.9rem;
  border: 1px solid var(--color-border);
  border-radius: 0.75rem;
}

.client-export-options legend {
  padding: 0 0.25rem;
  color: var(--color-text-soft);
  font-size: var(--font-size-label, 0.73rem);
  font-weight: var(--font-weight-label, 800);
}

.client-export-options label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--color-text);
  cursor: pointer;
  font-size: var(--font-size-label, 0.82rem);
  font-weight: var(--font-weight-label, 700);
}

.client-export-options input {
  width: 1rem;
  height: 1rem;
  margin: 0;
  accent-color: var(--color-primary);
}

.page-header.aenima-page-hero.practitioner-page-hero {
  align-items: center;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 14rem;
  padding: clamp(1.9rem, 4vw, 3.1rem) clamp(2rem, 5vw, 4.5rem);
  border: 0;
  background: var(--color-hero-night);
  color: var(--color-surface);
  box-shadow: 0 18px 42px rgb(var(--color-primary-rgb) / 0.18);
}

.page-header.aenima-page-hero.practitioner-page-hero::before {
  content: "";
  display: block;
  position: absolute;
  z-index: 0;
  pointer-events: none;
  top: -45%;
  right: -26%;
  left: -20%;
  height: 183%;
  background: var(--color-secondary-muted);
  opacity: .1;
  mask-image: url("/assets/images/client-home-cat-paw-trail.png");
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: auto 100%;
  -webkit-mask-image: url("/assets/images/client-home-cat-paw-trail.png");
  -webkit-mask-position: center;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: auto 100%;
}

.page-header.aenima-page-hero.practitioner-page-hero > * {
  position: relative;
  z-index: 1;
}

.page-header.aenima-page-hero.practitioner-page-hero .badge {
  border-color: rgb(var(--color-white-rgb) / 0.28);
  background: rgb(var(--color-white-rgb) / 0.09);
  color: var(--color-surface);
}

.page-header.aenima-page-hero.practitioner-page-hero h1 {
  margin-bottom: 0;
  color: var(--color-surface);
  font-size: var(--font-size-page-title-fluid, var(--font-size-page-title, 1.875rem));
  font-weight: var(--font-weight-body, 400);
  line-height: var(--line-height-title, 1.04);
}

.page-header.aenima-page-hero.practitioner-page-hero h1 strong {
  color: var(--color-secondary-muted);
  font-weight: var(--font-weight-title, 700);
}

.page-header.aenima-page-hero.practitioner-page-hero .practitioner-page-hero__identity small {
  color: var(--color-secondary-muted);
}

.page-header.aenima-page-hero.practitioner-page-hero--has-top-action > .practitioner-page-hero__heading {
  display: grid;
  flex: 1 1 100%;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: var(--ui-space-5, 20px);
  min-width: 0;
}

.practitioner-page-hero--has-top-action > .practitioner-page-hero__heading > .badge {
  grid-column: 1;
  grid-row: 1;
  justify-self: start;
}

.practitioner-page-hero--has-top-action .practitioner-page-hero__identity {
  grid-column: 1;
  grid-row: 2;
  min-width: 0;
}

.practitioner-page-hero__top-action {
  align-self: center;
  grid-column: 2;
  grid-row: 2;
  justify-self: end;
}

.page-header.aenima-page-hero.practitioner-page-hero .page-header__actions {
  align-items: center;
  justify-content: flex-end;
}

.page-header.aenima-page-hero.practitioner-page-hero .btn-ghost {
  border-color: rgb(var(--color-white-rgb) / 0.46);
  background: rgb(var(--color-white-rgb) / 0.94);
  color: var(--color-primary-strong);
}

.page-header.aenima-page-hero.practitioner-page-hero .btn-ghost:hover,
.page-header.aenima-page-hero.practitioner-page-hero .btn-ghost:focus-visible {
  border-color: rgb(var(--color-secondary-rgb) / 0.7);
  background: var(--color-surface);
  color: var(--color-primary-strong);
}

.page-header.aenima-page-hero.practitioner-page-hero .btn-primary,
.page-header.aenima-page-hero.practitioner-page-hero .btn-secondary {
  border-color: rgb(var(--color-white-rgb) / 0.46);
  background: rgb(var(--color-white-rgb) / 0.94);
  color: var(--color-primary-strong);
}

.page-header.aenima-page-hero.practitioner-page-hero .btn-primary:hover,
.page-header.aenima-page-hero.practitioner-page-hero .btn-primary:focus-visible,
.page-header.aenima-page-hero.practitioner-page-hero .btn-secondary:hover,
.page-header.aenima-page-hero.practitioner-page-hero .btn-secondary:focus-visible {
  border-color: var(--color-highlight);
  background: var(--color-surface);
  color: var(--color-primary-strong);
}

.practitioner-page-hero-intro,
.clients-page-intro {
  display: grid;
  gap: var(--ui-space-4, 16px);
  margin-top: var(--ui-space-7, 32px);
  margin-bottom: var(--ui-space-7, 32px);
}

.clients-page-intro {
  border-color: color-mix(in srgb, var(--color-secondary) 24%, var(--color-border));
  background: color-mix(in srgb, var(--color-surface) 92%, var(--color-secondary));
}

.practitioner-page-hero-intro > p,
.clients-page-intro > p {
  margin: 0;
  color: var(--color-text-soft);
  font-size: var(--font-size-body, 1rem);
  font-weight: var(--font-weight-label, 600);
}

.clients-page-intro .client-import-form {
  width: min(100%, 46rem);
}

.clients-page-intro .client-catalog-transfer {
  width: min(100%, 48rem);
}

.client-catalog-transfer { display:flex; align-items:center; flex-wrap:wrap; gap:.55rem; margin-top:.65rem; }
.client-catalog-transfer>span { flex-basis:100%; color:var(--color-text-soft); font-size:var(--font-size-table, .78rem); font-weight:var(--font-weight-label, 850); }
.client-catalog-transfer .btn { min-height:2.35rem; padding:.52rem .78rem; font-size:var(--font-size-control, .8rem); }
.client-import-form { display:flex; align-items:center; flex-wrap:wrap; gap:var(--ui-space-2, .5rem); margin:0; }
.client-import-modal__form { display:grid; gap:1rem; }
.app-confirm-modal__panel:has(> .client-import-modal__form) .app-confirm-modal__header { padding:var(--ui-space-3); border:1px solid rgb(var(--color-secondary-rgb) / .3); border-radius:var(--ui-radius-control); background:var(--color-secondary-faint); }
.app-confirm-modal__panel:has(> .client-import-modal__form) .app-confirm-modal__header h2 { color:var(--color-secondary-deep); }
.client-file-picker,.ui-file-picker { position:relative; cursor:pointer; display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-areas:"label action" "name action"; align-items:center; column-gap:var(--ui-space-2, .5rem); row-gap:.28rem; width:fit-content; max-width:100%; min-width:0; padding:.48rem .58rem; border:1px solid var(--color-border); border-radius:var(--ui-radius-control, .48rem); background:var(--color-surface); }
.client-file-picker__input,.ui-file-picker.is-enhanced .ui-file-picker__input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.ui-file-picker:not(.is-enhanced) { grid-template-columns:minmax(0,1fr); grid-template-areas:"label" "action"; }
.ui-file-picker:not(.is-enhanced) .ui-file-picker__input { grid-area:action; max-width:100%; }
.ui-file-picker:not(.is-enhanced) .ui-file-picker__button,.ui-file-picker:not(.is-enhanced) .ui-file-picker__name { display:none; }
.client-file-picker__label,.ui-file-picker__label { grid-area:label; color:var(--color-text); font-size:var(--font-size-label); font-weight:var(--font-weight-label, 600); line-height:1.2; }
.client-file-picker__button,.ui-file-picker__button { grid-area:action; align-self:center; display:inline-flex; align-items:center; justify-content:center; flex-wrap:nowrap; gap:.28rem; min-height:2.1rem; margin:0; padding:0 .68rem; border-radius:var(--ui-radius-control, .48rem); background:var(--color-primary); color:var(--color-surface); font-size:var(--font-size-control); font-weight:var(--font-weight-label, 850); line-height:1; white-space:nowrap; transition:background-color var(--ui-motion-fast, .18s) ease,transform var(--ui-motion-fast, .18s) ease; }
.client-file-picker__button .btn__icon,.ui-file-picker__button .btn__icon { flex:0 0 14px; width:14px; height:14px; }
.client-file-picker:hover .client-file-picker__button,.client-file-picker:focus-within .client-file-picker__button,.ui-file-picker:hover .ui-file-picker__button,.ui-file-picker:focus-within .ui-file-picker__button { background:var(--color-primary-strong); color:var(--color-surface); transform:translateY(-1px); }
.client-file-picker:focus-within .client-file-picker__button,.ui-file-picker:focus-within .ui-file-picker__button { outline:2px solid var(--color-primary); outline-offset:2px; }
.client-file-picker__name,.ui-file-picker__name { grid-area:name; max-width:100%; min-width:0; color:var(--color-text-soft); font-size:var(--font-size-help, .72rem); font-weight:var(--font-weight-body, 700); line-height:1.25; overflow-wrap:anywhere; white-space:normal; }
.client-file-picker__name.is-empty,.ui-file-picker__name.is-empty { color:var(--ui-danger-text); }
.client-file-picker__name.is-selected,.ui-file-picker__name.is-selected { color:var(--ui-success-text); }
.client-file-picker.field > .client-file-picker__button { display:inline-flex; align-items:center; justify-content:center; text-align:center; }
.client-file-picker--modal { display:grid; grid-template-columns:auto minmax(0,1fr); grid-template-areas:"label label" "action name"; align-items:center; gap:var(--ui-space-2); padding:var(--ui-space-3); border:1px solid rgb(var(--color-primary-rgb) / .25); border-radius:var(--ui-radius-control); background:var(--color-primary-soft); }
.client-file-picker--modal>span:first-child { grid-column:1 / -1; margin:0 0 .05rem; }
.client-file-picker--modal .client-file-picker__button { grid-column:1; grid-row:2; min-height:2rem; padding:0 .72rem; }
.client-file-picker--modal .client-file-picker__name { grid-column:2; grid-row:2; max-width:none; min-width:0; }
@container (max-width: 34rem) {
  .client-import-form { align-items:stretch; }
  .client-file-picker,.ui-file-picker { width:100%; }
}


body.has-app-confirm-modal {
  overflow: hidden;
}

.nutrition-page {
  display: grid;
  gap: 14px;
}

.nutrition-hero {
  margin-bottom: 0;
  background: var(--color-surface);
}

.nutrition-profile-card,
.nutrition-ration-card,
.nutrition-analysis-card {
  position: relative;
  overflow: hidden;
  padding: 20px 20px 18px 27px;
  border-left: 0;
}

.nutrition-profile-card::before,
.nutrition-ration-card::before,
.nutrition-analysis-card::before {
  position: absolute;
  inset: 0 auto 0 0;
  width: 7px;
  background: var(--color-identity);
  content: "";
}

.nutrition-ration-card::before {
  background: var(--color-primary);
}

.nutrition-analysis-card::before {
  background: var(--color-secondary);
}

.nutrition-profile-card::after,
.nutrition-ration-card::after,
.nutrition-analysis-card::after {
  position: absolute;
  top: 14px;
  right: 16px;
  width: 18px;
  height: 18px;
  border-top: 3px solid rgb(var(--color-identity-rgb) / 0.2);
  border-right: 3px solid rgb(var(--color-identity-rgb) / 0.2);
  border-radius: 0 8px 0 0;
  content: "";
  pointer-events: none;
}

.nutrition-section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 14px;
}

.nutrition-section-heading h2 {
  margin: 2px 0 0;
  font-size: var(--font-size-card-title, 1.25rem);
}

.nutrition-section-heading__title {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.nutrition-section-heading__actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}

.nutrition-section-index {
  width: 42px;
  height: 42px;
  display: inline-grid;
  flex: 0 0 42px;
  place-items: center;
  border-radius: 13px 13px 13px 4px;
  background: var(--color-identity);
  color: var(--color-surface);
  font-size: var(--font-size-table, 13px);
  font-weight: var(--font-weight-label, 900);
  letter-spacing: 0.05em;
  box-shadow: 4px 4px 0 var(--color-secondary-soft);
}

.nutrition-ration-card .nutrition-section-index {
  background: var(--color-primary);
}

.nutrition-analysis-card .nutrition-section-index {
  background: var(--color-secondary);
}

.nutrition-section-heading__eyebrow {
  color: var(--color-identity-strong);
  font-size: var(--font-size-caption, 10px);
  font-weight: var(--font-weight-label, 800);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.nutrition-count {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 6px 11px;
  border: 1px solid rgb(var(--color-identity-rgb) / 0.22);
  border-radius: 10px 10px 10px 4px;
  background: var(--color-identity-faint);
  color: var(--color-identity-strong);
  font-size: var(--font-size-table, 12px);
  font-weight: var(--font-weight-label, 800);
}

.nutrition-page .field {
  min-width: 0;
  margin-bottom: 0;
}

.nutrition-page .field > span {
  min-height: 30px;
  display: flex;
  align-items: flex-end;
  margin-bottom: 5px;
  color: var(--color-text-soft);
  font-size: var(--font-size-label, 11px);
  font-weight: var(--font-weight-label, 800);
  line-height: 1.25;
}

.nutrition-page .input {
  min-height: 42px;
  padding: 9px 11px;
  border-radius: var(--ui-radius-field);
  background: var(--color-surface);
}

.nutrition-page .input:focus {
  border-color: var(--color-identity);
  box-shadow: 0 0 0 3px rgb(var(--color-identity-rgb) / 0.14);
}

.nutrition-page .textarea {
  min-height: 64px;
  line-height: 1.45;
}

.nutrition-profile-grid {
  display: grid;
  grid-template-areas:
    "date meals"
    "water notes";
  grid-template-columns:
    minmax(130px, 0.75fr)
    minmax(130px, 0.75fr);
  gap: 10px;
}

.nutrition-profile-field--date {
  grid-area: date;
}

.nutrition-profile-field--source {
  grid-area: source;
}

.nutrition-profile-field--source-detail {
  grid-area: source-detail;
}

.nutrition-profile-field--meals {
  grid-area: meals;
}

.nutrition-profile-field--water {
  grid-area: water;
}

.nutrition-profile-field--notes {
  grid-area: notes;
}

.nutrition-form-actions {
  justify-content: flex-end;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed rgb(var(--color-primary-rgb) / 0.16);
}

.nutrition-form-actions .btn {
  min-width: 170px;
}

.nutrition-table-wrap {
  margin-bottom: 12px;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.12);
  border-radius: var(--radius-sm);
}

.nutrition-table {
  min-width: 860px;
}

.nutrition-table th,
.nutrition-table td {
  padding-block: 10px;
}

.nutrition-table tbody tr {
  transition: background-color 0.18s ease;
}

.nutrition-table tbody tr:hover {
  position: relative;
  z-index: 1;
  background: rgb(var(--color-identity-rgb) / 0.07);
  box-shadow: inset 4px 0 0 var(--color-identity);
}

.nutrition-category-badge {
  display: inline-flex;
  max-width: 180px;
  padding: 5px 9px;
  border-radius: 9px 9px 9px 3px;
  background: var(--color-secondary-soft);
  color: var(--color-secondary-strong);
  font-size: var(--font-size-caption, 12px);
  font-weight: var(--font-weight-label, 800);
}

.nutrition-food-name,
.nutrition-food-note {
  display: block;
}

.nutrition-food-name {
  color: var(--color-primary);
}

.nutrition-food-note {
  max-width: 280px;
  margin-top: 3px;
  overflow: hidden;
  color: var(--color-text-soft);
  font-size: var(--font-size-help, 12px);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nutrition-row-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}

.nutrition-row-actions form {
  margin: 0;
}

.nutrition-entry-edit-modal .app-confirm-modal__panel { width:min(680px,100%); }
.nutrition-entry-edit-modal .app-confirm-modal__header p { color:var(--color-text-soft); font-size:var(--font-size-body, .9rem); font-weight:var(--font-weight-label, 750); margin:4px 0 0; }
.nutrition-entry-edit-modal form { display:grid; gap:18px; margin-top:18px; }
.nutrition-entry-edit-modal__fields { display:grid; gap:14px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.nutrition-entry-edit-modal__fields .field { gap:5px; margin:0; }
.nutrition-entry-edit-modal__fields .field>span { font-size:var(--font-size-label, .8rem); font-weight:var(--font-weight-label, 750); }
.nutrition-entry-edit-modal__notes { grid-column:1 / -1; }
@media (max-width: 640px) { .nutrition-entry-edit-modal__fields { grid-template-columns:1fr; } }

.nutrition-ration-groups { display:grid; gap:14px; margin-top:14px; }
.nutrition-ration-group { border:1px solid rgb(var(--color-primary-rgb) / .19); border-radius:14px; overflow:hidden; }
.nutrition-ration-group__header { align-items:center; background:rgb(var(--color-primary-rgb) / .065); border-bottom:1px solid rgb(var(--color-primary-rgb) / .13); display:flex; gap:14px; justify-content:space-between; padding:12px 13px; }
.nutrition-ration-group__header h3 { align-items:center; color:var(--color-primary-strong); display:flex; font-size:var(--font-size-card-title, 1.04rem); font-weight:var(--font-weight-title, 900); gap:8px; letter-spacing:.01em; line-height:var(--line-height-title, 1.2); margin:0; }
.nutrition-ration-group__header h3::before { background:var(--color-highlight); border-radius:999px; content:""; display:block; flex:0 0 auto; height:22px; width:4px; }
.nutrition-ration-group__header p { color:var(--color-text-soft); font-size:var(--font-size-table, .78rem); font-weight:var(--font-weight-label, 700); margin:3px 0 0; }
.nutrition-ration-group__title-row { align-items:center; display:flex; gap:10px; }
.nutrition-ration-group__add-button { align-items:center; background:var(--color-primary); border:0; border-radius:8px; box-shadow:2px 2px 0 rgb(var(--color-highlight-rgb) / .45); color:var(--color-surface); cursor:pointer; display:inline-flex; flex:0 0 36px; font-size:var(--font-size-control, 1.55rem); font-weight:var(--font-weight-label, 500); height:36px; justify-content:center; line-height:1; padding:0 0 2px; transition:background .18s ease, transform .18s ease; width:36px; }
.nutrition-ration-group__add-button:hover { background:var(--color-primary-strong); transform:translateY(-1px); }
.nutrition-ration-group__add-button:focus-visible { outline:3px solid rgb(var(--color-highlight-rgb) / .55); outline-offset:3px; }
.nutrition-ration-group__empty { color:var(--color-text-soft); font-size:var(--font-size-table, .86rem); margin:0; padding:12px 13px; }
.nutrition-ration-group .nutrition-table-wrap { border:0; border-radius:0; margin:0; }
.nutrition-ration-group .nutrition-table th { background:var(--color-surface); }


.table-action--danger {
  border-color: rgb(var(--color-danger-rgb) / 0.34);
  background: var(--color-surface);
  color: var(--color-danger-strong);
}

.table-action--danger:hover {
  border-color: var(--color-danger-strong);
  background: var(--color-danger);
  color: var(--color-surface);
  box-shadow: 0 11px 20px rgb(var(--color-danger-rgb) / 0.2);
}

.nutrition-add-panel {
  overflow: clip;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.2);
  border-radius: 15px 15px 15px 5px;
  background: var(--color-surface);
}
.nutrition-ration-group__add { border-width:1px 0 0; border-radius:0; }
.nutrition-ration-group__add summary { padding-inline:13px 46px; }

.nutrition-add-panel summary {
  position: relative;
  padding: 12px 48px 12px 16px;
  background: rgb(var(--color-primary-rgb) / 0.055);
  color: var(--color-primary);
  cursor: pointer;
  font-weight: var(--font-weight-label, 800);
  list-style: none;
}

.nutrition-add-panel summary::-webkit-details-marker {
  display: none;
}

.nutrition-add-panel summary::after {
  position: absolute;
  top: 50%;
  right: 13px;
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  background: var(--color-primary);
  color: var(--color-surface);
  content: "+";
  box-shadow: 3px 3px 0 var(--color-secondary-soft);
  transform: translateY(-50%);
  transition: transform 0.25s ease;
}

.nutrition-add-panel[open] summary::after {
  transform: translateY(-50%) rotate(45deg);
}

.nutrition-add-panel form {
  padding: 13px;
  border-top: 1px solid rgb(var(--color-primary-rgb) / 0.1);
  background: var(--color-surface);
}

.nutrition-entry-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
  gap: 11px;
  align-items: stretch;
}

.nutrition-entry-group {
  min-width: 0;
  margin: 0;
  padding: 11px;
  border: 1px solid rgb(var(--color-identity-rgb) / 0.18);
  border-radius: 14px 14px 14px 5px;
  background: var(--color-identity-faint);
}

.nutrition-entry-group--distribution {
  border-color: rgb(var(--color-secondary-rgb) / 0.2);
  background: var(--color-accent-faint);
}

.nutrition-entry-group legend {
  padding: 0 7px 0 2px;
  color: var(--color-primary-strong);
  font-size: var(--font-size-label, 11px);
  font-weight: var(--font-weight-label, 900);
  letter-spacing: 0.025em;
}

.nutrition-entry-group legend span {
  width: 22px;
  height: 22px;
  display: inline-grid;
  margin-right: 5px;
  place-items: center;
  border-radius: 7px 7px 7px 2px;
  background: var(--color-identity);
  color: var(--color-surface);
  font-size: var(--font-size-label, 10px);
}

.nutrition-entry-group--distribution legend span {
  background: var(--color-secondary);
}

.nutrition-entry-group__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.nutrition-entry-group__grid--identity {
  grid-template-areas:
    "brand brand"
    "reference reference"
    "region region";
}

.nutrition-entry-field--brand {
  grid-area: brand;
}

.nutrition-entry-field--reference {
  grid-area: reference;
}

.nutrition-entry-selected-logo {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  min-height: 42px;
  padding: 6px 9px;
  border: 1px solid rgb(var(--color-primary-rgb) / .14);
  border-radius: 9px;
  background: rgb(var(--color-primary-rgb) / .035);
}

.nutrition-entry-selected-logo[hidden] {
  display: none;
}

.nutrition-entry-selected-logo img {
  display: block;
  width: auto;
  max-width: 120px;
  height: 28px;
  object-fit: contain;
  object-position: left center;
}

.nutrition-entry-category-fields {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nutrition-entry-category-field {
  min-width: 0;
  transition: opacity .2s ease;
}

.nutrition-entry-category-field--locked {
  opacity: .48;
}

.nutrition-entry-field--region {
  grid-area: region;
}

.nutrition-entry-field--category {
  grid-area: category;
}

.nutrition-entry-field--name {
  grid-area: name;
}

.nutrition-entry-field--brand {
  grid-area: brand;
}

.nutrition-entry-field--reference {
  grid-area: reference;
}

.nutrition-entry-field--barcode {
  grid-area: barcode;
}

.nutrition-entry-region {
  color: var(--color-identity);
  display: block;
  font-size: var(--font-size-table, 11px);
  font-weight: var(--font-weight-label, 800);
  margin-top: 4px;
}

.nutrition-entry-group__grid--distribution {
  grid-template-columns: minmax(120px, .75fr) minmax(175px, 1.25fr);
  grid-template-areas:
    "quantity unit"
    "frequency-count period"
    "frequency-note frequency-note"
    "distribution-notes distribution-notes";
}

.nutrition-entry-field--quantity {
  grid-area: quantity;
}

.nutrition-entry-field--unit {
  grid-area: unit;
}

.nutrition-entry-field--frequency-count {
  grid-area: frequency-count;
}

.nutrition-entry-field--period {
  grid-area: period;
}

.nutrition-entry-field--frequency-note {
  grid-area: frequency-note;
}

.nutrition-entry-field--distribution-notes {
  grid-area: distribution-notes;
}

.nutrition-entry-group .field > span {
  min-height: 27px;
}

.nutrition-entry-group .input {
  min-width: 0;
  width: 100%;
}

.nutrition-analysis-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
  padding: 12px 14px;
  border-radius: var(--radius-sm);
  background: var(--color-identity-faint);
}

.nutrition-analysis-summary strong {
  margin-right: auto;
  color: var(--color-primary);
}

.nutrition-analysis-summary span {
  color: var(--color-text-soft);
  font-size: var(--font-size-control, 13px);
}

.nutrition-analysis-meta-grid {
  display: grid;
  grid-template-areas:
    "name name basis"
    "quantity unit source"
    "source-name source-name sampled"
    "valid-from valid-until empty";
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
  padding: 12px;
  border: 1px solid rgb(var(--color-primary-rgb) / 0.12);
  border-radius: 14px 14px 14px 5px;
  background: rgb(var(--color-primary-rgb) / 0.035);
}

.nutrition-analysis-meta-field--name {
  grid-area: name;
}

.nutrition-analysis-meta-field--basis {
  grid-area: basis;
}

.nutrition-analysis-meta-field--quantity {
  grid-area: quantity;
}

.nutrition-analysis-meta-field--unit {
  grid-area: unit;
}

.nutrition-analysis-meta-field--source {
  grid-area: source;
}

.nutrition-analysis-meta-field--source-name {
  grid-area: source-name;
}

.nutrition-analysis-meta-field--sampled {
  grid-area: sampled;
}

.nutrition-analysis-meta-field--valid-from {
  grid-area: valid-from;
}

.nutrition-analysis-meta-field--valid-until {
  grid-area: valid-until;
}

.nutrition-nutrient-group {
  margin: 12px 0 0;
  padding: 11px;
  border: 1px solid rgb(var(--color-text-rgb) / 0.09);
  border-radius: 13px 13px 13px 4px;
  background: var(--color-surface);
}

.nutrition-nutrient-group legend {
  padding: 0 8px;
  color: var(--color-primary);
  font-size: var(--font-size-label, 14px);
  font-weight: var(--font-weight-label, 800);
}

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

.nutrition-nutrient-field {
  display: grid;
  grid-template-columns: minmax(8.5rem, 1fr) minmax(5.2rem, .5fr) minmax(7.2rem, .72fr);
  gap: 7px;
  align-items: center;
  min-width: 0;
  padding: 5px 6px 5px 9px;
  border-radius: 9px 9px 9px 3px;
  background: var(--color-identity-faint);
}

.nutrition-nutrient-field > span {
  overflow: hidden;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 12px);
  font-weight: var(--font-weight-label, 700);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nutrition-nutrient-field .input {
  min-width: 0;
  min-height: 36px;
  padding: 9px 10px;
}

.nutrition-analysis-notes {
  margin-top: 16px;
}

@media (max-width: 1200px) {
  .nutrition-entry-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .nutrition-section-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .nutrition-profile-grid {
    grid-template-areas:
      "date source"
      "source-detail meals"
      "water water"
      "notes notes";
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nutrition-analysis-meta-grid {
    grid-template-areas:
      "name name"
      "basis source"
      "quantity unit"
      "source-name source-name"
      "sampled valid-from"
      "valid-until valid-until";
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nutrition-nutrient-grid {
    grid-template-columns: 1fr;
  }

  .nutrition-profile-card,
  .nutrition-ration-card,
  .nutrition-analysis-card {
    padding: 18px 16px 16px 22px;
  }

  .nutrition-nutrient-field {
    grid-template-columns: minmax(8rem, 1fr) minmax(5rem, .55fr) minmax(7rem, .75fr);
  }
}

@media (max-width: 520px) {
  .nutrition-entry-category-fields {
    grid-template-columns: 1fr;
  }

  .nutrition-profile-grid {
    grid-template-areas:
      "date"
      "source"
      "source-detail"
      "meals"
      "water"
      "notes";
    grid-template-columns: 1fr;
  }

  .nutrition-analysis-meta-grid {
    grid-template-areas:
      "name"
      "basis"
      "quantity"
      "unit"
      "source"
      "source-name"
      "sampled"
      "valid-from"
      "valid-until";
    grid-template-columns: 1fr;
  }

  .nutrition-entry-group__grid--identity,
  .nutrition-entry-group__grid--distribution {
    grid-template-areas: none;
    grid-template-columns: 1fr;
  }

  .nutrition-entry-group__grid .field {
    grid-area: auto;
  }

  .nutrition-form-actions .btn {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 520px) {
  .app-confirm-modal__actions {
    grid-auto-flow: row;
    width: 100%;
  }

  .app-confirm-modal__actions .btn {
    width: 100%;
  }
}

/* Catalogue alimentaire centralise */
.nutrition-catalog-page {
  --nutrition-accent: var(--color-identity);
  --nutrition-ink: var(--color-primary);
  container-name: nutrition-catalog;
  container-type: inline-size;
  display: grid;
  gap: 18px;
}

.nutrition-catalog-hero {
  overflow: hidden;
  position: relative;
}

.nutrition-catalog-hero::after {
  background: linear-gradient(135deg, transparent 25%, color-mix(in srgb, var(--color-identity) 12%, transparent));
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}

.nutrition-catalog-hero__mark {
  align-items: center;
  background: color-mix(in srgb, var(--color-surface) 82%, transparent);
  border: 1px solid color-mix(in srgb, var(--color-identity) 34%, transparent);
  border-radius: 22px 6px 22px 6px;
  box-shadow: 10px 10px 0 color-mix(in srgb, var(--color-identity) 16%, transparent);
  color: var(--color-primary);
  display: flex;
  flex-direction: column;
  min-width: 106px;
  padding: 13px 18px;
  position: relative;
  z-index: 1;
}

.nutrition-catalog-hero__mark span {
  font-family: var(--font-heading);
  font-size: var(--font-size-body, 32px);
  font-weight: var(--font-weight-label, 800);
  line-height: 1;
}

.nutrition-catalog-hero__mark small {
  font-size: var(--font-size-help, 9px);
  font-weight: var(--font-weight-label, 800);
  letter-spacing: .13em;
  margin-top: 4px;
}

.nutrition-catalog-command {
  align-items: center;
  background: linear-gradient(110deg, var(--color-surface), color-mix(in srgb, var(--color-identity-faint) 58%, var(--color-surface)));
  display: flex;
  gap: 24px;
  justify-content: space-between;
  padding: 14px 16px;
}

.nutrition-catalog-species {
  align-items: end;
  display: flex;
  gap: 9px;
}

.nutrition-catalog-species--loading {
  opacity: .72;
  pointer-events: none;
}

.nutrition-catalog-species label > span {
  color: var(--color-text-soft);
  display: block;
  font-size: var(--font-size-label, 11px);
  font-weight: var(--font-weight-label, 800);
  letter-spacing: .06em;
  margin-bottom: 5px;
  text-transform: uppercase;
}

.nutrition-catalog-species .input {
  min-width: 250px;
}

.nutrition-catalog-command__actions {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}

.nutrition-catalog-tabs {
  background: color-mix(in srgb, var(--color-primary) 7%, var(--color-surface));
  border: 1px solid var(--color-border);
  border-radius: 14px;
  display: grid;
  gap: 5px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  padding: 5px;
}

.nutrition-catalog-tab {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 10px;
  color: var(--color-text-soft);
  cursor: pointer;
  display: flex;
  font: inherit;
  font-size: var(--font-size-table, 13px);
  font-weight: var(--font-weight-label, 750);
  gap: 8px;
  justify-content: center;
  min-height: 42px;
  padding: 7px 10px;
  transition: background-color .25s ease, box-shadow .25s ease, color .25s ease, transform .25s ease;
}

.nutrition-catalog-tab span {
  color: color-mix(in srgb, currentColor 68%, transparent);
  font-size: var(--font-size-table, 10px);
  letter-spacing: .08em;
}

.nutrition-catalog-tab:hover {
  background: color-mix(in srgb, var(--color-surface) 78%, transparent);
  color: var(--color-primary);
  transform: translateY(-1px);
}

.nutrition-catalog-tab--active {
  background: var(--color-primary);
  box-shadow: 0 7px 17px color-mix(in srgb, var(--color-primary) 20%, transparent);
  color: var(--color-surface);
}

.nutrition-catalog-tab--create {
  background: color-mix(in srgb, var(--color-secondary) 13%, var(--color-surface));
  color: var(--color-secondary-strong);
  min-height: 48px;
}

.nutrition-catalog-tab--create > span {
  align-items: center;
  background: var(--color-secondary);
  border-radius: 9px;
  color: var(--color-surface);
  display: inline-flex;
  font-size: var(--font-size-body, 26px);
  font-weight: var(--font-weight-body, 450);
  height: 28px;
  justify-content: center;
  letter-spacing: 0;
  line-height: 1;
  width: 28px;
}

.nutrition-catalog-tab--create:hover,
.nutrition-catalog-tab--create:focus-visible {
  background: color-mix(in srgb, var(--color-secondary) 22%, var(--color-surface));
  color: var(--color-secondary-deep);
}

.nutrition-catalog-tab--create.nutrition-catalog-tab--active,
.nutrition-catalog-tab--create.nutrition-catalog-tab--active:hover,
.nutrition-catalog-tab--create.nutrition-catalog-tab--active:focus-visible {
  background: var(--color-primary);
  color: var(--color-surface);
}

.nutrition-catalog-tab--create.nutrition-catalog-tab--active > span {
  background: var(--color-surface);
  color: var(--color-primary);
}

.nutrition-catalog-panel {
  display: grid;
  gap: 13px;
  min-width: 0;
}

.nutrition-catalog-panel[hidden] {
  display: none;
}

.nutrition-catalog-panel__heading,
.nutrition-catalog-subheading {
  align-items: end;
  display: flex;
  gap: 14px;
  justify-content: space-between;
}

.nutrition-catalog-panel__heading h2,
.nutrition-catalog-panel__heading h3,
.nutrition-catalog-subheading h3 {
  color: var(--color-primary);
  margin: 2px 0 0;
}

.nutrition-composition-title {
  align-items: center;
  display: flex;
  gap: 13px;
}

.nutrition-composition-title__logo {
  flex-basis: 72px;
  height: 72px;
  width: 72px;
}

.nutrition-catalog-panel__actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}

.nutrition-catalog-return {
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-strong));
  border-color: var(--color-primary-strong);
  box-shadow: 0 10px 22px rgb(var(--color-primary-rgb) / 0.26);
  color: var(--color-surface);
}

.nutrition-catalog-return::before {
  content: "←";
  font-size: 1.08em;
  font-weight: 900;
  line-height: 1;
}

.nutrition-catalog-return:hover,
.nutrition-catalog-return:focus-visible {
  background: linear-gradient(135deg, var(--color-primary-strong), var(--color-primary));
  border-color: var(--color-primary-strong);
  box-shadow: 0 14px 28px rgb(var(--color-primary-rgb) / 0.34);
  color: var(--color-surface);
}

.nutrition-catalog-edit-food {
  background: var(--color-identity-strong);
  border-color: var(--color-identity-strong);
  box-shadow: 0 9px 20px rgb(var(--color-identity-rgb) / 0.24);
  color: var(--color-surface);
}

.nutrition-catalog-edit-food:hover,
.nutrition-catalog-edit-food:focus-visible {
  background: var(--color-identity);
  border-color: var(--color-identity-strong);
  box-shadow: 0 13px 26px rgb(var(--color-identity-rgb) / 0.32);
  color: var(--color-surface);
}

.nutrition-count,
.nutrition-format-badges span {
  background: var(--color-identity-faint);
  border: 1px solid color-mix(in srgb, var(--color-identity) 25%, transparent);
  border-radius: 999px;
  color: var(--color-primary);
  font-size: var(--font-size-caption, 11px);
  font-weight: var(--font-weight-label, 800);
  padding: 6px 10px;
}

.nutrition-catalog-workspace {
  align-items: start;
  display: grid;
  gap: 15px;
  grid-template-columns: minmax(310px, .72fr) minmax(560px, 1.5fr);
  min-width: 0;
}

.nutrition-catalog-workspace--brands {
  grid-template-columns: minmax(0, 1fr);
}

.nutrition-catalog-workspace--foods {
  grid-template-columns: minmax(0, 1fr);
}

.nutrition-food-source-tabs {
  align-items: center;
  background: color-mix(in srgb, var(--color-surface) 90%, var(--color-primary) 10%);
  border: 1px solid color-mix(in srgb, var(--color-primary) 18%, var(--color-border));
  border-radius: 999px;
  box-shadow: 0 8px 22px rgb(46 37 28 / 7%);
  display: inline-flex;
  gap: .35rem;
  max-width: 100%;
  padding: .28rem;
  width: fit-content;
}

.nutrition-food-source-tab {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 999px;
  color: var(--color-text-soft);
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-weight: var(--font-weight-label, 750);
  gap: .45rem;
  padding: .5rem .82rem;
  transition: color .2s ease, background-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.nutrition-food-source-tab span {
  background: color-mix(in srgb, currentColor 10%, transparent);
  border-radius: 50%;
  color: inherit;
  display: grid;
  font-size: var(--font-size-table, .72rem);
  height: 1.35rem;
  min-width: 1.35rem;
  place-items: center;
}

.nutrition-food-source-tab:hover {
  color: var(--color-primary);
  transform: translateY(-1px);
}

.nutrition-food-source-tab--active {
  background: var(--color-primary);
  box-shadow: 0 7px 14px rgb(98 70 35 / 19%);
  color: var(--color-surface);
}

.nutrition-food-source-tab--active:hover,
.nutrition-food-source-tab--active:focus-visible {
  color: var(--color-surface);
}

.nutrition-natural-list-card {
  overflow: hidden;
}

.nutrition-natural-list-card__intro {
  align-items: end;
  background: color-mix(in srgb, var(--color-surface-muted) 72%, #dce7ca 28%);
  border-bottom: 1px solid color-mix(in srgb, var(--color-primary) 14%, var(--color-border));
  display: grid;
  gap: 1.5rem;
  grid-template-columns: minmax(0, .8fr) minmax(18rem, 1.2fr);
  padding: 1.15rem 1.2rem 1rem;
}

.nutrition-natural-list-card__intro h3 {
  margin: .1rem 0 0;
}

.nutrition-natural-list-card__intro p {
  color: var(--color-text-soft);
  font-size: var(--font-size-body, .88rem);
  line-height: 1.55;
  margin: 0;
}

.nutrition-natural-food-list {
  display: grid;
}

.nutrition-natural-food-row {
  align-items: center;
  border-bottom: 1px solid color-mix(in srgb, var(--color-primary) 9%, var(--color-border));
  display: grid;
  gap: 1rem;
  grid-template-columns: minmax(13rem, 1.3fr) minmax(9rem, .55fr) auto;
  min-width: 0;
  padding: .9rem 1.15rem;
  transition: background-color .2s ease, transform .2s ease;
}

.nutrition-natural-food-row:last-child {
  border-bottom: 0;
}

.nutrition-natural-food-row:hover {
  background: color-mix(in srgb, #dce7ca 25%, var(--color-surface));
  transform: translateX(.16rem);
}

.nutrition-natural-food-row__open {
  align-items: center;
  color: inherit;
  display: grid;
  gap: .82rem;
  grid-template-columns: auto minmax(0, 1fr);
  min-width: 0;
  text-decoration: none;
}

.nutrition-natural-food-row__open:hover,
.nutrition-natural-food-row__open:focus-visible {
  text-decoration: none;
}

.nutrition-natural-food-row__open:hover .nutrition-natural-food-row__identity strong {
  color: var(--color-primary);
}

.nutrition-natural-food-row__open:focus-visible {
  border-radius: var(--radius-sm);
  outline: 3px solid var(--color-focus);
  outline-offset: 4px;
}

.nutrition-natural-food-row__mark {
  background: #567743;
  border-radius: 35% 65% 48% 52%;
  box-shadow: 0 7px 14px rgb(67 102 48 / 22%);
  color: #f5f9eb;
  display: grid;
  font-size: var(--font-size-body, 1.35rem);
  font-weight: var(--font-weight-label, 800);
  height: 2.35rem;
  place-items: center;
  width: 2.35rem;
}

.nutrition-natural-food-row__identity,
.nutrition-natural-food-row__profiles {
  min-width: 0;
}

.nutrition-natural-food-row__identity strong,
.nutrition-natural-food-row__identity small {
  display: block;
}

.nutrition-natural-food-row__regions {
  display: flex;
  flex-wrap: wrap;
  gap: .32rem;
  margin-top: .52rem;
}

.nutrition-natural-food-row__regions span {
  background: color-mix(in srgb, #dce7ca 68%, var(--color-surface));
  border: 1px solid color-mix(in srgb, #567743 22%, var(--color-border));
  border-radius: 999px;
  color: #426033;
  font-size: var(--font-size-table, .68rem);
  font-weight: var(--font-weight-label, 760);
  line-height: 1.2;
  padding: .25rem .48rem;
}

.nutrition-natural-food-row__identity strong {
  color: var(--color-text);
}

.nutrition-natural-food-row__identity small {
  color: var(--color-text-soft);
  font-size: var(--font-size-help, .79rem);
  margin-top: .2rem;
}

.nutrition-natural-food-row__profiles {
  align-items: center;
  color: var(--color-text-soft);
  display: inline-flex;
  font-size: var(--font-size-table, .72rem);
  gap: .52rem;
  line-height: 1.25;
}

.nutrition-natural-food-row__profiles strong {
  background: #e8f0dd;
  border-radius: 50%;
  color: #426033;
  display: grid;
  flex: 0 0 auto;
  font-size: var(--font-size-table, .85rem);
  height: 2rem;
  place-items: center;
  width: 2rem;
}

.nutrition-catalog-editor,
.nutrition-catalog-list-card,
.nutrition-composition-editor,
.nutrition-exchange-card,
.nutrition-template-card {
  min-width: 0;
  padding: 17px;
}

.nutrition-catalog-editor {
  border-top: 4px solid var(--color-identity);
  position: sticky;
  top: 14px;
}

.nutrition-catalog-editor__heading {
  align-items: center;
  display: flex;
  gap: 11px;
  margin-bottom: 14px;
}

.nutrition-catalog-editor__heading small {
  color: var(--color-text-soft);
  display: block;
  font-size: var(--font-size-help, 10px);
  font-weight: var(--font-weight-label, 800);
  letter-spacing: .09em;
  text-transform: uppercase;
}

.nutrition-catalog-editor__heading h3 {
  color: var(--color-primary);
  font-size: var(--font-size-card-title, 18px);
  margin: 1px 0 0;
}

.nutrition-catalog-form-grid,
.nutrition-composition-meta {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nutrition-catalog-form-grid .field,
.nutrition-composition-meta .field {
  min-width: 0;
}

.nutrition-catalog-form-grid--foods {
  align-items: start;
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

.nutrition-catalog-field--span-3 {
  grid-column: span 3;
}

.nutrition-catalog-field--span-4 {
  grid-column: span 4;
}

.nutrition-catalog-field--span-5 {
  grid-column: span 5;
}

.nutrition-catalog-field--span-6 {
  grid-column: span 6;
}

.nutrition-catalog-field--wide {
  grid-column: 1 / -1;
}

.nutrition-catalog-form-actions {
  border-top: 1px solid var(--color-border);
  margin-top: 14px;
  padding-top: 12px;
}

.nutrition-catalog-table {
  font-size: var(--font-size-table, 12px);
  table-layout: fixed;
  width: 100%;
}

.nutrition-catalog-table th {
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 10px);
  letter-spacing: .05em;
  text-transform: uppercase;
}

.nutrition-sort-button {
  align-items: center;
  appearance: none;
  background: transparent;
  border: 0;
  color: inherit;
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  gap: 5px;
  letter-spacing: inherit;
  margin: 0;
  padding: 3px 1px;
  text-align: left;
  text-transform: inherit;
  transition: color .2s ease;
}

.nutrition-sort-button:hover,
.nutrition-sort-button:focus-visible,
.nutrition-sort-button[aria-sort='ascending'],
.nutrition-sort-button[aria-sort='descending'] {
  color: var(--color-primary);
}

.nutrition-sort-button:focus-visible {
  border-radius: 5px;
  outline: 2px solid color-mix(in srgb, var(--color-secondary) 65%, transparent);
  outline-offset: 2px;
}

.nutrition-sort-button__icon {
  align-items: center;
  background: color-mix(in srgb, var(--color-identity-faint) 70%, var(--color-surface));
  border: 1px solid color-mix(in srgb, var(--color-identity) 25%, var(--color-border));
  border-radius: 5px;
  color: var(--color-identity);
  display: inline-flex;
  font-size: 12px;
  font-weight: 800;
  height: 17px;
  justify-content: center;
  letter-spacing: 0;
  line-height: 1;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
  width: 17px;
}

.nutrition-sort-button:hover .nutrition-sort-button__icon,
.nutrition-sort-button:focus-visible .nutrition-sort-button__icon,
.nutrition-sort-button[aria-sort='ascending'] .nutrition-sort-button__icon,
.nutrition-sort-button[aria-sort='descending'] .nutrition-sort-button__icon {
  background: var(--color-identity);
  border-color: var(--color-identity);
  color: var(--color-surface);
  transform: translateY(-1px);
}

.nutrition-sort-button--heading {
  margin-left: 5px;
  vertical-align: middle;
}

.nutrition-catalog-table td,
.nutrition-catalog-table th {
  overflow-wrap: anywhere;
  padding: 10px 8px;
  vertical-align: middle;
}

.nutrition-catalog-table tbody tr {
  transition: background-color .25s ease, transform .25s ease;
}

.nutrition-catalog-table tbody tr:hover {
  background: color-mix(in srgb, var(--color-identity-faint) 66%, transparent);
}

.nutrition-catalog-add-button {
  align-items: center;
  box-shadow: 0 10px 20px color-mix(in srgb, var(--color-primary) 20%, transparent);
  font-size: var(--font-size-control, 14px);
  gap: 9px;
  min-height: 46px;
  padding: 10px 17px;
}

.nutrition-catalog-add-button > span {
  font-size: var(--font-size-control, 24px);
  font-weight: var(--font-weight-body, 400);
  line-height: .75;
}

.nutrition-catalog-exchange-button {
  align-items: center;
  background: color-mix(in srgb, var(--color-identity-faint) 74%, var(--color-surface));
  border: 1px solid color-mix(in srgb, var(--color-identity) 34%, var(--color-border));
  border-radius: 12px 5px 12px 5px;
  box-shadow: 0 6px 13px color-mix(in srgb, var(--color-primary) 10%, transparent);
  color: var(--color-primary);
  cursor: pointer;
  display: inline-flex;
  flex: 0 0 42px;
  font: inherit;
  height: 42px;
  justify-content: center;
  padding: 0;
  transition: background-color .2s ease, box-shadow .2s ease, color .2s ease, transform .2s ease;
  width: 42px;
}

.nutrition-catalog-exchange-button svg {
  fill: none;
  height: 21px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.9;
  width: 21px;
}

.nutrition-catalog-exchange-button:hover,
.nutrition-catalog-exchange-button:focus-visible {
  background: var(--color-identity);
  box-shadow: 0 9px 18px color-mix(in srgb, var(--color-primary) 22%, transparent);
  color: var(--color-surface);
  transform: translateY(-1px);
}

.nutrition-catalog-exchange-button:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--color-secondary) 70%, transparent);
  outline-offset: 2px;
}

.nutrition-catalog-foods-wrap {
  margin: 0 -2px -6px;
  padding: 0 2px 6px;
}

.table.nutrition-catalog-foods-table {
  table-layout: fixed;
}

.nutrition-catalog-foods-table th:first-child,
.nutrition-catalog-foods-table td:first-child {
  width: 31%;
}

.nutrition-catalog-foods-table th:nth-child(2),
.nutrition-catalog-foods-table td:nth-child(2) {
  width: 17%;
}

.nutrition-catalog-foods-table th:nth-child(3),
.nutrition-catalog-foods-table td:nth-child(3) {
  width: 25%;
}

.nutrition-catalog-foods-table th:last-child,
.nutrition-catalog-foods-table td:last-child {
  width: 27%;
}

.nutrition-catalog-foods-table .table-actions {
  flex-wrap: wrap;
  justify-content: flex-start;
  width: 100%;
}

.nutrition-catalog-foods-table .table-action {
  white-space: nowrap;
}

.nutrition-food-inline-editor {
  background: var(--color-surface);
  border: 1px solid color-mix(in srgb, var(--color-identity) 30%, var(--color-border));
  border-radius: 18px 6px 18px 6px;
  box-shadow: 0 12px 26px color-mix(in srgb, var(--color-primary) 9%, transparent);
  margin-top: 18px;
  overflow: hidden;
  padding: 0;
}

.nutrition-food-inline-editor__header {
  align-items: flex-start;
  background: linear-gradient(110deg, color-mix(in srgb, var(--color-identity-faint) 86%, var(--color-surface)), color-mix(in srgb, var(--color-secondary) 9%, var(--color-surface)));
  border-bottom: 1px solid color-mix(in srgb, var(--color-identity) 18%, var(--color-border));
  display: flex;
  gap: 16px;
  justify-content: space-between;
  margin: 0;
  padding: 13px 18px 12px;
}

.nutrition-food-inline-editor__header h4 {
  color: var(--color-primary);
  font-size: var(--font-size-subtitle, 1.05rem);
  margin: 2px 0 3px;
}

.nutrition-food-inline-editor__header p {
  color: var(--color-text-soft);
  font-size: var(--font-size-table, .82rem);
  margin: 0;
}

.nutrition-food-inline-editor .nutrition-catalog-form-grid {
  align-items: end;
  background: linear-gradient(180deg, color-mix(in srgb, var(--color-identity-faint) 22%, transparent), transparent 68%);
  padding: 12px 18px 16px;
}

.nutrition-factory-food-summary {
  background: color-mix(in srgb, var(--color-surface) 78%, var(--color-identity-faint));
  border: 1px solid color-mix(in srgb, var(--color-identity) 20%, var(--color-border));
  border-radius: 11px 4px 11px 4px;
  display: grid;
  gap: 0;
  grid-column: 1 / -1;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  overflow: hidden;
}

.nutrition-factory-food-summary > div {
  border-right: 1px solid color-mix(in srgb, var(--color-identity) 14%, var(--color-border));
  border-top: 1px solid color-mix(in srgb, var(--color-identity) 14%, var(--color-border));
  min-width: 0;
  padding: 8px 10px;
}

.nutrition-factory-food-summary > div:nth-child(-n + 3) {
  border-top: 0;
}

.nutrition-factory-food-summary > div:nth-child(3n) {
  border-right: 0;
}

.nutrition-factory-food-summary dt {
  color: var(--color-text-soft);
  font-size: var(--font-size-control, .66rem);
  font-weight: var(--font-weight-label, 800);
  letter-spacing: .04em;
  margin: 0 0 3px;
  text-transform: uppercase;
}

.nutrition-factory-food-summary dd {
  color: var(--color-primary);
  font-size: var(--font-size-control, .78rem);
  font-weight: var(--font-weight-label, 750);
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nutrition-factory-food-summary a {
  color: var(--color-secondary-strong);
  text-decoration: none;
}

.nutrition-factory-food-summary a:hover,
.nutrition-factory-food-summary a:focus-visible {
  color: var(--color-primary);
}

.nutrition-composition-form {
  background: var(--color-surface);
  border: 1px solid color-mix(in srgb, var(--color-secondary) 34%, var(--color-border));
  border-radius: 18px 6px 18px 6px;
  box-shadow: 0 12px 26px color-mix(in srgb, var(--color-primary) 8%, transparent);
  margin-top: 18px;
  padding: 16px;
}

.nutrition-composition-form__header {
  align-items: flex-start;
  background: linear-gradient(105deg, color-mix(in srgb, var(--color-secondary) 15%, var(--color-surface)), color-mix(in srgb, var(--color-identity-faint) 42%, var(--color-surface)));
  border-bottom: 1px solid color-mix(in srgb, var(--color-secondary) 22%, var(--color-border));
  display: flex;
  gap: 14px;
  justify-content: space-between;
  margin: -16px -16px 12px;
  padding: 14px 18px 13px;
}

.nutrition-composition-form__header h4 {
  color: var(--color-primary);
  font-size: var(--font-size-subtitle, 1.05rem);
  margin: 2px 0 3px;
}

.nutrition-composition-form__header p {
  color: var(--color-text-soft);
  font-size: var(--font-size-table, .82rem);
  margin: 0;
}

.nutrition-composition-form__mark {
  background: color-mix(in srgb, var(--color-secondary) 13%, var(--color-surface));
  border: 1px solid color-mix(in srgb, var(--color-secondary) 35%, var(--color-border));
  border-radius: 999px;
  color: var(--color-secondary-strong);
  font-size: var(--font-size-table, .69rem);
  font-weight: var(--font-weight-label, 850);
  letter-spacing: .035em;
  padding: 5px 8px;
  white-space: nowrap;
}

.nutrition-composition-form .nutrition-composition-meta {
  border: 1px solid color-mix(in srgb, var(--color-identity) 17%, var(--color-border));
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 0;
  padding: 11px;
}

.nutrition-composition-form .nutrition-composition-meta > :first-child {
  grid-column: span 2;
}

.nutrition-composition-form .nutrition-composition-meta > .nutrition-catalog-field--wide {
  grid-column: 1 / -1;
}

.nutrition-composition-form .nutrition-composition-meta--readonly {
  align-items: stretch;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.nutrition-composition-meta--readonly > div {
  background: color-mix(in srgb, var(--color-surface) 84%, var(--color-identity-faint));
  border-left: 3px solid color-mix(in srgb, var(--color-secondary) 55%, var(--color-border));
  border-radius: 7px 3px 7px 3px;
  min-width: 0;
  padding: 8px 10px;
}

.nutrition-composition-meta--readonly span {
  color: var(--color-text-soft);
  display: block;
  font-size: var(--font-size-table, .66rem);
  font-weight: var(--font-weight-label, 800);
  letter-spacing: .04em;
  margin-bottom: 3px;
  text-transform: uppercase;
}

.nutrition-composition-meta--readonly strong {
  color: var(--color-primary);
  display: block;
  font-size: var(--font-size-table, .8rem);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nutrition-composition-form .nutrition-composition-values {
  gap: 8px;
  margin-top: 10px;
}

.nutrition-composition-form .nutrition-composition-values fieldset {
  box-shadow: 0 4px 12px color-mix(in srgb, var(--color-primary) 5%, transparent);
  padding: 9px;
}

.nutrition-composition-form .nutrition-composition-values legend {
  font-size: var(--font-size-label, .76rem);
}

.nutrition-composition-form .nutrition-composition-values fieldset label {
  margin-bottom: 5px;
}

.nutrition-composition-form .nutrition-composition-values fieldset label > span {
  font-size: var(--font-size-label, .75rem);
  font-weight: var(--font-weight-label, 750);
}

.nutrition-composition-form .nutrition-catalog-form-actions {
  align-items: center;
  display: flex;
  justify-content: flex-end;
  margin-top: 12px;
  padding-top: 8px;
}

.nutrition-system-composition__actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.nutrition-catalog-foods-table.clients-table tbody tr:nth-child(odd) td,
.nutrition-catalog-foods-table.clients-table tbody tr:nth-child(even) td {
  background: color-mix(in srgb, var(--color-surface) 91%, var(--color-identity-faint));
}

.nutrition-catalog-foods-table.clients-table tbody tr td:first-child {
  border-left: 3px solid color-mix(in srgb, var(--color-identity) 55%, transparent);
}

.nutrition-catalog-foods-table.clients-table tbody tr:hover td {
  background: color-mix(in srgb, var(--color-identity-faint) 72%, var(--color-surface));
}

.nutrition-catalog-foods-table.clients-table tbody tr:hover td:first-child {
  border-left-color: var(--color-secondary);
}

.nutrition-food-identity {
  gap: 10px;
  min-width: 0;
}

.nutrition-food-identity--link {
  border-radius: 9px;
  color: inherit;
  margin: -5px -4px;
  padding: 5px 4px;
  text-decoration: none;
  transition: background-color .2s ease, transform .2s ease;
}

.nutrition-food-identity--link:hover {
  background: color-mix(in srgb, var(--color-identity-faint) 68%, var(--color-surface));
  transform: translateX(2px);
}

.nutrition-food-identity--link:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--color-secondary) 68%, transparent);
  outline-offset: 2px;
}

.nutrition-food-identity > div,
.nutrition-food-brand {
  min-width: 0;
}

.nutrition-food-identity strong,
.nutrition-food-brand strong {
  color: var(--color-primary);
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nutrition-food-identity small,
.nutrition-food-brand small {
  color: var(--color-text-soft);
  display: block;
  font-size: var(--font-size-help, 11px);
  margin-top: 3px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nutrition-food-species {
  align-items: center;
  background: color-mix(in srgb, var(--color-secondary) 12%, var(--color-surface));
  border: 1px solid color-mix(in srgb, var(--color-secondary) 32%, var(--color-border));
  border-radius: 999px;
  color: var(--color-secondary-deep);
  display: inline-flex;
  font-size: var(--font-size-table, .68rem);
  font-weight: var(--font-weight-label, 780);
  line-height: 1.2;
  margin-top: .32rem;
  max-width: 100%;
  padding: .22rem .46rem;
  white-space: normal;
}

.nutrition-brand-identity {
  align-items: center;
  background: var(--color-surface);
  border: 1px solid color-mix(in srgb, var(--color-identity) 32%, var(--color-border));
  border-radius: 11px 4px 11px 4px;
  box-shadow: 0 6px 14px rgb(var(--color-primary-rgb) / 0.09);
  display: inline-flex;
  flex: 0 0 38px;
  height: 38px;
  justify-content: center;
  overflow: hidden;
  position: relative;
  width: 38px;
}

/* Certains fabricants (notamment Hilton Herbs) publient un logo blanc.
   Un fond de contraste permet de conserver le logo lisible sans modifier
   l'image distante ni afficher un carré blanc. */
.nutrition-brand-identity--light-logo {
  background: #17324d;
  border-color: #17324d;
  box-shadow: 0 6px 14px rgb(23 50 77 / 0.25);
}

.nutrition-brand-identity__logo {
  display: block;
  height: 100%;
  object-fit: contain;
  padding: 4px;
  position: relative;
  width: 100%;
  z-index: 1;
}

.nutrition-brand-identity__fallback {
  align-items: center;
  background: color-mix(in srgb, var(--color-identity) 20%, var(--color-surface));
  color: var(--color-primary);
  display: none;
  font-size: var(--font-size-table, .82rem);
  font-weight: var(--font-weight-label, 850);
  inset: 0;
  justify-content: center;
  position: absolute;
}

.nutrition-brand-identity__fallback--visible {
  display: flex;
}

.nutrition-food-identity__avatar {
  flex: 0 0 auto;
}

.nutrition-food-brand {
  align-items: center;
  display: grid;
  gap: 5px;
  grid-template-columns: minmax(0, 1fr) auto;
}

.nutrition-food-brand small {
  grid-column: 1 / -1;
}

.nutrition-food-modal {
  align-items: center;
  background: color-mix(in srgb, var(--color-primary) 46%, transparent);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: 22px;
  position: fixed;
  z-index: 120;
}

.nutrition-food-modal[hidden] {
  display: none;
}

.nutrition-food-modal__panel {
  background: var(--color-surface);
  border: 1px solid color-mix(in srgb, var(--color-identity) 35%, var(--color-border));
  border-radius: 22px;
  box-shadow: 0 24px 60px color-mix(in srgb, var(--color-primary) 32%, transparent);
  max-height: min(760px, calc(100vh - 44px));
  overflow: auto;
  padding: 22px;
  width: min(920px, 100%);
}

.nutrition-food-modal__header {
  align-items: start;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}

.nutrition-food-modal__header h2 {
  color: var(--color-primary);
  font-size: var(--font-size-card-title, 24px);
  margin: 3px 0 0;
}

.nutrition-food-modal__close {
  align-items: center;
  background: color-mix(in srgb, var(--color-identity-faint) 72%, var(--color-surface));
  border: 1px solid color-mix(in srgb, var(--color-identity) 30%, transparent);
  border-radius: 11px;
  color: var(--color-primary);
  cursor: pointer;
  display: inline-flex;
  font-size: 23px;
  height: 34px;
  justify-content: center;
  line-height: 1;
  width: 34px;
}

.nutrition-food-modal__close:hover,
.nutrition-food-modal__close:focus-visible {
  background: var(--color-primary);
  color: var(--color-surface);
}

.nutrition-food-stepper {
  display: grid;
  gap: 9px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  list-style: none;
  margin: 23px 0 19px;
  padding: 0;
}

.nutrition-food-stepper__item {
  align-items: center;
  color: var(--color-text-soft);
  display: flex;
  font-size: var(--font-size-table, 11px);
  gap: 7px;
  min-width: 0;
}

.nutrition-food-stepper__item span {
  align-items: center;
  background: color-mix(in srgb, var(--color-border) 68%, var(--color-surface));
  border-radius: 50%;
  display: inline-flex;
  flex: 0 0 auto;
  font-size: var(--font-size-table, 11px);
  height: 25px;
  justify-content: center;
  width: 25px;
}

.nutrition-food-stepper__item strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nutrition-food-stepper__item--active,
.nutrition-food-stepper__item--complete {
  color: var(--color-primary);
}

.nutrition-food-stepper__item--active span,
.nutrition-food-stepper__item--complete span {
  background: var(--color-primary);
  color: var(--color-surface);
}

.nutrition-food-step > p {
  color: var(--color-text-soft);
  font-size: var(--font-size-table, 13px);
  margin: 0 0 17px;
}

.nutrition-food-source-choice {
  border: 0;
  margin: 0;
  min-width: 0;
  padding: 0;
}

.nutrition-food-source-choice legend {
  color: var(--color-text-soft);
  font-size: var(--font-size-label, 13px);
  font-weight: var(--font-weight-label, 800);
  margin-bottom: 7px;
  padding: 0;
}

.nutrition-food-source-choice > div {
  display: grid;
  gap: 5px;
}

.nutrition-food-source-choice label {
  cursor: pointer;
  display: block;
  position: relative;
}

.nutrition-food-source-choice input {
  opacity: 0;
  pointer-events: none;
  position: absolute;
}

.nutrition-food-source-choice label > span {
  background: color-mix(in srgb, var(--color-identity-faint) 42%, var(--color-surface));
  border: 1px solid color-mix(in srgb, var(--color-identity) 20%, var(--color-border));
  border-radius: 8px;
  display: block;
  min-height: 44px;
  padding: 8px 10px;
  transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.nutrition-food-source-choice strong,
.nutrition-food-source-choice small {
  display: block;
}

.nutrition-food-source-choice strong {
  color: var(--color-primary);
  font-size: var(--font-size-table, 13px);
}

.nutrition-food-source-choice small {
  color: var(--color-text-soft);
  font-size: var(--font-size-help, 11px);
  margin-top: 2px;
}

.nutrition-food-source-choice label:has(input:checked) > span {
  background: color-mix(in srgb, var(--color-identity) 14%, var(--color-surface));
  border-color: var(--color-identity);
  box-shadow: 0 5px 12px color-mix(in srgb, var(--color-identity) 16%, transparent);
}

.nutrition-food-source-choice label:has(input:focus-visible) > span {
  outline: 2px solid color-mix(in srgb, var(--color-secondary) 70%, transparent);
  outline-offset: 2px;
}

.nutrition-new-brand-trigger {
  align-items: center;
  background: transparent;
  border: 0;
  color: var(--color-secondary);
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-size: var(--font-size-table, 12px);
  font-weight: var(--font-weight-label, 800);
  gap: 5px;
  margin-top: 7px;
  padding: 0;
}

.nutrition-new-brand-trigger:hover,
.nutrition-new-brand-trigger:focus-visible {
  color: var(--color-primary);
}

.nutrition-new-brand-trigger > span {
  font-size: var(--font-size-body, 17px);
  line-height: .8;
}

.nutrition-new-brand-fields {
  background: color-mix(in srgb, var(--color-secondary) 7%, var(--color-surface));
  border: 1px dashed color-mix(in srgb, var(--color-secondary) 44%, var(--color-border));
  border-radius: 12px;
  margin-top: 14px;
  padding: 12px;
}

.nutrition-new-brand-fields[hidden] {
  display: none;
}

.nutrition-new-brand-fields__heading {
  align-items: center;
  color: var(--color-primary);
  display: flex;
  font-size: var(--font-size-card-title, 13px);
  justify-content: space-between;
  margin-bottom: 10px;
}

.nutrition-new-brand-fields__heading button {
  align-items: center;
  background: transparent;
  border: 0;
  color: var(--color-text-soft);
  cursor: pointer;
  display: inline-flex;
  font-size: var(--font-size-control, 20px);
  height: 22px;
  justify-content: center;
  padding: 0;
  width: 22px;
}

.nutrition-new-brand-fields__heading button:hover,
.nutrition-new-brand-fields__heading button:focus-visible {
  color: var(--color-primary);
}

.nutrition-food-modal__actions {
  align-items: center;
  border-top: 1px solid var(--color-border);
  display: flex;
  gap: 10px;
  justify-content: space-between;
  margin-top: 21px;
  padding-top: 16px;
}

.nutrition-food-modal__actions > div {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  justify-content: flex-end;
}

.nutrition-reference-badge,
.nutrition-composition-status {
  background: color-mix(in srgb, var(--color-secondary) 12%, var(--color-surface));
  border: 1px solid color-mix(in srgb, var(--color-secondary) 30%, transparent);
  border-radius: 7px;
  color: var(--color-primary);
  display: inline-block;
  font-size: var(--font-size-caption, 10px);
  font-weight: var(--font-weight-label, 800);
  max-width: 100%;
  overflow: hidden;
  padding: 4px 6px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nutrition-composition-status--ready {
  background: color-mix(in srgb, var(--color-identity) 13%, var(--color-surface));
  border-color: color-mix(in srgb, var(--color-identity) 34%, transparent);
}

.nutrition-system-mark {
  background: color-mix(in srgb, var(--color-identity) 14%, var(--color-surface));
  border: 1px solid color-mix(in srgb, var(--color-identity) 34%, transparent);
  border-radius: 999px;
  color: var(--color-identity-deep);
  display: inline-flex;
  font-size: var(--font-size-table, 8px);
  font-weight: var(--font-weight-label, 900);
  letter-spacing: .07em;
  margin-left: 5px;
  padding: 2px 5px;
  vertical-align: middle;
}

.nutrition-system-mark--personalized {
  background: color-mix(in srgb, var(--color-secondary) 14%, var(--color-surface));
  border-color: color-mix(in srgb, var(--color-secondary) 44%, transparent);
  color: var(--color-secondary-strong);
}

.btn-restore-factory {
  background: color-mix(in srgb, var(--color-secondary) 16%, var(--color-surface));
  border-color: color-mix(in srgb, var(--color-secondary) 52%, var(--color-border));
  color: var(--color-secondary-strong);
}

.btn-restore-factory:hover,
.btn-restore-factory:focus-visible {
  background: color-mix(in srgb, var(--color-secondary) 25%, var(--color-surface));
  border-color: var(--color-secondary);
  color: var(--color-secondary-strong);
}

.table-action--restore {
  background: color-mix(in srgb, var(--color-secondary) 12%, var(--color-surface));
  border-color: color-mix(in srgb, var(--color-secondary) 42%, var(--color-border));
  color: var(--color-secondary-strong);
}

.table-action--restore:hover,
.table-action--restore:focus-visible {
  background: color-mix(in srgb, var(--color-secondary) 22%, var(--color-surface));
  border-color: var(--color-secondary);
  color: var(--color-secondary-strong);
}

.nutrition-catalog-empty {
  align-items: center;
  color: var(--color-text-soft);
  display: flex;
  justify-content: center;
  min-height: 170px;
  text-align: center;
}

.nutrition-catalog-empty h3 {
  color: var(--color-primary);
  margin: 0;
}

.nutrition-brand-list,
.nutrition-nutrient-definitions {
  display: grid;
  gap: 8px;
}

.nutrition-brand-list > li,
.nutrition-nutrient-definition {
  align-items: center;
  background: color-mix(in srgb, var(--color-identity-faint) 34%, var(--color-surface));
  border: 1px solid var(--color-border);
  border-radius: 11px;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 10px;
  transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}

.nutrition-brand-list > li:hover,
.nutrition-nutrient-definition:hover {
  border-color: color-mix(in srgb, var(--color-identity) 40%, var(--color-border));
  box-shadow: 0 8px 18px color-mix(in srgb, var(--color-anthracite) 8%, transparent);
  transform: translateY(-1px);
}

.nutrition-brand-list__identity {
  min-width: 0;
}

.nutrition-brand-list__identity > div {
  min-width: 0;
}

.nutrition-brand-list__identity strong,
.nutrition-brand-list__identity small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nutrition-brand-monogram {
  flex-basis: 36px;
  height: 36px;
  width: 36px;
}

.nutrition-brand-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.nutrition-brand-list > li {
  grid-template-columns: 36px minmax(0, 1fr) auto auto;
}

.nutrition-brand-list__identity a,
.nutrition-brand-list__identity small {
  color: var(--color-text-soft);
  display: block;
  font-size: var(--font-size-control, 10px);
  margin-top: 2px;
  overflow: hidden;
  text-decoration: none;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nutrition-brand-list__identity a:hover {
  color: var(--color-secondary);
}

.nutrition-brand-identity--fallback .nutrition-brand-identity__fallback {
  display: grid;
}

.nutrition-catalog-nutrient-layout {
  align-items: start;
  display: grid;
  gap: 15px;
  grid-template-columns: minmax(0, 1fr);
}

.nutrition-catalog-collapse[hidden] {
  display: none;
}

.nutrition-catalog-collapse-toggle {
  align-items: center;
  background: transparent;
  border: 0;
  color: var(--color-primary);
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-size: inherit;
  font-weight: var(--font-weight-label, 800);
  gap: 8px;
  margin: 0;
  padding: 0;
}

.nutrition-catalog-collapse-toggle > span:last-child {
  color: var(--color-secondary);
  font-size: var(--font-size-control, 18px);
  line-height: .8;
  transition: transform .2s ease;
}

.nutrition-catalog-collapse-toggle[aria-expanded="true"] > span:last-child {
  transform: rotate(180deg);
}

.nutrition-catalog-collapse-toggle:hover,
.nutrition-catalog-collapse-toggle:focus-visible {
  color: var(--color-secondary-strong);
}

.nutrition-catalog-panel[data-nutrition-catalog-panel="nutrients"] .nutrition-composition-editor {
  scroll-margin-top: 20px;
  order: 1;
}

.nutrition-catalog-panel[data-nutrition-catalog-panel="nutrients"] .nutrition-catalog-nutrient-layout {
  order: 2;
}

.nutrition-catalog-nutrient-list {
  display: grid;
  gap: 15px;
  min-width: 0;
}

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

.nutrition-nutrient-definition__group {
  color: var(--color-text-soft);
  display: block;
  font-size: var(--font-size-table, 10px);
  margin-top: 2px;
}

.nutrition-nutrient-definition {
  grid-template-areas:
    "group name"
    "actions actions";
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
}

.nutrition-nutrient-definition > .nutrition-nutrient-definition__group {
  grid-area: group;
}

.nutrition-nutrient-definition > strong {
  grid-area: name;
  min-width: 0;
  overflow: hidden;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nutrition-nutrient-definition > small {
  color: var(--color-text-soft);
  grid-column: 2;
  grid-row: 2;
  text-align: right;
}

.nutrition-nutrient-definition > .table-actions {
  grid-area: actions;
  justify-content: flex-end;
}

.nutrition-nutrient-definition--personal {
  box-shadow: inset 0 -2px 0 color-mix(in srgb, var(--color-secondary) 42%, transparent);
}

.nutrition-composition-picker {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nutrition-composition-picker a,
.nutrition-export-formats a {
  background: color-mix(in srgb, var(--color-identity-faint) 40%, var(--color-surface));
  border: 1px solid var(--color-border);
  border-radius: 10px;
  color: var(--color-primary);
  padding: 10px;
  text-decoration: none;
  transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}

.nutrition-composition-picker a {
  align-items: center;
  display: grid;
  gap: 10px;
  grid-template-columns: 34px minmax(0, 1fr);
}

.nutrition-composition-picker__logo {
  flex-basis: 34px;
  height: 34px;
  width: 34px;
}

.nutrition-composition-picker a:hover,
.nutrition-export-formats a:hover {
  border-color: var(--color-identity);
  box-shadow: 0 8px 18px color-mix(in srgb, var(--color-anthracite) 8%, transparent);
  transform: translateY(-2px);
}

.nutrition-composition-picker strong,
.nutrition-composition-picker span,
.nutrition-export-formats strong,
.nutrition-export-formats small {
  display: block;
}

.nutrition-composition-picker small {
  color: var(--color-text-soft);
  display: block;
  font-size: var(--font-size-help, 10px);
  margin-top: 2px;
}

.nutrition-animal-brand {
  align-items: center;
  display: flex;
  gap: 8px;
  min-width: 0;
}

.nutrition-animal-brand__logo {
  background: var(--color-surface);
  border: 1px solid color-mix(in srgb, var(--color-identity) 28%, var(--color-border));
  border-radius: 8px 3px 8px 3px;
  flex: 0 0 28px;
  height: 28px;
  object-fit: contain;
  padding: 3px;
  width: 28px;
}

.nutrition-composition-picker span,
.nutrition-export-formats small {
  color: var(--color-text-soft);
  font-size: var(--font-size-help, 10px);
}

.nutrition-system-composition {
  background: color-mix(in srgb, var(--color-surface) 86%, var(--color-identity-faint));
  border: 1px solid color-mix(in srgb, var(--color-identity) 30%, var(--color-border));
  border-radius: 16px 6px 16px 6px;
  margin-top: 14px;
  overflow: hidden;
}

.nutrition-system-composition__header {
  align-items: start;
  background: color-mix(in srgb, var(--color-identity-faint) 63%, var(--color-surface));
  border-bottom: 1px solid color-mix(in srgb, var(--color-identity) 18%, var(--color-border));
  display: flex;
  gap: 1.2rem;
  justify-content: space-between;
  padding: 1rem 1.1rem .9rem;
}

.nutrition-system-composition__header > div {
  min-width: 0;
}

.nutrition-system-composition__eyebrow {
  color: var(--color-primary);
  display: block;
  font-size: var(--font-size-caption, .68rem);
  font-weight: var(--font-weight-label, 850);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.nutrition-system-composition__header p {
  color: var(--color-text-soft);
  font-size: var(--font-size-table, .82rem);
  line-height: 1.45;
  margin: .28rem 0 0;
  max-width: 60rem;
}

.nutrition-system-composition__header .table-action {
  flex: 0 0 auto;
}

.nutrition-system-composition__meta {
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: .9rem 1.1rem 0;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--color-identity) 22%, var(--color-border));
  border-radius: 10px;
}

.nutrition-system-composition__meta > span {
  background: var(--color-surface);
  display: grid;
  gap: .16rem;
  padding: .62rem .72rem;
}

.nutrition-system-composition__meta small {
  color: var(--color-text-soft);
  font-size: var(--font-size-help, .63rem);
  font-weight: var(--font-weight-label, 760);
  letter-spacing: .05em;
  text-transform: uppercase;
}

.nutrition-system-composition__meta strong {
  color: var(--color-primary);
  font-size: var(--font-size-help, .8rem);
}

.nutrition-system-composition__groups {
  display: grid;
  gap: .8rem;
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
  padding: 1.1rem;
}

.nutrition-system-composition__group {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-left: 4px solid var(--color-identity);
  border-radius: 10px 5px 10px 5px;
  min-width: 0;
  overflow: hidden;
}

.nutrition-nutrient-tone--energy { --nutrition-nutrient-tone: #C77455; --nutrition-nutrient-tint: #FBEEE9; }
.nutrition-nutrient-tone--macronutrient { --nutrition-nutrient-tone: #6F8B77; --nutrition-nutrient-tint: #EDF4EF; }
.nutrition-nutrient-tone--fiber { --nutrition-nutrient-tone: #9B7650; --nutrition-nutrient-tint: #F7F0E7; }
.nutrition-nutrient-tone--mineral { --nutrition-nutrient-tone: #397377; --nutrition-nutrient-tint: #E8F3F3; }
.nutrition-nutrient-tone--vitamin { --nutrition-nutrient-tone: #9B69A4; --nutrition-nutrient-tint: #F6EDF7; }
.nutrition-nutrient-tone--other { --nutrition-nutrient-tone: #68788C; --nutrition-nutrient-tint: #EDF1F5; }

.nutrition-system-composition__group {
  border-left-color: var(--nutrition-nutrient-tone, var(--color-identity));
}

.nutrition-composition-values fieldset,
.nutrition-nutrient-group {
  border-left: 3px solid var(--nutrition-nutrient-tone, var(--color-border));
  background: linear-gradient(135deg, var(--nutrition-nutrient-tint, var(--color-surface)) 0%, var(--color-surface) 66%);
}

.nutrition-composition-values fieldset legend,
.nutrition-nutrient-group legend {
  color: var(--nutrition-nutrient-tone, var(--color-primary));
}

.nutrition-nutrient-definition {
  border-left: 3px solid var(--nutrition-nutrient-tone, var(--color-border));
}

.nutrition-nutrient-definition__group,
.nutrition-composition-values fieldset label > span {
  color: var(--nutrition-nutrient-tone, var(--color-text-soft));
}

.nutrition-system-composition__group > header {
  align-items: center;
  background: color-mix(in srgb, var(--color-surface-muted) 78%, var(--color-surface));
  display: flex;
  justify-content: space-between;
  padding: .54rem .7rem;
}

.nutrition-system-composition__group > header span {
  color: var(--color-text);
  font-size: var(--font-size-caption, .74rem);
  font-weight: var(--font-weight-label, 850);
}

.nutrition-system-composition__group > header small {
  color: var(--color-text-soft);
  font-size: var(--font-size-help, .65rem);
}

.nutrition-system-composition__group > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nutrition-system-composition__group > div > span {
  border-right: 1px solid color-mix(in srgb, var(--color-border) 70%, transparent);
  border-top: 1px solid color-mix(in srgb, var(--color-border) 70%, transparent);
  display: grid;
  gap: .16rem;
  min-width: 0;
  padding: .52rem .7rem;
}

.nutrition-system-composition__group > div > span:nth-child(2n) {
  border-right: 0;
}

.nutrition-system-composition__group > div small {
  color: var(--color-text-soft);
  font-size: var(--font-size-help, .65rem);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nutrition-system-composition__group > div strong {
  color: var(--color-primary);
  font-size: var(--font-size-table, .78rem);
}

.nutrition-system-composition__group > div em {
  color: var(--color-text-soft);
  font-size: var(--font-size-table, .67rem);
  font-style: normal;
  font-weight: var(--font-weight-label, 650);
}

.nutrition-reference-profiles {
  display: flex;
  flex-direction: column;
  margin-top: 1rem;
}

.nutrition-reference-profiles__heading {
  align-items: end;
  display: flex;
  gap: 1.2rem;
  justify-content: space-between;
  margin-bottom: .7rem;
  order: 1;
}

.nutrition-reference-profiles__heading h4 {
  color: var(--color-primary);
  font-size: var(--font-size-subtitle, 1rem);
  margin: .16rem 0 0;
}

.nutrition-reference-profiles__heading p {
  color: var(--color-text-soft);
  font-size: var(--font-size-card-title, .76rem);
  line-height: var(--line-height-title, 1.4);
  margin: 0;
  max-width: 25rem;
  text-align: right;
}

.nutrition-reference-profiles__actions {
  align-items: end;
  display: flex;
  gap: .7rem;
}

.nutrition-reference-profiles__actions .btn {
  flex: 0 0 auto;
}

.nutrition-reference-profiles__grid {
  display: grid;
  gap: .72rem;
  grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
  order: 3;
}

.nutrition-reference-profile {
  background: var(--color-surface);
  border: 1px solid color-mix(in srgb, #567743 20%, var(--color-border));
  border-radius: 12px 5px 12px 5px;
  box-shadow: 0 7px 16px rgb(var(--color-primary-rgb) / .06);
  min-width: 0;
  overflow: hidden;
}

.nutrition-reference-profile > header {
  align-items: start;
  background: color-mix(in srgb, #dce7ca 44%, var(--color-surface));
  display: flex;
  gap: .65rem;
  justify-content: space-between;
  padding: .7rem .78rem .62rem;
}

.nutrition-reference-profile__scope {
  color: #426033;
  display: block;
  font-size: var(--font-size-table, .62rem);
  font-weight: var(--font-weight-label, 850);
  letter-spacing: .06em;
  text-transform: uppercase;
}

.nutrition-reference-profile h5 {
  color: var(--color-text);
  font-size: var(--font-size-subtitle, .86rem);
  line-height: var(--line-height-title, 1.2);
  margin: .18rem 0 0;
}

.nutrition-reference-profile__season {
  background: var(--color-surface);
  border: 1px solid color-mix(in srgb, #567743 20%, var(--color-border));
  border-radius: 999px;
  color: #426033;
  flex: 0 0 auto;
  font-size: var(--font-size-table, .64rem);
  font-weight: var(--font-weight-label, 800);
  padding: .28rem .46rem;
}

.nutrition-reference-profile > p {
  color: var(--color-text-soft);
  font-size: var(--font-size-table, .71rem);
  line-height: 1.35;
  margin: .62rem .78rem;
  min-height: 1.9em;
}

.nutrition-reference-profile__values {
  border-top: 1px solid color-mix(in srgb, var(--color-border) 75%, transparent);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nutrition-reference-profile__values span {
  border-right: 1px solid color-mix(in srgb, var(--color-border) 70%, transparent);
  border-bottom: 1px solid color-mix(in srgb, var(--color-border) 70%, transparent);
  display: grid;
  gap: .15rem;
  min-width: 0;
  padding: .48rem .65rem;
}

.nutrition-reference-profile__values span:nth-child(2n) { border-right: 0; }

.nutrition-reference-profile__values small,
.nutrition-reference-profile footer {
  color: var(--color-text-soft);
  font-size: var(--font-size-help, .63rem);
}

.nutrition-reference-profile__values strong {
  color: #426033;
  font-size: var(--font-size-table, .72rem);
}

.nutrition-reference-profile footer {
  display: flex;
  gap: .5rem;
  justify-content: space-between;
  padding: .5rem .65rem;
}

.nutrition-reference-profile footer .table-actions {
  align-items: center;
  flex-wrap: nowrap;
  justify-content: flex-end;
}

.nutrition-reference-profile--personal {
  border-color: color-mix(in srgb, var(--color-identity-strong) 38%, var(--color-border));
}

.nutrition-reference-profile--personal > header {
  background: color-mix(in srgb, var(--color-identity-faint) 58%, var(--color-surface));
}

.nutrition-reference-profile--region {
  border-radius: 14px;
  box-shadow: 0 10px 22px rgb(var(--color-primary-rgb) / .08);
}

.nutrition-reference-profile--region > header {
  align-items: center;
  min-height: 4.2rem;
  padding: .9rem 1rem .8rem;
}

.nutrition-reference-profile--region h5 {
  font-size: var(--font-size-subtitle, .98rem);
  letter-spacing: -.01em;
}

.nutrition-reference-profile--region .nutrition-reference-profile__values {
  background: color-mix(in srgb, var(--color-surface) 92%, #dce7ca);
}

.nutrition-reference-profile--region > footer {
  align-items: center;
  min-height: 2.8rem;
  padding: .7rem .85rem;
}

.nutrition-reference-profile--region > footer > span:first-child {
  max-width: 16rem;
  line-height: 1.35;
}

.nutrition-reference-profile--region.nutrition-reference-profile--missing {
  border-color: #d9a0a3;
  box-shadow: 0 10px 22px rgb(146 58 62 / .1);
}

.nutrition-reference-profile--region.nutrition-reference-profile--missing > header {
  background: #fbe9e9;
}

.nutrition-reference-profile--region.nutrition-reference-profile--missing .nutrition-reference-profile__scope {
  color: #91464a;
}

.nutrition-reference-profile--region.nutrition-reference-profile--missing .nutrition-reference-profile__season {
  border-color: #d9a0a3;
  color: #91464a;
}

.nutrition-reference-profile--region.nutrition-reference-profile--missing .nutrition-reference-profile__missing-values {
  color: #91464a;
}

.nutrition-reference-profile-editor {
  background: color-mix(in srgb, var(--color-identity-faint) 24%, var(--color-surface));
  border: 1px solid color-mix(in srgb, var(--color-identity-strong) 28%, var(--color-border));
  border-radius: 14px;
  margin-top: 1rem;
  box-shadow: 0 14px 30px rgb(var(--color-primary-rgb) / .08);
  padding: 1.15rem;
  scroll-margin-top: 1rem;
  order: 2;
}

.nutrition-reference-profile-editor > header {
  align-items: center;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: .8rem;
}

.nutrition-reference-profile-editor h5 {
  color: var(--color-primary);
  font-size: var(--font-size-subtitle, 1rem);
  margin: .14rem 0 0;
}

.nutrition-reference-profile-editor__meta {
  display: grid;
  gap: .7rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.nutrition-reference-profile-editor__meta .nutrition-catalog-field--wide {
  grid-column: 1 / -1;
}

.nutrition-reference-profile-editor__values {
  gap: .7rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: .8rem;
}

.nutrition-reference-profile-editor__values fieldset {
  padding: .62rem;
}

.nutrition-reference-profile-editor__values fieldset label {
  gap: .38rem;
  grid-template-columns: minmax(8.5rem, 1fr) minmax(5.2rem, .5fr) minmax(7.2rem, .72fr);
  margin-bottom: .38rem;
}

.nutrition-reference-profile-editor__values fieldset label > span {
  line-height: 1.2;
  overflow-wrap: anywhere;
  white-space: normal;
}

.nutrition-reference-profile-editor__values .input {
  min-height: 2rem;
  padding: .32rem .44rem;
}

.nutrition-reference-profiles > .empty-state {
  order: 3;
}

@media (max-width: 700px) {
  .nutrition-reference-profiles__heading,
  .nutrition-reference-profiles__actions,
  .nutrition-reference-profile-editor > header {
    align-items: stretch;
    flex-direction: column;
  }

  .nutrition-reference-profiles__heading p {
    max-width: none;
    text-align: left;
  }

  .nutrition-reference-profile-editor__meta {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nutrition-reference-profile-editor__values {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .nutrition-reference-profile-editor__meta,
  .nutrition-reference-profile-editor__values {
    grid-template-columns: 1fr;
  }
}
.nutrition-composition-meta {
  background: color-mix(in srgb, var(--color-identity-faint) 42%, transparent);
  border-radius: 12px;
  margin-top: 12px;
  padding: 12px;
}

.nutrition-composition-values {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 12px;
}

.nutrition-composition-values fieldset {
  border: 1px solid var(--color-border);
  border-radius: 10px;
  min-width: 0;
  padding: 10px;
}

.nutrition-composition-values legend {
  color: var(--color-primary);
  font-size: var(--font-size-label, 11px);
  font-weight: var(--font-weight-label, 800);
  padding: 0 5px;
}

.nutrition-composition-values fieldset label {
  align-items: center;
  display: grid;
  gap: 6px;
  grid-template-columns: minmax(8.5rem, 1fr) minmax(5.2rem, .5fr) minmax(7.2rem, .72fr);
  margin-bottom: 6px;
}

.nutrition-composition-values fieldset label > span {
  font-size: var(--font-size-label, 11px);
}

.nutrition-composition-values .input {
  min-width: 0;
  padding-left: 7px;
  padding-right: 7px;
}

.nutrition-composition-values fieldset {
  border-left: 3px solid var(--nutrition-nutrient-tone, var(--color-border));
  background: linear-gradient(135deg, var(--nutrition-nutrient-tint, var(--color-surface)) 0%, var(--color-surface) 66%);
}

.nutrition-composition-values fieldset legend {
  color: var(--nutrition-nutrient-tone, var(--color-primary));
}

.nutrition-composition-values fieldset label > span {
  color: var(--nutrition-nutrient-tone, var(--color-text-soft));
}

.nutrition-composition-delete {
  margin-top: 10px;
}

.nutrition-format-badges {
  display: flex;
  gap: 5px;
}

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

.nutrition-exchange-card--import {
  border-top: 4px solid var(--color-identity);
}

.nutrition-exchange-card--export {
  border-top: 4px solid var(--color-secondary);
}

.nutrition-file-drop {
  align-items: center;
  background: color-mix(in srgb, var(--color-identity-faint) 40%, var(--color-surface));
  border: 1px dashed color-mix(in srgb, var(--color-identity) 60%, var(--color-border));
  border-radius: 12px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 120px;
  overflow: hidden;
  padding: 16px;
  text-align: center;
}

.nutrition-file-drop input {
  height: 1px;
  opacity: 0;
  position: absolute;
  width: 1px;
}

.nutrition-file-drop span {
  color: var(--color-primary);
  font-weight: var(--font-weight-label, 800);
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nutrition-file-drop small {
  color: var(--color-text-soft);
  margin-top: 4px;
}

.nutrition-import-target,
.nutrition-export-scope,
.nutrition-export-all {
  align-items: center;
  background: color-mix(in srgb, var(--color-anthracite) 5%, var(--color-surface));
  border-radius: 9px;
  display: flex;
  font-size: var(--font-size-table, 12px);
  gap: 8px;
  justify-content: space-between;
  margin-top: 10px;
  padding: 9px 10px;
}

.nutrition-export-formats {
  display: grid;
  gap: 7px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 10px;
}

.nutrition-export-formats a > span {
  color: var(--color-secondary);
  font-size: var(--font-size-control, 10px);
  font-weight: var(--font-weight-label, 900);
}

.nutrition-template-card {
  align-items: center;
  background: linear-gradient(100deg, var(--color-surface), color-mix(in srgb, var(--color-secondary) 7%, var(--color-surface)));
  display: flex;
  justify-content: space-between;
}

.nutrition-template-card h3 {
  color: var(--color-primary);
  margin: 2px 0 0;
}

@media (max-width: 1120px) {
  .nutrition-catalog-workspace,
  .nutrition-catalog-workspace--brands,
  .nutrition-catalog-nutrient-layout {
    grid-template-columns: 1fr;
  }

  .nutrition-catalog-editor {
    position: static;
  }
}

@media (max-width: 800px) {
  .nutrition-catalog-panel__heading {
    align-items: stretch;
    flex-direction: column;
  }

  .nutrition-catalog-panel__actions {
    justify-content: space-between;
  }

  .nutrition-catalog-command,
  .nutrition-template-card {
    align-items: stretch;
    flex-direction: column;
  }

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

  .nutrition-catalog-species {
    flex-wrap: wrap;
  }

  .nutrition-exchange-grid,
  .nutrition-composition-values {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px) {
  .nutrition-catalog-panel__actions,
  .nutrition-catalog-add-button {
    width: 100%;
  }

  .nutrition-catalog-add-button {
    justify-content: center;
  }

  .nutrition-food-modal {
    align-items: end;
    padding: 10px;
  }

  .nutrition-food-modal__panel {
    border-radius: 18px;
    max-height: calc(100vh - 20px);
    padding: 17px;
  }

  .nutrition-food-modal__header h2 {
    font-size: var(--font-size-card-title, 20px);
  }

  .nutrition-food-stepper {
    gap: 5px;
  }

  .nutrition-food-stepper__item {
    font-size: var(--font-size-table, 10px);
    gap: 5px;
  }

  .nutrition-food-stepper__item strong {
    white-space: normal;
  }

  .nutrition-food-modal__actions,
  .nutrition-food-modal__actions > div {
    align-items: stretch;
    flex-direction: column-reverse;
    width: 100%;
  }

  .nutrition-food-modal__actions .btn {
    width: 100%;
  }

  .nutrition-catalog-hero__mark {
    display: none;
  }

  .nutrition-catalog-species,
  .nutrition-catalog-species label,
  .nutrition-catalog-species .input,
  .nutrition-catalog-species .btn {
    width: 100%;
  }

  .nutrition-catalog-form-grid,
  .nutrition-composition-meta,
  .nutrition-nutrient-definitions,
  .nutrition-composition-picker,
  .nutrition-export-formats {
    grid-template-columns: 1fr;
  }

  .nutrition-catalog-field--wide {
    grid-column: auto;
  }

  .nutrition-catalog-form-grid--foods > .field,
  .nutrition-catalog-form-grid--foods > .nutrition-food-source-choice {
    grid-column: 1 / -1;
  }

  .nutrition-catalog-tabs {
    grid-template-columns: 1fr;
  }

  .nutrition-catalog-table {
    min-width: 660px;
  }

  .nutrition-composition-values fieldset label {
    grid-template-columns: minmax(7rem, 1fr) minmax(4.8rem, .52fr) minmax(6.6rem, .72fr);
  }
}

@container nutrition-catalog (max-width: 1100px) {
  .nutrition-catalog-workspace,
  .nutrition-catalog-workspace--brands,
  .nutrition-catalog-nutrient-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .nutrition-catalog-editor {
    position: static;
  }
}

@container nutrition-catalog (max-width: 900px) {
  .nutrition-catalog-form-grid--foods > .field,
  .nutrition-catalog-form-grid--foods > .nutrition-food-source-choice {
    grid-column: span 6;
  }

  .nutrition-catalog-form-grid--foods > .nutrition-catalog-field--span-6,
  .nutrition-catalog-form-grid--foods > .nutrition-catalog-field--span-5,
  .nutrition-catalog-form-grid--foods > .nutrition-catalog-field--wide {
    grid-column: 1 / -1;
  }

  .nutrition-composition-values,
  .nutrition-exchange-grid {
    grid-template-columns: minmax(0, 1fr);
  }

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

@container nutrition-catalog (max-width: 620px) {
  .nutrition-catalog-command,
  .nutrition-template-card {
    align-items: stretch;
    flex-direction: column;
  }

  .nutrition-catalog-species,
  .nutrition-catalog-command__actions {
    flex-wrap: wrap;
  }

  .nutrition-catalog-tabs,
  .nutrition-catalog-form-grid,
  .nutrition-composition-meta,
  .nutrition-nutrient-definitions,
  .nutrition-composition-picker,
  .nutrition-export-formats {
    grid-template-columns: minmax(0, 1fr);
  }

  .nutrition-composition-form__header,
  .nutrition-food-inline-editor__header {
    align-items: stretch;
    flex-direction: column;
  }

  .nutrition-composition-form__mark {
    align-self: flex-start;
  }

  .nutrition-composition-form .nutrition-composition-meta {
    grid-template-columns: minmax(0, 1fr);
  }

  .nutrition-composition-form .nutrition-composition-meta > :first-child {
    grid-column: auto;
  }

  .nutrition-factory-food-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nutrition-factory-food-summary > div:nth-child(-n + 3) {
    border-top: 1px solid color-mix(in srgb, var(--color-identity) 14%, var(--color-border));
  }

  .nutrition-factory-food-summary > div:nth-child(-n + 2) {
    border-top: 0;
  }

  .nutrition-factory-food-summary > div:nth-child(3n) {
    border-right: 1px solid color-mix(in srgb, var(--color-identity) 14%, var(--color-border));
  }

  .nutrition-factory-food-summary > div:nth-child(2n) {
    border-right: 0;
  }

  .nutrition-catalog-form-grid--foods > .field,
  .nutrition-catalog-form-grid--foods > .nutrition-food-source-choice,
  .nutrition-catalog-field--wide {
    grid-column: 1 / -1;
  }

  .nutrition-catalog-species,
  .nutrition-catalog-species label,
  .nutrition-catalog-species .input,
  .nutrition-catalog-species .btn {
    min-width: 0;
    width: 100%;
  }

  .nutrition-natural-list-card__intro,
  .nutrition-natural-food-row {
    grid-template-columns: 1fr;
  }

  .nutrition-natural-food-row {
    gap: .5rem;
  }

  .nutrition-natural-food-row__mark {
    display: none;
  }

  .nutrition-natural-food-row__open {
    grid-template-columns: 1fr;
  }

  .nutrition-food-source-tabs {
    width: 100%;
  }

  .nutrition-food-source-tab {
    flex: 1 1 0;
    font-size: var(--font-size-table, .78rem);
    justify-content: center;
    padding-inline: .5rem;
  }
}

/* Fiche d'édition : deux espaces réellement distincts, lisibles sans déployer la page. */
@container nutrition-catalog (min-width: 720px) {
  .nutrition-composition-form .nutrition-composition-meta {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .nutrition-composition-form .nutrition-composition-meta > :first-child {
    grid-column: span 2;
  }
}

/* Éditeur de profil régional : hiérarchie claire entre identité, cycle et contexte. */
.nutrition-reference-profile-editor {
  background: color-mix(in srgb, var(--color-surface) 94%, var(--color-identity-faint));
  border-color: color-mix(in srgb, var(--color-identity-strong) 34%, var(--color-border));
  overflow: hidden;
  padding: 0;
}

.nutrition-reference-profile-editor > header {
  align-items: center;
  background: color-mix(in srgb, var(--color-identity-faint) 54%, var(--color-surface));
  border-bottom: 1px solid color-mix(in srgb, var(--color-identity-strong) 22%, var(--color-border));
  margin: 0;
  padding: 1rem 1.15rem .9rem;
}

.nutrition-reference-profile-editor > header > div {
  min-width: 0;
}

.nutrition-reference-profile-editor > header .nutrition-section-heading__eyebrow {
  color: var(--color-identity-strong);
  display: block;
  font-size: var(--font-size-caption, .68rem);
  letter-spacing: .08em;
  line-height: 1.2;
  text-transform: uppercase;
}

.nutrition-reference-profile-editor h5 {
  color: var(--color-text);
  font-size: var(--font-size-subtitle, 1.12rem);
  letter-spacing: -.015em;
  line-height: var(--line-height-title, 1.25);
  margin: .25rem 0 0;
}

.nutrition-reference-profile-editor > form {
  padding: 0 1.15rem 1.15rem;
}

.nutrition-reference-profile-editor__cycles {
  align-items: flex-start;
  background: color-mix(in srgb, var(--color-surface) 84%, var(--color-identity-faint));
  border-bottom: 1px solid color-mix(in srgb, var(--color-border) 78%, transparent);
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin: 0;
  padding: .8rem 1.15rem .9rem;
}

.nutrition-reference-profile-editor__cycles > span {
  color: var(--color-text-muted, #68727a);
  flex: 0 0 100%;
  font-size: var(--font-size-table, .72rem);
  font-weight: var(--font-weight-label, 800);
  letter-spacing: .055em;
  line-height: 1.2;
  text-transform: uppercase;
}

.nutrition-reference-profile-editor__cycles a {
  background: var(--color-surface);
  border: 1px solid color-mix(in srgb, var(--color-identity-strong) 26%, var(--color-border));
  border-radius: 0;
  color: var(--color-text);
  font-size: var(--font-size-control, .77rem);
  font-weight: var(--font-weight-label, 700);
  line-height: 1.2;
  padding: .42rem .68rem;
  text-decoration: none;
  transition: background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}

.nutrition-reference-profile-editor__cycles a:hover,
.nutrition-reference-profile-editor__cycles a:focus-visible {
  border-color: var(--color-identity-strong);
  color: var(--color-identity-strong);
  transform: translateY(-1px);
}

.nutrition-reference-profile-editor__cycles a.is-active {
  background: var(--color-identity-strong);
  border-color: var(--color-identity-strong);
  box-shadow: 0 3px 8px rgb(var(--color-primary-rgb) / .16);
  color: #fff;
}

.nutrition-reference-profile-editor__meta {
  background: var(--color-surface);
  border: 1px solid color-mix(in srgb, var(--color-border) 84%, transparent);
  border-radius: 10px;
  gap: .72rem;
  margin-top: 1rem;
  padding: .9rem;
}

.nutrition-reference-profile-editor__meta .field {
  min-width: 0;
}

.nutrition-reference-profile-editor__meta .field > span {
  color: var(--color-text-muted, #68727a);
  font-size: var(--font-size-help, .73rem);
  font-weight: var(--font-weight-label, 750);
  line-height: 1.25;
}

.nutrition-reference-profile-editor__hint {
  background: color-mix(in srgb, var(--color-identity-faint) 48%, var(--color-surface));
  border: 1px solid color-mix(in srgb, var(--color-identity-strong) 24%, var(--color-border));
  border-left: 3px solid var(--color-identity-strong);
  border-radius: 8px;
  color: var(--color-text-muted, #68727a);
  font-size: var(--font-size-help, .8rem);
  line-height: 1.5;
  margin: .9rem 0 0;
  padding: .68rem .8rem;
}

@media (max-width: 700px) {
  .nutrition-reference-profile-editor > header,
  .nutrition-reference-profile-editor > form {
    padding-inline: .85rem;
  }

  .nutrition-reference-profile-editor__cycles {
    padding-inline: .85rem;
  }
}

.nutrition-reference-profile-editor__meta-heading {
  align-items: center;
  background: color-mix(in srgb, var(--color-identity-faint) 45%, var(--color-surface));
  border-bottom: 1px solid color-mix(in srgb, var(--color-identity-strong) 18%, var(--color-border));
  border-top: 2px solid var(--color-identity-strong);
  display: flex;
  gap: .62rem;
  grid-column: 1 / -1;
  margin: .15rem 0 .05rem;
  padding: .55rem .62rem .5rem;
}

.nutrition-reference-profile-editor__meta-heading > span {
  align-items: center;
  background: var(--color-identity-strong);
  border-radius: 6px;
  color: #fff;
  display: inline-flex;
  flex: 0 0 1.75rem;
  font-size: var(--font-size-caption, .66rem);
  font-weight: var(--font-weight-label, 850);
  height: 1.45rem;
  justify-content: center;
  letter-spacing: .04em;
}

.nutrition-reference-profile-editor__meta-heading > div {
  display: grid;
  gap: .08rem;
  min-width: 0;
}

.nutrition-reference-profile-editor__meta-heading strong {
  color: var(--color-text);
  font-size: var(--font-size-help, .8rem);
  line-height: 1.2;
}

.nutrition-reference-profile-editor__meta-heading small {
  color: var(--color-text-muted, #68727a);
  font-size: var(--font-size-help, .68rem);
  line-height: 1.3;
}

.nutrition-reference-profile-editor__meta-heading--cycle {
  border-top-color: #b88638;
  background: color-mix(in srgb, #f4e6c8 48%, var(--color-surface));
}

.nutrition-reference-profile-editor__meta-heading--cycle > span {
  background: #a8782e;
}

.nutrition-reference-profile-editor__meta-heading--documentation {
  border-top-color: #557a91;
  background: color-mix(in srgb, #dcebf2 50%, var(--color-surface));
}

.nutrition-reference-profile-editor__meta-heading--documentation > span {
  background: #557a91;
}

.nutrition-reference-profile-editor__meta textarea[name="methodology_note"] {
  min-height: 3.35rem;
  overflow: hidden;
  resize: none;
}

#nutrition-food-0,
[id^="nutrition-food-"] {
  scroll-margin-top: 1.25rem;
}

.nutrition-catalog-food--return-target {
  animation: nutrition-catalog-return-focus 1.8s ease both;
}

.nutrition-reference-profile--region > footer .table-actions {
  flex-wrap: wrap;
}

.nutrition-reference-profile--region > footer .table-action[disabled] {
  cursor: not-allowed;
  opacity: .48;
}

.nutrition-food-category,
.nutrition-natural-food-row__category {
  background: color-mix(in srgb, var(--color-identity-faint) 58%, var(--color-surface));
  border: 1px solid color-mix(in srgb, var(--color-identity-strong) 20%, var(--color-border));
  border-radius: 999px;
  color: var(--color-text-muted, #68727a);
  display: inline-flex;
  font-size: var(--font-size-table, .72rem);
  font-weight: var(--font-weight-label, 700);
  line-height: 1.2;
  max-width: 100%;
  overflow: hidden;
  padding: .25rem .48rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nutrition-food-category--grain {
  background: #fff0d9;
  border-color: #e1ad60;
  color: #80501a;
}

.nutrition-food-category--mineral {
  background: #e7f0fb;
  border-color: #8fb1d9;
  color: #285883;
}

.nutrition-food-category--supplement {
  background: #f0e8f8;
  border-color: #b69bd1;
  color: #64417e;
}

.nutrition-food-category--plant {
  background: #e5f3e7;
  border-color: #91bf99;
  color: #2f6b3b;
}

.nutrition-food-category--forage {
  background: #f5edd9;
  border-color: #cdb176;
  color: #705720;
}

.nutrition-food-category--pasture {
  background: #ddf1e8;
  border-color: #83bea0;
  color: #237052;
}

.nutrition-food-category--treat {
  background: #f9e6e8;
  border-color: #d5a0a8;
  color: #8c3f4c;
}

.nutrition-natural-food-row__category {
  align-self: flex-start;
  margin-top: .2rem;
}

@keyframes nutrition-catalog-return-focus {
  0%, 100% { box-shadow: none; }
  18%, 68% { box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-identity-strong) 34%, transparent); }
}

/* Bilan naturopathique ---------------------------------------------------- */
.naturo-page {
  --naturo-ink: #264e50;
  --naturo-soft: #eef4ef;
  --naturo-clay: #f4e4d9;
  --naturo-alert: #fff0ed;
  --naturo-accent: #3d7b67;
  --naturo-accent-soft: #edf6f1;
}

.naturo-hero {
  align-items: end;
  display: flex;
  gap: 24px;
  justify-content: space-between;
}

.naturo-hero__copy {
  max-width: 760px;
}

.naturo-hero__copy h1 {
  margin-bottom: 8px;
}

.naturo-hero__copy p {
  margin: 0;
}

.naturo-hero__identity {
  align-items: center;
  color: #35585a;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  margin-top: 2px;
}

.naturo-hero__identity span {
  align-items: baseline;
  display: inline-flex;
  font-weight: var(--font-weight-label, 700);
  gap: 7px;
}

.naturo-hero__identity small {
  color: #7a7770;
  font-size: var(--font-size-help, .72rem);
  font-weight: var(--font-weight-label, 800);
  letter-spacing: .06em;
  text-transform: uppercase;
}

.naturo-hero__actions,
.naturo-context-card__values {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.naturo-hero__actions .btn {
  white-space: nowrap;
}

.naturo-assessment,
.naturo-contexts {
  display: grid;
  gap: 14px;
}

.naturo-section,
.naturo-contexts {
  --naturo-section-accent: var(--naturo-accent);
  --naturo-section-tint: var(--naturo-accent-soft);
  border: 1px solid #dbe5df;
  border-left: 4px solid var(--naturo-section-accent);
  box-shadow: 0 8px 24px rgb(39 73 63 / 7%);
  overflow: hidden;
  padding: 0 20px 18px;
}

.naturo-assessment .naturo-section:nth-of-type(2) {
  --naturo-section-accent: #a26553;
  --naturo-section-tint: #fbf1ed;
}

.naturo-assessment .naturo-section:nth-of-type(3) {
  --naturo-section-accent: #507996;
  --naturo-section-tint: #edf4f8;
}

.naturo-assessment .naturo-section:nth-of-type(4) {
  --naturo-section-accent: #8a7334;
  --naturo-section-tint: #faf6e8;
}

.naturo-assessment .naturo-section:nth-of-type(5) {
  --naturo-section-accent: #79649a;
  --naturo-section-tint: #f3eff8;
}

.naturo-assessment .naturo-section:nth-of-type(6) {
  --naturo-section-accent: #3c7180;
  --naturo-section-tint: #edf5f6;
}

.naturo-section__heading {
  align-items: center;
  background: var(--naturo-section-tint, var(--naturo-accent-soft));
  border-bottom: 1px solid color-mix(in srgb, var(--naturo-section-accent, var(--naturo-accent)) 22%, transparent);
  display: flex;
  gap: 12px;
  margin: 0 -20px 16px;
  min-height: 68px;
  padding: 11px 20px;
}

.naturo-section__heading > div {
  flex: 1;
  min-width: 0;
}

.naturo-section__heading > div > span {
  color: color-mix(in srgb, var(--naturo-section-accent, var(--naturo-accent)) 82%, #263a38);
  display: block;
  font-size: var(--font-size-card-title, .76rem);
  font-weight: var(--font-weight-title, 700);
  letter-spacing: .055em;
  text-transform: uppercase;
}

.naturo-section__heading h2 {
  color: var(--naturo-ink);
  font-size: var(--font-size-card-title, clamp(1.06rem, 1.25vw, 1.3rem));
  line-height: var(--line-height-title, 1.18);
  margin: 3px 0 0;
}

.naturo-section__index {
  align-items: center;
  background: var(--naturo-section-accent, var(--naturo-accent));
  border: 1px solid var(--naturo-section-accent, var(--naturo-accent));
  color: #fff;
  display: inline-flex;
  flex: 0 0 34px;
  font-size: var(--font-size-table, .78rem);
  font-weight: var(--font-weight-label, 800);
  height: 34px;
  justify-content: center;
  letter-spacing: .04em;
}

.naturo-autosave-status {
  align-self: center;
  color: var(--color-text-soft);
  font-size: var(--font-size-caption, .82rem);
  min-width: 205px;
  text-align: right;
}

.naturo-autosave-status.is-saving { color: #8a6136; }
.naturo-autosave-status.is-saved { color: #317154; }
.naturo-autosave-status.is-error { color: #a74435; }

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

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

.naturo-grid--metrics {
  grid-template-columns: repeat(2, minmax(0, 260px));
}

.naturo-field--wide { grid-column: 1 / -1; }
.naturo-field--half { min-width: 0; }
.naturo-field--referral { max-width: 390px; }

.naturo-assessment .field,
.naturo-contexts .field {
  color: #334f4d;
  display: flex;
  flex-direction: column;
  font-size: var(--font-size-label, .82rem);
  font-weight: var(--font-weight-label, 700);
  gap: 5px;
  line-height: 1.28;
  min-width: 0;
}

.naturo-assessment .input,
.naturo-contexts .input {
  background: #fff;
  border-color: #cbd9d3;
  border-radius: var(--ui-radius-field);
  color: var(--color-text);
  font-size: var(--font-size-input, .9rem);
  font-weight: var(--font-weight-body, 500);
  line-height: 1.35;
  min-height: 40px;
  padding: var(--ui-space-2, 8px) 11px;
  width: 100%;
}

.naturo-assessment select.input,
.naturo-contexts select.input,
.naturo-assessment input.input,
.naturo-contexts input.input {
  height: 40px;
}

.naturo-assessment textarea.input,
.naturo-contexts textarea.input {
  min-height: 74px;
  resize: vertical;
}

.naturo-assessment textarea[rows="2"].input { min-height: 66px; }
.naturo-assessment textarea[rows="3"].input { min-height: 78px; }
.naturo-assessment textarea[rows="4"].input { min-height: 92px; }
.naturo-assessment textarea[rows="5"].input { min-height: 108px; }

.naturo-assessment .input:hover,
.naturo-contexts .input:hover { border-color: #9fb8ae; }

.naturo-assessment .input:focus,
.naturo-contexts .input:focus {
  border-color: var(--naturo-section-accent, var(--naturo-accent));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--naturo-section-accent, var(--naturo-accent)) 16%, transparent);
  outline: 0;
}

.naturo-assessment .input::placeholder,
.naturo-contexts .input::placeholder {
  color: #87948f;
  font-weight: var(--font-weight-body, 450);
}

.naturo-check {
  align-items: flex-start;
  background: #f7f4ed;
  border: 1px solid #e1dacd;
  display: flex;
  gap: 10px;
  line-height: 1.38;
  border-radius: 9px;
  font-size: var(--font-size-table, .86rem);
  padding: 9px 12px;
}

.naturo-check input {
  accent-color: var(--color-primary);
  flex: 0 0 auto;
  height: 17px;
  margin-top: .2em;
  width: 17px;
}

.naturo-species-guidance {
  background: var(--naturo-soft);
  border-left: 3px solid #4d8a70;
  color: #36554b;
  border-radius: 0 9px 9px 0;
  margin: -2px 0 13px;
  padding: 9px 12px;
}

.naturo-species-guidance strong,
.naturo-species-guidance span {
  display: inline-block;
  font-size: var(--font-size-table, .86rem);
  font-weight: var(--font-weight-label, 800);
  margin-right: 10px;
}

.naturo-species-guidance span { color: #245d4d; }
.naturo-species-guidance p { font-size: var(--font-size-body, .9rem); margin: 5px 0 0; }

.naturo-linked-nutrition {
  background: #edf3f5;
  border: 1px solid #c5d7db;
  color: #35555b;
  display: grid;
  gap: 11px;
  border-radius: 9px;
  font-size: var(--font-size-body, .88rem);
  margin: -2px 0 13px;
  padding: 9px 12px;
}

.naturo-linked-nutrition__heading { display: grid; gap: 2px; }
.naturo-linked-nutrition__heading > span { color: #61777b; font-size: var(--font-size-caption, .8rem); }
.naturo-linked-foods { display: grid; gap: 9px; }
.naturo-linked-food {
  background: #fff;
  border: 1px solid #d2dfdc;
  border-radius: 9px;
  box-shadow: 0 4px 12px rgb(45 77 69 / 5%);
  display: grid;
  gap: 8px;
  padding: 11px 12px;
}
.naturo-linked-food > header { align-items: center; display: flex; gap: 10px; justify-content: space-between; }
.naturo-linked-food > header div { display: grid; gap: 1px; min-width: 0; }
.naturo-linked-food > header div > span { color: var(--color-text-soft); font-size: var(--font-size-table, .76rem); }
.naturo-linked-food > p { color: #5e706d; font-size: var(--font-size-table, .82rem); margin: 0; }
.naturo-linked-food__region {
  background: #e5f1eb;
  border: 1px solid #bfd7ca;
  border-radius: 999px;
  color: #28604d;
  flex: 0 0 auto;
  font-size: var(--font-size-table, .72rem);
  font-weight: var(--font-weight-label, 800);
  padding: 4px 8px;
}
.naturo-linked-food__reference { display: flex; flex-wrap: wrap; gap: 3px 8px; }
.naturo-linked-food__reference > span { color: var(--color-text-soft); font-size: var(--font-size-table, .72rem); font-weight: var(--font-weight-label, 700); text-transform: uppercase; width: 100%; }
.naturo-linked-food__reference > strong { color: #345955; font-size: var(--font-size-table, .82rem); }
.naturo-linked-food__reference > small { color: var(--color-text-soft); font-size: var(--font-size-help, .76rem); }
.naturo-linked-food__values { display: flex; flex-wrap: wrap; gap: 6px; }
.naturo-linked-food__values > span {
  background: #f6f8f7;
  border: 1px solid #dbe4e0;
  border-left: 3px solid currentColor;
  border-radius: 6px;
  font-size: var(--font-size-table, .75rem);
  padding: 5px 7px;
}
.naturo-linked-food__values strong { font-weight: var(--font-weight-label, 800); }
.naturo-linked-food__missing {
  background: #fff6e8;
  border-left: 3px solid #b98232;
  color: #735526 !important;
  padding: 7px 9px;
}

.naturo-linked-nutrition--empty {
  background: #f8f4e9;
  border-color: #e5d5ad;
  color: #72582d;
}

.naturo-catalog-add {
  border: 1px solid #c7d8d1;
  border-radius: 10px;
  margin: 0 0 14px;
  max-width: 100%;
  overflow: hidden;
  width: fit-content;
}
.naturo-catalog-add[open] { width: 100%; }
.naturo-catalog-add > summary {
  align-items: center;
  background: #edf6f1;
  color: #285f4d;
  cursor: pointer;
  display: inline-flex;
  font-size: var(--font-size-control, .86rem);
  font-weight: var(--font-weight-label, 800);
  gap: 8px;
  list-style: none;
  padding: 9px 12px;
  user-select: none;
}
.naturo-catalog-add > summary::-webkit-details-marker { display: none; }
.naturo-catalog-add__plus {
  align-items: center;
  background: #34725e;
  border-radius: 50%;
  color: #fff;
  display: inline-flex;
  flex: 0 0 24px;
  font-size: var(--font-size-body, 1.15rem);
  height: 24px;
  justify-content: center;
  line-height: 1;
  width: 24px;
}
.naturo-catalog-add[open] > summary { border-bottom: 1px solid #c7d8d1; width: 100%; }
.naturo-catalog-add__form-fields { background: #fbfdfc; padding: 13px; }
.naturo-catalog-add__intro { color: var(--color-text-soft); font-size: var(--font-size-table, .8rem); margin: 0 0 11px; }
.naturo-catalog-add__grid {
  display: grid;
  gap: 11px 12px;
  grid-template-columns: minmax(190px, 1fr) minmax(170px, .8fr) minmax(280px, 1.7fr);
}
.naturo-catalog-add__food { min-width: 0; }
.naturo-catalog-add__note { grid-column: span 2; }
.naturo-catalog-add__notes { margin-top: 11px; }
.naturo-catalog-add .form-actions { margin-top: 11px; }
.naturo-catalog-add .field-optional { color: var(--color-text-soft); font-size: var(--font-size-label, .7rem); font-weight: var(--font-weight-label, 600); }

.naturo-contexts__intro {
  color: var(--color-text-soft);
  margin: -7px 0 2px;
  max-width: 850px;
}

.naturo-context-list {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

.naturo-context-card {
  background: #fbfaf6;
  border: 1px solid #e1ddd2;
  box-shadow: 0 7px 16px rgb(42 61 56 / 6%);
  padding: 14px;
}

.naturo-context-card > header {
  align-items: flex-start;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.naturo-context-card > header strong,
.naturo-context-card > header span {
  display: block;
}

.naturo-context-card > header strong { color: var(--naturo-ink); }
.naturo-context-card > header span,
.naturo-context-card time { color: var(--color-text-soft); font-size: var(--font-size-caption, .78rem); }

.naturo-context-card dl {
  display: grid;
  gap: 6px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 13px 0;
}

.naturo-context-card dl div { min-width: 0; }
.naturo-context-card dt { color: var(--color-text-soft); font-size: var(--font-size-label, .72rem); font-weight: var(--font-weight-label, 700); text-transform: uppercase; }
.naturo-context-card dd { margin: 1px 0 0; overflow-wrap: anywhere; }

.naturo-context-card__values span {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  font-size: var(--font-size-table, .78rem);
  padding: 4px 6px;
}

.naturo-context-card__values strong { font-weight: var(--font-weight-label, 800); }
.naturo-context-card > p { color: var(--color-text-soft); font-size: var(--font-size-table, .86rem); margin: 12px 0 0; }

.naturo-context-add {
  border: 1px solid #d3dfd5;
  border-radius: 10px;
  margin-top: 4px;
  overflow: hidden;
}

.naturo-context-add > summary {
  background: var(--naturo-soft);
  color: #255846;
  cursor: pointer;
  font-weight: var(--font-weight-label, 800);
  padding: 12px 14px;
}

.naturo-context-add > form { padding: 14px; }
.naturo-context-add__meta { margin-bottom: 16px; }
.naturo-context-add__values { display: grid; gap: 12px; margin-bottom: 14px; }

.naturo-follow-up-parent {
  align-items: baseline;
  background: #eef2f8;
  border-left: 3px solid #7187a8;
  color: #3f536c;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 11px;
  margin-bottom: 2px;
  padding: 11px 14px;
}

.naturo-follow-up-parent span { color: #607184; font-size: var(--font-size-body, .9rem); }

.naturo-history__empty {
  align-items: flex-start;
  background: #f7f4ed;
  border: 1px dashed #cfc5b3;
  display: flex;
  flex-direction: column;
  gap: 9px;
  padding: 26px;
  text-align: left;
}

.naturo-history__empty strong { color: var(--naturo-ink); font-size: var(--font-size-body, 1.05rem); }
.naturo-history__empty p { margin: 0; max-width: 680px; }

.naturo-history__list { display: grid; gap: 11px; }

.naturo-history-card {
  align-items: stretch;
  background: #fbfaf6;
  border: 1px solid #ded9cd;
  display: grid;
  grid-template-columns: 142px minmax(0, 1fr) auto;
  min-width: 0;
}

.naturo-history-card--follow-up { border-left: 4px solid #7187a8; }

.naturo-history-card__date {
  background: var(--naturo-soft);
  border-right: 1px solid #d4ded5;
  display: flex;
  flex-direction: column;
  gap: 5px;
  justify-content: center;
  padding: 15px;
}

.naturo-history-card--follow-up .naturo-history-card__date {
  background: #eef2f8;
  border-color: #d2dce9;
}

.naturo-history-card__date span { color: var(--naturo-ink); font-size: var(--font-size-help, .94rem); font-weight: var(--font-weight-label, 800); }
.naturo-history-card__date small { color: var(--color-text-soft); font-size: var(--font-size-help, .72rem); font-weight: var(--font-weight-label, 700); text-transform: uppercase; }
.naturo-history-card__body { min-width: 0; padding: 14px 16px; }
.naturo-history-card__body h3 { color: var(--naturo-ink); font-size: var(--font-size-card-title, 1rem); margin: 0; overflow-wrap: anywhere; }
.naturo-history-card__body p { color: var(--color-text-soft); font-size: var(--font-size-body, .88rem); margin: 5px 0 0; }
.naturo-history-card__summary { color: var(--color-text) !important; }

.naturo-history-card__actions {
  align-items: center;
  border-left: 1px solid #e2ddd2;
  display: flex;
  flex-direction: column;
  gap: 7px;
  justify-content: center;
  padding: 13px;
}

.naturo-history-card__actions .table-action { text-align: center; white-space: nowrap; }

@media (max-width: 900px) {
  .naturo-hero { align-items: flex-start; flex-direction: column; }
  .naturo-grid--opening { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .naturo-catalog-add__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 660px) {
  .naturo-hero__actions,
  .naturo-hero__actions .btn { width: 100%; }
  .naturo-section__heading { flex-wrap: wrap; }
  .naturo-section,
  .naturo-contexts { padding: 0 14px 14px; }
  .naturo-section__heading { margin-left: -14px; margin-right: -14px; padding-left: 14px; padding-right: 14px; }
  .naturo-autosave-status { min-width: 0; text-align: left; width: 100%; }
  .naturo-grid,
  .naturo-grid--opening,
  .naturo-grid--metrics { grid-template-columns: minmax(0, 1fr); }
  .naturo-field--wide { grid-column: auto; }
  .naturo-catalog-add__grid { grid-template-columns: minmax(0, 1fr); }
  .naturo-catalog-add__note { grid-column: auto; }
  .naturo-context-card dl { grid-template-columns: minmax(0, 1fr); }
  .naturo-history-card { grid-template-columns: minmax(0, 1fr); }
  .naturo-history-card__date { border-bottom: 1px solid #d4ded5; border-right: 0; }
  .naturo-history-card__actions { border-left: 0; border-top: 1px solid #e2ddd2; flex-direction: row; justify-content: flex-start; }
}

/* Atelier personnel de formulation Bach */
.bach-workshop-nav {
  align-items: center;
  background: #fff;
  border: 1px solid rgb(var(--color-primary-rgb) / .17);
  border-radius: 16px;
  box-shadow: 0 10px 26px rgb(var(--color-primary-rgb) / .08);
  display: flex;
  gap: 5px;
  padding: 6px;
}

.bach-workshop-nav a {
  border-radius: 11px;
  color: var(--color-text);
  font-size: var(--font-size-control, .9rem);
  font-weight: var(--font-weight-label, 800);
  padding: 10px 16px;
  text-decoration: none;
}

.bach-workshop-nav a:hover,
.bach-workshop-nav a.is-active {
  background: var(--color-primary);
  color: #fff;
}

.bach-workshop-grid {
  align-items: start;
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(320px, .8fr) minmax(0, 1.2fr);
}

.bach-factory-ingredients > header {
  align-items: center;
  border-bottom: 1px solid rgb(var(--color-primary-rgb) / .14);
  display: flex;
  justify-content: space-between;
  margin-bottom: 15px;
  padding-bottom: 12px;
}

.bach-factory-ingredients > header small {
  color: var(--color-primary);
  font-size: var(--font-size-help, .7rem);
  font-weight: var(--font-weight-label, 900);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.bach-factory-ingredients > header h2 { margin: 3px 0 0; }

.bach-factory-ingredients > header > span {
  background: #ece8de;
  border: 1px solid #d6d0c3;
  border-radius: 8px;
  color: var(--color-text);
  font-size: var(--font-size-caption, .72rem);
  font-weight: var(--font-weight-label, 850);
  padding: 6px 9px;
}

.bach-factory-ingredient-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.bach-factory-ingredient-grid article {
  background: #faf8f1;
  border: 1px solid #ddd7c9;
  border-top: 4px solid var(--color-identity);
  border-radius: 11px;
  min-width: 0;
  padding: 13px;
}

.bach-factory-ingredient-grid strong { color: var(--color-text); display: block; }
.bach-factory-ingredient-grid p { font-size: var(--font-size-table, .83rem); margin: 6px 0; }
.bach-factory-ingredient-grid small { color: var(--color-primary); display: block; font-size: var(--font-size-help, .73rem); font-weight: var(--font-weight-label, 750); }

.bach-ingredient-form-card header,
.bach-ingredient-library header,
.bach-formula-list-card > header {
  border-bottom: 1px solid rgb(var(--color-primary-rgb) / .14);
  margin-bottom: 16px;
  padding-bottom: 12px;
}

.bach-ingredient-form-card header small,
.bach-ingredient-library header small,
.bach-formula-list-card > header small {
  color: var(--color-primary);
  font-size: var(--font-size-help, .7rem);
  font-weight: var(--font-weight-label, 900);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.bach-ingredient-form-card header h2,
.bach-ingredient-library header h2,
.bach-formula-list-card > header h2 { margin: 3px 0 0; }

.bach-ingredient-form {
  display: grid;
  gap: 13px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.bach-ingredient-list,
.bach-formula-list { display: grid; gap: 10px; }

.bach-ingredient-item,
.bach-formula-item {
  align-items: center;
  background: #fbfaf6;
  border: 1px solid #dfd9cb;
  border-left: 4px solid var(--color-identity);
  border-radius: 12px;
  display: flex;
  gap: 14px;
  justify-content: space-between;
  min-width: 0;
  padding: 13px 14px;
}

.bach-ingredient-item > div,
.bach-formula-item > a { min-width: 0; }
.bach-ingredient-item strong,
.bach-formula-item strong { color: var(--color-text); display: block; font-size: var(--font-size-body, .98rem); }
.bach-ingredient-item span,
.bach-formula-item span { color: var(--color-text-soft); display: block; font-size: var(--font-size-table, .78rem); margin-top: 3px; }
.bach-ingredient-item p,
.bach-formula-item p { font-size: var(--font-size-table, .85rem); margin: 6px 0 0; overflow-wrap: anywhere; }
.bach-formula-item > a { color: inherit; flex: 1; text-decoration: none; }

.bach-formula-editor__form { display: grid; gap: 16px; }

.bach-formula-editor__form > .form-actions {
  box-sizing: border-box;
  padding: 0 150px 14px 0;
}
.bach-formula-block { overflow: visible; }

.bach-formula-block > header {
  align-items: center;
  border-bottom: 1px solid rgb(var(--color-primary-rgb) / .14);
  display: flex;
  gap: 12px;
  margin-bottom: 16px;
  padding-bottom: 13px;
}

.bach-formula-block > header > span {
  align-items: center;
  background: var(--color-primary);
  border-radius: 8px;
  color: #fff;
  display: inline-flex;
  font-size: var(--font-size-caption, .72rem);
  font-weight: var(--font-weight-label, 900);
  height: 30px;
  justify-content: center;
  width: 34px;
}

.bach-formula-block > header > div { flex: 1; min-width: 0; }
.bach-formula-block > header small { color: var(--color-primary); font-size: var(--font-size-help, .68rem); font-weight: var(--font-weight-label, 900); letter-spacing: .08em; text-transform: uppercase; }
.bach-formula-block > header h2 { font-size: var(--font-size-card-title, 1.08rem); margin: 2px 0 0; }

.bach-formula-meta {
  display: grid;
  gap: 13px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.bach-formula-rows { display: grid; gap: 10px; }

.bach-formula-row {
  align-items: end;
  background: #f8f6ef;
  border: 1px solid #ded8ca;
  border-radius: 12px;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(280px, 2fr) minmax(95px, .45fr) minmax(110px, .55fr) minmax(160px, 1fr) auto;
  min-width: 0;
  padding: 12px;
}

.bach-formula-row .field { min-width: 0; }
.bach-formula-row__component { min-width: 0; }
.bach-formula-hint { background: #f5eee2; border-left: 4px solid var(--color-secondary); margin: 0 0 12px; padding: 11px 13px; }
.bach-formula-hint a { color: var(--color-primary); font-weight: var(--font-weight-label, 800); text-decoration: none; }
.bach-formula-notes { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); }

@media (max-width: 1100px) {
  .bach-workshop-grid { grid-template-columns: minmax(0, 1fr); }
  .bach-formula-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bach-formula-row__component { grid-column: 1 / -1; }
  .bach-factory-ingredient-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
  .bach-workshop-nav { align-items: stretch; flex-direction: column; }
  .bach-workshop-nav a { text-align: center; }
  .bach-ingredient-form,
  .bach-formula-meta,
  .bach-formula-row,
  .bach-formula-notes { grid-template-columns: minmax(0, 1fr); }
  .bach-ingredient-form .field-span-2,
  .bach-formula-meta .field-span-2,
  .bach-formula-row__component { grid-column: auto; }
  .bach-ingredient-item,
  .bach-formula-item { align-items: stretch; flex-direction: column; }
  .bach-formula-block > header { align-items: flex-start; flex-wrap: wrap; }
  .bach-formula-block > header .btn { margin-left: 46px; width: calc(100% - 46px); }
  .bach-factory-ingredient-grid { grid-template-columns: minmax(0, 1fr); }
  .bach-formula-editor__form > .form-actions {
    padding: 0 0 76px;
  }
}

/* Refonte visuelle centralisee des espaces Fleurs de Bach. */
.bach-catalog-page {
  --bach-accent: #376d70;
  --bach-accent-soft: #e8f0ef;
  --bach-accent-ink: #244f52;
  display: grid;
  gap: 14px;
}

.bach-catalog-page--ingredients {
  --bach-accent: #ad654c;
  --bach-accent-soft: #f7ebe5;
  --bach-accent-ink: #77412f;
}

.bach-catalog-page--mixtures {
  --bach-accent: #705878;
  --bach-accent-soft: #f0eaf2;
  --bach-accent-ink: #523d59;
}

.bach-catalog-page .bach-catalog-hero {
  background: var(--color-surface, #fffdf8);
  border: 1px solid #ded8ca;
  border-left: 7px solid var(--bach-accent);
  border-radius: 16px;
  box-shadow: 0 12px 26px rgba(48, 42, 34, .09);
  min-height: 0;
  padding: 20px 24px;
}

.bach-catalog-page .bach-catalog-hero h1,
.bach-catalog-page .bach-catalog-panel h2,
.bach-catalog-page .bach-formula-block h2 {
  color: var(--bach-accent-ink);
}

.bach-catalog-page .bach-workshop-nav {
  background: #fffdf8;
  border: 1px solid #ded8ca;
  border-radius: 14px;
  box-shadow: 0 7px 18px rgba(48, 42, 34, .07);
  gap: 6px;
  padding: 6px;
}

.bach-catalog-page .bach-workshop-nav a {
  border: 0;
  border-radius: 9px;
  color: #4f4a40;
  min-width: 0;
  padding: 9px 14px;
}

.bach-catalog-page .bach-workshop-nav a:hover,
.bach-catalog-page .bach-workshop-nav a:focus-visible {
  background: var(--bach-accent-soft);
  color: var(--bach-accent-ink);
  text-decoration: none;
}

.bach-catalog-page .bach-workshop-nav a.is-active {
  background: var(--bach-accent);
  color: #fff;
  box-shadow: 0 5px 12px rgba(48, 42, 34, .17);
}

.bach-catalog-page .bach-catalog-panel,
.bach-catalog-page .bach-workshop-card,
.bach-catalog-page .bach-formula-block {
  background: #fffdf8;
  border: 1px solid #ded8ca;
  border-radius: 16px;
  box-shadow: 0 10px 24px rgba(48, 42, 34, .08);
  min-width: 0;
  overflow: visible;
}

.bach-catalog-page .bach-workshop-card > header,
.bach-catalog-page .bach-formula-block > header {
  background: var(--bach-accent-soft);
  border-bottom: 1px solid #ded8ca;
  border-radius: 15px 15px 0 0;
  padding: 14px 16px;
}

.bach-catalog-page .bach-workshop-card__number,
.bach-catalog-page .bach-formula-block__number {
  align-items: center;
  background: var(--bach-accent);
  border-radius: 8px;
  box-shadow: 0 4px 9px rgba(48, 42, 34, .16);
  color: #fff;
  display: inline-flex;
  font-weight: 850;
  height: 34px;
  justify-content: center;
  min-width: 34px;
}

.bach-catalog-page .bach-catalog-filters {
  align-items: end;
  grid-template-columns: minmax(280px, 1.5fr) minmax(240px, .75fr);
}

.bach-catalog-page .field,
.bach-catalog-page .field > label,
.bach-catalog-page input,
.bach-catalog-page select,
.bach-catalog-page textarea {
  min-width: 0;
}

.bach-catalog-page input,
.bach-catalog-page select {
  min-height: 44px;
  width: 100%;
}

.bach-catalog-page textarea {
  min-height: 104px;
  resize: vertical;
  width: 100%;
}

.bach-catalog-page .field > span {
  color: #514b41;
  font-size: var(--font-size-label, .83rem);
  font-weight: var(--font-weight-label, 800);
  line-height: 1.25;
  margin-bottom: 6px;
}

.bach-catalog-page .bach-catalog-item > summary {
  gap: 13px;
  grid-template-columns: 54px minmax(245px, 1.45fr) minmax(110px, .48fr) minmax(180px, .68fr) minmax(150px, auto);
  padding: 12px 14px;
}

.bach-catalog-page .bach-catalog-item > summary > *,
.bach-catalog-page .bach-catalog-item__identity,
.bach-catalog-page .bach-catalog-item__format {
  min-width: 0;
}

.bach-catalog-page .bach-catalog-item__identity strong,
.bach-catalog-page .bach-catalog-item__identity span,
.bach-catalog-page .bach-catalog-item__format {
  overflow-wrap: anywhere;
  white-space: normal;
}

.bach-catalog-page .bach-catalog-item__brand {
  background: var(--bach-accent-soft);
  border: 1px solid color-mix(in srgb, var(--bach-accent) 34%, #fff);
  color: var(--bach-accent-ink);
  box-shadow: 0 4px 9px rgba(48, 42, 34, .1);
}

.bach-catalog-page .bach-catalog-item__summary {
  grid-template-columns: 92px minmax(245px, 1.45fr) minmax(110px, .48fr) minmax(180px, .68fr) minmax(150px, auto);
}

.bach-catalog-page .bach-catalog-item__brand {
  align-items: center;
  background: #fff;
  border-radius: 11px;
  display: flex;
  height: 64px;
  justify-content: center;
  overflow: hidden;
  padding: 7px;
  position: relative;
  width: 92px;
}

.bach-catalog-item__brand-fallback {
  color: var(--bach-accent-ink);
  font-size: var(--font-size-help, .72rem);
  font-weight: var(--font-weight-label, 900);
  letter-spacing: .04em;
}

.bach-catalog-item__brand-logo {
  background: #fff;
  height: calc(100% - 14px);
  inset: 7px;
  max-height: 50px;
  max-width: 78px;
  object-fit: contain;
  position: absolute;
  width: calc(100% - 14px);
}

.bach-catalog-item__brand-logo[hidden] { display: none; }

.bach-catalog-page .bach-catalog-item[open] {
  border-color: var(--bach-accent);
  box-shadow: 0 9px 20px rgba(48, 42, 34, .1);
}

.bach-catalog-page .bach-catalog-item__details {
  background: #faf8f2;
}

.bach-reference-workspace {
  align-items: start;
}

.bach-reference-form-card,
.bach-reference-library {
  min-width: 0;
  overflow: hidden;
}

.bach-reference-library {
  padding: 0;
}

.bach-reference-library > .aenima-numbered-section-header {
  margin: 0 14px 12px;
  padding: 14px 0 12px;
}

.bach-reference-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 14px;
  padding: 16px;
}

.bach-reference-form .field,
.bach-reference-form .input,
.bach-reference-form input,
.bach-reference-form select,
.bach-reference-form textarea {
  box-sizing: border-box;
  max-width: 100%;
  min-width: 0;
  width: 100%;
}

.bach-reference-form .checkbox-field {
  align-items: center;
  align-self: end;
  border: 1px solid #ded8ca;
  border-radius: 10px;
  display: flex;
  gap: 9px;
  min-height: 44px;
  padding: 9px 12px;
}

.bach-reference-form .checkbox-field input {
  flex: 0 0 auto;
  height: 18px;
  width: 18px;
}

.bach-reference-form .checkbox-field span {
  margin: 0;
}

.bach-reference-form__action {
  align-items: center;
  border-top: 1px solid #e5dfd3;
  display: flex;
  justify-content: flex-end;
  padding-top: 13px;
}

.bach-reference-list .bach-reference-item {
  align-items: flex-start;
}

.bach-reference-list .bach-reference-item > div {
  flex: 1;
}

.bach-reference-list .bach-reference-item form {
  flex: 0 0 auto;
  margin: 0;
}

.bach-reference-library__filters {
  background: #fff;
  border-bottom: 1px solid #e5dfd3;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(0, 1.3fr) minmax(150px, .7fr);
  padding: 14px;
  position: sticky;
  top: 0;
  z-index: 2;
}

.bach-reference-library__filters .field,
.bach-reference-library__filters .input {
  box-sizing: border-box;
  margin: 0;
  max-width: 100%;
  min-width: 0;
  width: 100%;
}

.bach-reference-library > .bach-catalog-results {
  margin: 0;
  padding: 11px 14px 0;
}

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

.bach-reference-group > h3 {
  color: var(--color-primary-strong);
  font-size: var(--font-size-card-title, .82rem);
  letter-spacing: .04em;
  margin: 4px 0 0;
  text-transform: uppercase;
}

.bach-reference-item__source {
  color: var(--color-primary);
  display: block;
  font-size: var(--font-size-help, .68rem);
  font-weight: var(--font-weight-label, 850);
  letter-spacing: .06em;
  margin-bottom: 3px;
  text-transform: uppercase;
}

.bach-reference-item--personal {
  border-left-color: var(--color-secondary);
}

@container (max-width: 520px) {
  .bach-reference-library__filters {
    grid-template-columns: minmax(0, 1fr);
  }

  .bach-reference-item {
    align-items: stretch;
    flex-direction: column;
  }
}

.bach-catalog-item--personal {
  border-left: 5px solid var(--bach-accent);
}

.bach-catalog-item__actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  justify-content: flex-end;
}

.bach-catalog-item__actions form {
  margin: 0;
}

.bach-factory-ingredient-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.bach-factory-ingredient {
  align-items: stretch;
  background: #fffdf8;
  border: 1px solid #ded8ca;
  border-radius: 12px;
  box-shadow: 0 6px 14px rgba(48, 42, 34, .07);
  display: grid;
  grid-template-columns: 7px minmax(0, 1fr);
  overflow: hidden;
  padding: 0;
}

.bach-factory-ingredient__mark { background: #ad654c; }
.bach-factory-ingredient[data-ingredient-code="alcohol_40_plus"] .bach-factory-ingredient__mark { background: #8c5651; }
.bach-factory-ingredient[data-ingredient-code="spring_water"] .bach-factory-ingredient__mark { background: #4f8198; }
.bach-factory-ingredient[data-ingredient-code="maple_syrup"] .bach-factory-ingredient__mark { background: #a76a3f; }
.bach-factory-ingredient[data-ingredient-code="agave_syrup"] .bach-factory-ingredient__mark { background: #62856a; }
.bach-factory-ingredient[data-ingredient-code="glycerin"] .bach-factory-ingredient__mark { background: #776489; }
.bach-factory-ingredient[data-ingredient-code="apple_cider_vinegar"] .bach-factory-ingredient__mark { background: #b88243; }

.bach-factory-ingredient__body {
  min-width: 0;
  padding: 12px 13px;
}

.bach-factory-ingredient__body p,
.bach-ingredient-item p,
.bach-formula-item p {
  overflow-wrap: anywhere;
}

.bach-workshop-grid {
  align-items: start;
  grid-template-columns: minmax(0, 1.15fr) minmax(330px, .85fr);
  gap: 14px;
}

.bach-workshop-grid--read-only {
  grid-template-columns: minmax(0, 1fr);
  max-width: 960px;
  margin-inline: auto;
}

.bach-ingredient-form-card,
.bach-ingredient-library {
  container-type: inline-size;
  min-width: 0;
  overflow: hidden;
}

.bach-ingredient-library {
  max-height: calc(100vh - 112px);
  max-height: calc(100dvh - 112px);
  overflow-y: auto;
  position: sticky;
  top: 92px;
  z-index: 4;
}

.bach-ingredient-form {
  box-sizing: border-box;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 14px;
  max-width: 100%;
  min-width: 0;
  padding: 16px;
  width: 100%;
}

.bach-ingredient-form .field,
.bach-ingredient-form .input,
.bach-ingredient-form input,
.bach-ingredient-form select,
.bach-ingredient-form textarea {
  box-sizing: border-box;
  max-width: 100%;
  min-width: 0;
  width: 100%;
}

.bach-ingredient-form__action {
  align-items: center;
  border-top: 1px solid #e5dfd3;
  display: flex;
  justify-content: flex-end;
  margin-top: 2px;
  padding-top: 13px;
}

@container (max-width: 440px) {
  .bach-ingredient-form {
    grid-template-columns: minmax(0, 1fr);
  }

  .bach-ingredient-form .field-span-2,
  .bach-ingredient-form__action {
    grid-column: auto;
  }
}

@media (max-width: 720px) {
  .bach-ingredient-library {
    max-height: calc(100vh - 168px);
    max-height: calc(100dvh - 168px);
    top: 148px;
  }
}

.bach-ingredient-list,
.bach-formula-list {
  gap: 8px;
  padding: 12px;
}

.bach-ingredient-list__heading {
  color: var(--color-primary);
  font-size: var(--font-size-label);
  font-weight: var(--font-weight-label);
  line-height: var(--line-height-title);
  margin: 8px 0 0;
}

.bach-ingredient-item--system {
  background: var(--color-surface-muted);
}

.bach-ingredient-item--system .badge {
  flex: 0 0 auto;
}

.bach-ingredient-item,
.bach-formula-item {
  background: #faf8f2;
  border: 1px solid #e2dccf;
  border-left: 5px solid var(--bach-accent);
  border-radius: 10px;
  box-shadow: 0 4px 10px rgba(48, 42, 34, .06);
  gap: 12px;
  padding: 11px 12px;
}

.bach-formula-meta,
.bach-formula-notes {
  gap: 12px 14px;
  padding: 16px;
}

.bach-formula-rows {
  gap: 9px;
  padding: 0 16px 16px;
}

.bach-formula-row {
  background: #faf8f2;
  border-left: 5px solid var(--bach-accent);
  box-shadow: 0 5px 12px rgba(48, 42, 34, .06);
  gap: 10px;
  grid-template-columns: minmax(240px, 2fr) minmax(76px, .38fr) minmax(90px, .44fr) minmax(120px, .72fr) minmax(130px, .68fr) minmax(160px, 1fr) auto;
  padding: 11px 12px;
}

.bach-formula-hint {
  background: var(--bach-accent-soft);
  border-left-color: var(--bach-accent);
  color: #49443b;
}

.bach-workshop-empty {
  align-items: center;
  background: var(--bach-accent-soft);
  border: 1px dashed var(--bach-accent);
  border-radius: 12px;
  color: var(--bach-accent-ink);
  display: flex;
  gap: 12px;
  margin: 14px;
  padding: 16px;
}

.bach-workshop-empty::before {
  background: var(--bach-accent);
  border-radius: 50%;
  box-shadow: 0 4px 10px rgba(48, 42, 34, .14);
  content: "";
  flex: 0 0 11px;
  height: 11px;
}

@media (max-width: 1180px) {
  .bach-catalog-page .bach-catalog-item__summary {
    grid-template-columns: 92px minmax(220px, 1fr) minmax(105px, .45fr) minmax(165px, .65fr);
  }

  .bach-catalog-page .bach-catalog-item > summary {
    grid-template-columns: 52px minmax(220px, 1fr) minmax(105px, .45fr) minmax(165px, .65fr);
  }

  .bach-catalog-page .bach-catalog-item > summary .btn { grid-column: 2 / -1; justify-self: start; }
  .bach-workshop-grid { grid-template-columns: minmax(0, 1fr); }
  .bach-formula-row { grid-template-columns: repeat(2, minmax(220px, 1fr)); }
  .bach-formula-row__component { grid-column: 1 / -1; }
}

@media (max-width: 820px) {
  .bach-catalog-page .bach-catalog-filters,
  .bach-reference-form,
  .bach-ingredient-form,
  .bach-formula-meta,
  .bach-formula-notes { grid-template-columns: minmax(0, 1fr); }

  .bach-ingredient-form .field-span-2,
  .bach-reference-form .field-span-2,
  .bach-formula-meta .field-span-2 { grid-column: auto; }
  .bach-factory-ingredient-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bach-catalog-page .bach-catalog-item__brand { height: 56px; width: 82px; }
  .bach-catalog-page .bach-catalog-item__summary { grid-template-columns: 82px minmax(0, 1fr) auto; }
}

@media (max-width: 620px) {
  .bach-catalog-page .bach-catalog-hero { padding: 17px 18px; }
  .bach-catalog-page .bach-workshop-nav { align-items: stretch; flex-direction: column; }
  .bach-catalog-page .bach-catalog-item > summary { grid-template-columns: 46px minmax(0, 1fr); }
  .bach-catalog-page .bach-catalog-item > summary > * { grid-column: 2; }
  .bach-catalog-page .bach-catalog-item__brand { grid-column: 1; grid-row: 1 / span 3; }
  .bach-catalog-page .bach-catalog-item__brand { width: 74px; }
  .bach-catalog-page .bach-catalog-item__summary { grid-template-columns: 74px minmax(0, 1fr); }
  .bach-catalog-page .bach-catalog-item > summary .btn { grid-column: 2; width: 100%; }
  .bach-factory-ingredient-grid,
  .bach-formula-row { grid-template-columns: minmax(0, 1fr); }
  .bach-formula-row__component { grid-column: auto; }
}

/* Mélanges maison — composants exclusivement issus des catalogues. */
.home-mixture-page {
  --home-mix-accent: #6c5875;
  --home-mix-accent-soft: #f1ebf3;
  --home-mix-ink: #493c50;
  display: grid;
  gap: 14px;
  min-width: 0;
}

.home-mixture-hero {
  background: #fffdf8;
  border: 1px solid #ddd7ca;
  border-left: 7px solid var(--home-mix-accent);
  border-radius: 16px;
  box-shadow: 0 11px 25px rgba(47, 40, 50, .1);
  min-width: 0;
  padding: 20px 24px;
}

.home-mixture-hero h1 { color: var(--home-mix-ink); }
.home-mixture-hero p { max-width: 760px; }

.home-mixture-field--form-choice { grid-column: 1 / -1; min-width: 0; }
.form-choice-groups { display: grid; gap: var(--ui-space-4, 16px); min-width: 0; }
.form-choice-group { display: grid; gap: var(--ui-space-2, 8px); min-width: 0; }
.form-choice-group[hidden] { display: none; }
.form-choice-group { --form-choice-group-accent: var(--color-text-soft); }
.form-choice-group--cutaneous { --form-choice-group-accent: var(--color-secondary-strong); }
.form-choice-group--liquid { --form-choice-group-accent: var(--color-primary-strong); }
.form-choice-group--plant_extract { --form-choice-group-accent: var(--color-identity-strong); }
.form-choice-group--dry { --form-choice-group-accent: var(--color-highlight-strong); }
.form-choice-group--other { --form-choice-group-accent: var(--color-text-soft); }
.form-choice-group h3 { color: var(--form-choice-group-accent); font-size: var(--font-size-label, .875rem); font-weight: var(--font-weight-label, 700); margin: 0; }
.form-choice-grid { display: grid; gap: var(--ui-space-2, 8px); grid-template-columns: repeat(auto-fit, minmax(min(100%, 174px), 1fr)); min-width: 0; }
.form-choice { align-items: center; background: var(--color-surface); border: 1px solid rgb(var(--color-primary-rgb) / .22); border-radius: var(--ui-radius-control, 8px); box-sizing: border-box; color: var(--color-text); cursor: pointer; display: grid; gap: 2px 8px; grid-template-columns: auto minmax(0, 1fr) auto; min-height: 42px; padding: 8px 10px; }
.form-choice:has(input:checked) { background: rgb(var(--color-secondary-rgb) / .13); border-color: var(--color-secondary); color: var(--color-primary-strong); }
.form-choice:focus-within { outline: 3px solid rgb(var(--color-highlight-rgb) / .32); outline-offset: 2px; }
.form-choice input { accent-color: var(--color-secondary); block-size: 16px; inline-size: 16px; margin: 0; }
.form-choice span { font-size: var(--font-size-control, .875rem); font-weight: var(--font-weight-label, 700); min-width: 0; }
.form-choice small { color: var(--color-text-soft); font-size: var(--font-size-help, .8125rem); font-weight: var(--font-weight-label, 700); }
.preparation-species-field { min-width: 0; }
.preparation-species-choices { display: flex; flex-wrap: wrap; gap: var(--ui-space-2, 8px); min-width: 0; }
.preparation-species-choices label { align-items: center; background: var(--color-surface); border: 1px solid rgb(var(--color-primary-rgb) / .22); border-radius: var(--ui-radius-control, 8px); box-sizing: border-box; color: var(--color-text); cursor: pointer; display: inline-flex; gap: 8px; min-height: 42px; padding: 8px 10px; }
.preparation-species-choices label:has(input:checked) { background: rgb(var(--color-secondary-rgb) / .13); border-color: var(--color-secondary); color: var(--color-primary-strong); }
.preparation-species-choices input { accent-color: var(--color-secondary); block-size: 16px; inline-size: 16px; margin: 0; }
.preparation-species-choices span { font-size: var(--font-size-control, .875rem); font-weight: var(--font-weight-label, 700); }

.home-mixture-library,
.home-mixture-form-section {
  background: #fffdf8;
  border: 1px solid #ddd7ca;
  border-radius: 16px;
  box-shadow: 0 9px 21px rgba(47, 40, 50, .08);
  container-type: inline-size;
  min-width: 0;
  overflow: hidden;
  padding: 0;
}

.home-mixture-section-heading {
  align-items: center;
  background: var(--home-mix-accent-soft);
  border-bottom: 1px solid #ddd7ca;
  display: flex;
  gap: 11px;
  min-width: 0;
  padding: 14px 16px;
}

.home-mixture-section-heading > span {
  align-items: center;
  background: var(--home-mix-accent);
  border-radius: 8px;
  box-shadow: 0 4px 9px rgba(47, 40, 50, .16);
  color: #fff;
  display: inline-flex;
  flex: 0 0 34px;
  font-size: var(--font-size-caption, .76rem);
  font-weight: var(--font-weight-label, 900);
  height: 34px;
  justify-content: center;
}

.home-mixture-section-heading > div { min-width: 0; }
.home-mixture-section-heading small { color: #6d5c73; display: block; font-size: var(--font-size-help, .69rem); font-weight: var(--font-weight-label, 850); letter-spacing: .07em; text-transform: uppercase; }
.home-mixture-section-heading h2 { color: var(--home-mix-ink); font-size: var(--font-size-card-title, 1.03rem); margin: 2px 0 0; }
.home-mixture-section-heading .btn { margin-left: auto; white-space: nowrap; }

.home-mixture-list { display: grid; gap: 9px; padding: 14px; }

.home-mixture-card {
  align-items: center;
  background: #faf8f2;
  border: 1px solid #e0dacd;
  border-left: 5px solid var(--home-mix-accent);
  border-radius: 11px;
  box-shadow: 0 5px 12px rgba(47, 40, 50, .06);
  display: flex;
  gap: 14px;
  min-width: 0;
  padding: 12px 13px;
}

.home-mixture-card__main { color: inherit; flex: 1; min-width: 0; text-decoration: none; }
.home-mixture-card__main:hover { text-decoration: none; }
.home-mixture-card__category { background: var(--home-mix-accent-soft); border-radius: 7px; color: var(--home-mix-ink); display: inline-block; font-size: var(--font-size-table, .7rem); font-weight: var(--font-weight-label, 850); padding: 4px 7px; }
.home-mixture-card h3 { color: var(--home-mix-ink); font-size: var(--font-size-card-title, 1rem); margin: 6px 0 4px; overflow-wrap: anywhere; }
.home-mixture-card p { align-items: center; color: var(--color-text-soft); display: flex; flex-wrap: wrap; font-size: var(--font-size-table, .8rem); gap: 10px; margin: 0; }
.home-mixture-card__actions { align-items: center; display: flex; flex: 0 0 auto; gap: 7px; }

@container (max-width: 560px) {
  .home-mixture-library .home-mixture-card {
    align-items: stretch;
    flex-direction: column;
    gap: 11px;
  }
  .home-mixture-library .home-mixture-card__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }
  .home-mixture-library .home-mixture-card__actions .btn,
  .home-mixture-library .home-mixture-card__actions form,
  .home-mixture-library .home-mixture-card__actions form .btn {
    box-sizing: border-box;
    min-width: 0;
    width: 100%;
  }
  .home-mixture-library .home-mixture-card__actions form { grid-column: 1 / -1; }
}

.home-mixture-empty { align-items: center; background: var(--home-mix-accent-soft); border: 1px dashed var(--home-mix-accent); border-radius: 12px; display: flex; flex-wrap: wrap; gap: 10px 14px; margin: 14px; padding: 16px; }
.home-mixture-empty strong { color: var(--home-mix-ink); }
.home-mixture-empty p { flex: 1 1 360px; margin: 0; }

.home-mixture-form { display: grid; gap: 14px; min-width: 0; }

.home-mixture-workspace {
  align-items: start;
}

.bach-formula-workspace {
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr);
}

.bach-formula-workspace__main { container-type: inline-size; min-width: 0; }

.bach-formula-library {
  --home-mix-accent: var(--bach-accent);
  --home-mix-accent-soft: var(--bach-accent-soft);
  --home-mix-ink: var(--bach-accent-ink);
}

.bach-formula-library .home-mixture-card.is-current {
  background: var(--bach-accent-soft);
  border-color: var(--bach-accent);
  box-shadow: 0 0 0 2px rgb(var(--color-highlight-rgb) / .18), 0 5px 12px rgba(47, 40, 50, .06);
}

.home-mixture-library .home-mixture-card.is-current {
  background: var(--home-mix-accent-soft);
  border-color: var(--home-mix-accent);
  box-shadow: 0 0 0 2px rgb(var(--color-secondary-rgb) / .16), 0 5px 12px rgba(47, 40, 50, .06);
}

.bach-formula-library .home-mixture-card__category { background: rgb(var(--color-primary-rgb) / .1); }

@media (max-width: 1100px) {
  .bach-formula-workspace { grid-template-columns: minmax(0, 1fr); }
  .bach-formula-workspace .bach-formula-library { max-height: none; position: static; }
}

@container (max-width: 940px) {
  .bach-formula-workspace__main .bach-formula-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bach-formula-workspace__main .bach-formula-row__component { grid-column: 1 / -1; }
  .bach-formula-workspace__main .bach-formula-row__notes { grid-column: 1 / -1; }
}

@container (max-width: 610px) {
  .bach-formula-workspace__main .bach-formula-row,
  .bach-formula-workspace__main .bach-formula-notes { grid-template-columns: minmax(0, 1fr); }
  .bach-formula-workspace__main .field-span-2,
  .bach-formula-workspace__main .bach-formula-row__component { grid-column: auto; }
  .bach-formula-workspace__main .bach-formula-block > header { align-items: flex-start; flex-wrap: wrap; }
  .bach-formula-workspace__main .bach-formula-block > header .btn { margin-left: 46px; max-width: calc(100% - 46px); }
  .bach-formula-workspace__main .bach-formula-editor__form > .form-actions { padding-right: 0; }
}

.home-mixture-create-card {
  container-type: inline-size;
  min-width: 0;
  overflow: hidden;
}

.home-mixture-create-card > .aenima-numbered-section-header {
  border-bottom: 1px solid #ddd7ca;
  margin-bottom: 0;
  padding-bottom: 14px;
}

.home-mixture-form--embedded {
  gap: 0;
  padding-top: 14px;
}

.home-mixture-form--embedded .home-mixture-form-section {
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.home-mixture-form--embedded .home-mixture-form-section + .home-mixture-form-section {
  border-top: 1px solid #ddd7ca;
}

.home-mixture-form--embedded > .form-actions {
  border-top: 1px solid #ddd7ca;
  margin: 0;
  padding: 14px var(--ui-space-4, 16px) var(--ui-space-4, 16px);
}

.home-mixture-library--sticky {
  max-height: calc(100vh - 112px);
  max-height: calc(100dvh - 112px);
  overflow-y: auto;
  position: sticky;
  top: 92px;
  z-index: 4;
}

.home-mixture-fields {
  box-sizing: border-box;
  display: grid;
  gap: 12px 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-width: 0;
  padding: 16px;
  width: 100%;
}

.home-mixture-fields--identity { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.home-mixture-field--wide { grid-column: span 2; }
.home-mixture-field--full { grid-column: 1 / -1; }

.home-mixture-page .home-mixture-field--preparation-unit .input {
  field-sizing: content;
  min-width: 8ch;
  width: auto;
}

.home-mixture-page .field,
.home-mixture-page .input,
.home-mixture-page input,
.home-mixture-page select,
.home-mixture-page textarea {
  box-sizing: border-box;
  max-width: 100%;
  min-width: 0;
  width: 100%;
}

.home-mixture-page .field > span { color: #514a53; font-size: var(--font-size-label, .82rem); font-weight: var(--font-weight-label, 800); line-height: 1.25; margin-bottom: 6px; }
.home-mixture-page input,
.home-mixture-page select { min-height: 44px; }
.home-mixture-page textarea { min-height: 112px; resize: vertical; }

.home-mixture-catalog-links {
  align-items: center;
  background: #f8f4ea;
  border-bottom: 1px solid #e2dccf;
  color: #625b50;
  display: flex;
  flex-wrap: wrap;
  font-size: var(--font-size-table, .79rem);
  gap: 7px 13px;
  padding: 10px 16px;
}

.home-mixture-catalog-links span { font-weight: var(--font-weight-label, 800); }
.home-mixture-catalog-links a { color: var(--home-mix-ink); font-weight: var(--font-weight-label, 850); text-decoration: none; }
.home-mixture-catalog-links a:hover { color: var(--home-mix-accent); text-decoration: none; }

.home-mixture-items { display: grid; gap: 9px; min-width: 0; padding: 14px 16px 16px; }

.home-mixture-item {
  background: #faf8f2;
  border: 1px solid #ded8ca;
  border-left: 5px solid var(--home-mix-accent);
  border-radius: 11px;
  box-shadow: 0 5px 12px rgba(47, 40, 50, .06);
  min-width: 0;
}

.home-mixture-item > summary {
  align-items: center;
  color: var(--home-mix-ink);
  cursor: pointer;
  display: flex;
  font-size: var(--font-size-body, 1rem);
  font-weight: var(--font-weight-label, 800);
  gap: 8px;
  min-height: 44px;
  padding: 0 12px;
}

.home-mixture-item > summary::marker { color: var(--home-mix-accent); }
.home-mixture-item > summary:focus-visible { outline: 3px solid var(--home-mix-accent); outline-offset: -3px; }

.home-mixture-item__body {
  align-items: end;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(220px, 1.65fr) minmax(76px, .38fr) minmax(90px, .44fr) minmax(120px, .72fr) minmax(130px, .68fr) minmax(160px, 1fr) auto;
  min-width: 0;
  padding: 11px 12px;
}

.home-mixture-item__body > * { min-width: 0; }

@container (max-width: 880px) {
  .home-mixture-fields--identity { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-mixture-field--wide { grid-column: 1 / -1; }
  .home-mixture-item__body { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-mixture-item__source { grid-column: 1 / -1; }
  .home-mixture-item__notes { grid-column: 1 / -1; }
  .home-mixture-item .btn { justify-self: start; }
}

@container (max-width: 580px) {
  .home-mixture-fields,
  .home-mixture-fields--identity,
  .home-mixture-item__body { grid-template-columns: minmax(0, 1fr); }
  .home-mixture-field--wide,
  .home-mixture-field--full,
  .home-mixture-item__source,
  .home-mixture-item__notes { grid-column: auto; }
  .home-mixture-section-heading { align-items: flex-start; flex-wrap: wrap; }
  .home-mixture-section-heading .btn { margin-left: 45px; width: calc(100% - 45px); }
}

@media (max-width: 720px) {
  .home-mixture-hero { align-items: stretch; padding: 17px 18px; }
  .home-mixture-hero .btn { width: 100%; }
  .home-mixture-card { align-items: stretch; flex-direction: column; }
  .home-mixture-card__actions { flex-wrap: wrap; }
  .home-mixture-library--sticky {
    max-height: calc(100vh - 168px);
    max-height: calc(100dvh - 168px);
    top: 148px;
  }
}

/* Fiche praticien — déclinaison cohérente de la fiche animal. */
.practitioner-detail-hero {
  --practitioner-accent: #735b7d;
  --practitioner-accent-soft: #eee7f1;
}
.practitioner-detail-hero__monogram {
  background: #eee7f1;
  border-color: #735b7d;
  box-shadow: 0 12px 26px rgba(83, 60, 94, .2);
  color: #4d3657;
}
.practitioner-detail-tags .animal-detail-tag--species {
  background: #eee7f1;
  border-color: #cbbbd1;
  color: #4d3657;
}
.practitioner-detail-tags .animal-detail-tag--phone {
  background: #92563f;
  border-color: #744331;
  color: #ffffff;
  box-shadow:
    0 6px 0 rgba(146, 86, 63, .14),
    0 11px 20px rgba(84, 58, 49, .16);
}
.practitioner-detail-actions {
  grid-template-columns: repeat(3, minmax(150px, 1fr));
  max-width: 590px;
}
.practitioner-profile-panels {
  align-items: stretch;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.practitioner-profile-panels > .animal-profile-card { height: 100%; min-width: 0; }
.practitioner-profile-panels .client-contact-list,
.practitioner-profile-panels .animal-profile-card__notes { min-width: 0; }
@media (max-width: 1120px) {
  .practitioner-detail-actions { grid-template-columns: repeat(2, minmax(150px, 1fr)); max-width: none; }
}
@media (max-width: 680px) {
  .practitioner-detail-actions { grid-template-columns: minmax(0, 1fr); }
  .practitioner-profile-panels { grid-template-columns: minmax(0, 1fr); }
}

/* Mise en page libre des questionnaires : quatre colonnes maximum. */
.questionnaire-builder__composition [data-questionnaire-items] {
  grid-auto-flow: row dense;
  grid-auto-rows: 48px;
  grid-template-columns: repeat(12, minmax(0, 1fr));
}
.questionnaire-a3-paper { position:relative; }
.questionnaire-page-break {
  align-self:stretch;
  background:linear-gradient(to bottom,#fff 0,#fff calc(100% - 24px),#e9e5e0 calc(100% - 24px),#e9e5e0 100%);
  border:0;
  box-shadow:none;
  grid-column:1 / -1;
  min-height:0;
  margin:0 -25px;
  position:relative;
}
.questionnaire-page-break::before,
.questionnaire-page-break::after {
  color:#766e68;
  font-size:.7rem;
  font-weight:850;
  letter-spacing:.04em;
  position:absolute;
  right:25px;
}
.questionnaire-page-break::before {
  border-top:1px solid #ddd5dc;
  bottom:29px;
  content:attr(data-previous-label);
  left:25px;
  padding-top:10px;
  text-align:right;
}
.questionnaire-page-break::after {
  content:none;
  display:none;
}
.questionnaire-editor-page-number {
  border-top:1px solid #ddd5dc;
  color:#6f686f;
  font-size:var(--font-size-table, .72rem);
  font-weight:var(--font-weight-label, 850);
  grid-column:1 / -1;
  letter-spacing:.04em;
  margin-top:8px;
  padding-top:10px;
  text-align:right;
  align-items:flex-end;
  display:flex;
  justify-content:flex-end;
  bottom:20px;
  left:25px;
  position:absolute;
  right:25px;
}
.page-orientation-toggle{align-items:center;cursor:pointer;display:inline-flex;gap:6px;justify-content:center;transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease}.page-orientation-toggle::before{background:currentColor;border-radius:1px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5);content:"";height:13px;opacity:.78;width:9px}.page-orientation-toggle:hover,.page-orientation-toggle:focus-visible{background:#365f4f;border-color:#365f4f;color:#fff;box-shadow:0 4px 11px rgba(54,95,79,.22);outline:0}.questionnaire-page-break__orientation{position:absolute;right:25px;top:17px;z-index:3}.report-page-orientation-marker{align-items:center;border-bottom:1px dashed #bcb0c0;border-top:1px dashed #bcb0c0;display:flex;gap:12px;grid-column:1/-1;justify-content:flex-end;margin:8px 0;padding:10px 0}.report-page-orientation-marker>span{color:#746a76;font-size:.72rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}
.page-orientation-switch{align-items:center;background:#eee9e3;border:1px solid #cfc5bd;border-radius:999px;color:#645c57;cursor:pointer;display:inline-grid;font:inherit;font-size:var(--font-size-table, .69rem);font-weight:var(--font-weight-label, 850);gap:7px;grid-template-columns:auto 34px auto;min-height:34px;padding:4px 9px;white-space:nowrap}.page-orientation-switch i{background:#c8beb6;border-radius:999px;display:block;height:18px;position:relative;transition:background-color .2s ease;width:34px}.page-orientation-switch i::after{background:#fff;border-radius:50%;box-shadow:0 2px 5px rgba(52,43,38,.25);content:"";height:14px;left:2px;position:absolute;top:2px;transition:transform .2s ease;width:14px}.page-orientation-switch[aria-checked="false"] span:first-child,.page-orientation-switch[aria-checked="true"] span:last-child{color:#315f4d}.page-orientation-switch[aria-checked="true"] i{background:#477761}.page-orientation-switch[aria-checked="true"] i::after{transform:translateX(16px)}.page-orientation-switch:hover,.page-orientation-switch:focus-visible{border-color:#477761;box-shadow:0 0 0 3px rgba(71,119,97,.14);outline:0}.questionnaire-page-break__orientation{position:absolute;right:25px;top:13px;z-index:3}
.questionnaire-editor-sheet,.report-editor-sheet{background:#fff;border:1px solid #d8d1ca;box-shadow:0 16px 38px rgba(52,43,38,.16);box-sizing:border-box;grid-column:1/-1;margin:24px 0 0 -25px;overflow:visible}.questionnaire-editor-sheet--portrait,.report-editor-sheet--portrait{min-height:1123px;width:794px}.questionnaire-editor-sheet--landscape,.report-editor-sheet--landscape{min-height:794px;width:1123px}.questionnaire-editor-sheet__header,.report-editor-sheet__header{align-items:center;background:#f5f1eb;border-bottom:1px solid #ded6cd;display:flex;justify-content:space-between;min-height:62px;padding:13px 25px}.questionnaire-editor-sheet__header>strong,.report-editor-sheet__header>strong{color:#557365;font-size:var(--font-size-table, .72rem);font-weight:var(--font-weight-label, 900);letter-spacing:.07em;text-transform:uppercase}.questionnaire-editor-sheet__body,.report-editor-sheet__body{align-content:start;display:grid;gap:10px;grid-auto-flow:row dense;grid-auto-rows:48px;grid-template-columns:repeat(12,minmax(0,1fr));padding:22px 25px}.report-editor-sheet__body{gap:11px;grid-auto-rows:auto}.questionnaire-editor-sheet__footer{align-self:end;border-top:1px solid #ddd5dc;color:#6f686f;font-size:var(--font-size-table, .72rem);font-weight:var(--font-weight-label, 850);grid-column:1/-1;letter-spacing:.04em;margin:0 25px;padding:10px 0 16px;text-align:right}.questionnaire-editor-sheet__footer--first{margin-top:8px}.report-editor-sheet{margin-left:-27px}.report-editor-sheet__header{padding-left:27px;padding-right:27px}.report-editor-sheet__body{padding:24px 27px}
.questionnaire-editor-sheet,.report-editor-sheet{display:flex;flex-direction:column}.questionnaire-editor-sheet__body,.report-editor-sheet__body{flex:1}
.questionnaire-editor-sheet__header .questionnaire-page-break__orientation{position:static;right:auto;top:auto;z-index:auto}
.questionnaire-editor-sheet__header .page-orientation-switch,.report-editor-sheet__header .page-orientation-switch{position:sticky;right:16px;z-index:4}
.report-fill-paper.questionnaire-a3-paper--portrait{max-width:794px;width:794px}.report-fill-paper.questionnaire-a3-paper--landscape{max-width:1123px;width:1123px}.report-fill-sheet{background:#fff;border:1px solid #d8d1ca;box-shadow:0 16px 38px rgba(52,43,38,.14);box-sizing:border-box;display:flex;flex-direction:column;grid-column:1/-1;margin:26px 0 0 -27px}.report-fill-sheet--portrait{min-height:1123px;width:794px}.report-fill-sheet--landscape{min-height:794px;width:1123px}.report-fill-sheet__header{align-items:center;background:#f5f1eb;border-bottom:1px solid #ded6cd;display:flex;justify-content:space-between;min-height:62px;padding:13px 27px}.report-fill-sheet__header strong{color:#557365;font-size:var(--font-size-table, .72rem);font-weight:var(--font-weight-label, 900);letter-spacing:.07em;text-transform:uppercase}.report-fill-sheet__header span{background:#e6efe9;border:1px solid #bad0c4;border-radius:7px;color:#365f4f;font-size:var(--font-size-caption, .7rem);font-weight:var(--font-weight-label, 900);padding:6px 8px;position:sticky;right:16px;white-space:nowrap}.report-fill-sheet__body{align-content:start;display:grid;flex:1;gap:12px;grid-template-columns:repeat(12,minmax(0,1fr));padding:24px 27px}.report-fill-sheet__footer{border-top:1px solid #ddd5dc;color:#6f686f;font-size:var(--font-size-table, .72rem);font-weight:var(--font-weight-label, 850);letter-spacing:.04em;margin:0 27px;padding:10px 0 17px;text-align:right}
.report-photo-picker__panel:has(.report-photo-picker__upload){grid-template-rows:auto auto minmax(0,1fr) auto}.report-photo-picker__grid{min-height:0}.report-photo-picker__upload{align-items:end;background:#f4f7f5;border:1px solid #c9d9d1;border-radius:12px;display:grid;gap:10px;grid-template-columns:minmax(220px,1fr) minmax(190px,.65fr) auto;margin:14px 16px;padding:12px}.report-photo-picker__upload label{color:#4e6259;display:grid;font-size:var(--font-size-label, .72rem);font-weight:var(--font-weight-label, 850);gap:5px;min-width:0}.report-photo-picker__upload label span{display:block}.report-photo-picker__upload input[type="file"],.report-photo-picker__upload input[type="text"]{background:#fff;border:1px solid #c8d1cc;border-radius:9px;box-sizing:border-box;color:#383f3b;font:inherit;min-height:41px;min-width:0;padding:8px 10px;width:100%}.report-photo-picker__upload-status{color:#3f6c58;font-size:var(--font-size-caption, .72rem);font-weight:var(--font-weight-label, 800);grid-column:1/-1;min-height:1em}@media(max-width:760px){.report-photo-picker__upload{align-items:stretch;grid-template-columns:minmax(0,1fr)}}
.report-photo-picker__sources{align-items:center;display:flex;flex-wrap:wrap;gap:8px;min-width:0}.report-photo-picker__sources .btn{min-height:42px}.report-photo-picker__sources .btn.is-active{background:#4d806b;border-color:#4d806b;color:#fff}.report-photo-picker__empty{color:#746c76;grid-column:1/-1;margin:20px 0;padding:20px;text-align:center}@media(max-width:760px){.report-photo-picker__sources{display:grid;grid-template-columns:minmax(0,1fr)}.report-photo-picker__sources .btn{width:100%}}
.report-gallery-source-field{align-items:start;display:grid;gap:6px;justify-items:start;min-width:0}.report-gallery-source-field select{box-sizing:border-box;field-sizing:content;max-width:100%;min-height:42px;width:auto}.report-gallery-source-field>small{color:#746c76;font-size:.72rem;line-height:1.4}
.report-block-media__thumbs--single{grid-template-columns:minmax(0,1fr)}.report-block-media__thumbs--single figure{align-items:center;background:#eee9ef;display:flex;height:auto;justify-content:center;min-height:160px}.report-block-media__thumbs--single img{display:block;height:auto;max-height:320px;max-width:100%;object-fit:contain;width:auto}.report-preview__photo-grid{align-items:start}.report-preview__photo-grid>figure{align-items:center;background:#f5f1f6;border-radius:7px;display:flex;justify-content:center;overflow:hidden;padding:8px}.report-preview__photo-grid img{display:block;height:auto;max-height:320px;max-width:100%;object-fit:contain;width:auto}.report-preview__photo-grid--single{align-items:center;background:#f5f1f6;border-radius:7px;display:flex;justify-content:center;min-height:180px;padding:8px}.report-preview__photo-grid--single img{display:block;height:auto;max-height:420px;max-width:100%;object-fit:contain;width:auto}.report-preview__photo-grid--session>figure{align-items:stretch;flex-direction:column}.report-preview__photo-grid--session>figure>img{align-self:center}.report-preview__photo-grid--single-session{background:transparent;display:grid;grid-template-columns:minmax(0,min(100%,440px));justify-content:center;min-height:0;padding:0}.report-preview__photo-grid--single-session>figure{box-sizing:border-box;margin:0;width:100%}.report-preview__photo-observation{color:#514952;font-size:.78rem;font-weight:500;line-height:1.42;margin-top:8px;text-align:left;white-space:pre-wrap}
.questionnaire-response-position {
  background:#eee8f0;
  border:1px solid #d3c7d7;
  border-radius:11px;
  display:grid;
  gap:5px;
  grid-template-columns:repeat(2,minmax(0,1fr));
  max-width:430px;
  padding:5px;
}
.questionnaire-response-position__option {
  background:transparent;
  border:1px solid transparent;
  border-radius:8px;
  color:#625768;
  cursor:pointer;
  font:inherit;
  font-size:var(--font-size-table, .74rem);
  font-weight:var(--font-weight-label, 850);
  min-height:36px;
  padding:7px 10px;
}
.questionnaire-response-position__option:hover {
  background:#f8f5f9;
  color:#4f3d56;
}
.questionnaire-response-position__option.is-active {
  background:#fff;
  border-color:#cbbdce;
  box-shadow:0 4px 10px rgba(55,43,60,.1);
  color:#4d6f60;
}

.questionnaire-mapping-panel{background:#f4f8f6;border:1px solid #bfd3c9;border-left:4px solid #3f765e;border-radius:11px;display:grid;gap:10px;padding:11px 12px}.questionnaire-mapping-panel__heading{align-items:center;display:flex;gap:9px}.questionnaire-mapping-panel__heading>svg{fill:none;flex:0 0 auto;height:24px;stroke:#3f765e;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9;width:24px}.questionnaire-mapping-panel__heading>div{display:grid;gap:1px}.questionnaire-mapping-panel__heading strong{color:#365c4d;font-size:var(--font-size-card-title, .78rem)}.questionnaire-mapping-panel__heading small{color:#66766f;font-size:var(--font-size-help, .68rem);font-weight:var(--font-weight-label, 650);line-height:1.3}.questionnaire-mapping-panel__controls{align-items:end;display:grid;gap:9px;grid-template-columns:minmax(180px,230px) minmax(220px,340px);justify-content:start}.questionnaire-mapping-panel.has-dropdown-source .questionnaire-mapping-panel__controls{grid-template-columns:minmax(0,.8fr) minmax(0,1fr) minmax(0,1.15fr);justify-content:stretch}.questionnaire-mapping-panel__controls .questionnaire-item-field{font-size:var(--font-size-table, .68rem)}.questionnaire-mapping-panel__controls select{min-height:38px;padding-bottom:7px;padding-top:7px}.questionnaire-mapping-panel__controls select:disabled{background:#ecefeb;color:#878d89;cursor:not-allowed}@media(max-width:820px){.questionnaire-mapping-panel__controls,.questionnaire-mapping-panel.has-dropdown-source .questionnaire-mapping-panel__controls{grid-template-columns:minmax(0,1fr)}}
.questionnaire-builder .questionnaire-item-card.is-selected .questionnaire-mapping-panel{grid-column:1/-1;min-width:0}
.questionnaire-custom-field-modal__body{padding:17px 19px}.questionnaire-custom-field-modal__body>p{color:#655c67;font-size:var(--font-size-table, .8rem);line-height:1.45;margin:0}.questionnaire-custom-field-modal__type{align-items:center;background:#f2f6f3;border:1px solid #c9d9d1;border-radius:10px;display:flex;gap:12px;justify-content:space-between;margin-top:12px;padding:10px 12px}.questionnaire-custom-field-modal__type span{color:#6b756f;font-size:var(--font-size-caption, .7rem);font-weight:var(--font-weight-label, 800)}.questionnaire-custom-field-modal__type strong{color:#365f4f;font-size:var(--font-size-caption, .76rem)}.questionnaire-custom-field-modal__error{background:#f9e7e6;border:1px solid #dbaaa7;border-radius:8px;color:#853d39!important;font-weight:var(--font-weight-label, 750);margin-top:12px!important;padding:8px 10px}.questionnaire-custom-field-modal .app-confirm-modal__panel{max-width:520px;width:min(520px,calc(100vw - 30px))}.questionnaire-mapping-panel__custom-separator{color:#8c858d}
.animal-profile-custom-fields{border-top:4px solid #477761;margin-top:18px;padding:18px}.animal-profile-custom-fields__list{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:14px}.animal-profile-custom-fields__list>div{background:#f5f8f6;border:1px solid #cfddd6;border-radius:10px;min-width:0;padding:10px 12px}.animal-profile-custom-fields__list dt{color:#5e6e66;font-size:var(--font-size-label, .7rem);font-weight:var(--font-weight-label, 850)}.animal-profile-custom-fields__list dd{color:#3f4743;margin:4px 0 0;overflow-wrap:anywhere}@media(max-width:700px){.animal-profile-custom-fields__list{grid-template-columns:minmax(0,1fr)}}
.report-template-builder .report-template-settings{grid-template-columns:minmax(220px,.85fr) minmax(180px,.45fr) minmax(280px,1.1fr)}
.report-template-builder .questionnaire-mapping-panel{grid-column:1/-1;min-width:0}
.report-template-builder .report-module-library [data-add-type][hidden]{display:none!important}

/* Éditeur de texte riche des comptes rendus */
.zoodja-rich-text{background:#fff;border:1px solid #cec5d0;border-radius:10px;box-sizing:border-box;max-width:100%;min-width:0;overflow:visible;width:100%}
.zoodja-rich-text:focus-within{border-color:#72577c;box-shadow:0 0 0 3px rgba(114,87,124,.13)}
.zoodja-rich-text__toolbar{align-items:center;background:#f6f2f6;border-bottom:1px solid #ddd4df;border-radius:9px 9px 0 0;display:flex;flex-wrap:wrap;gap:5px;padding:7px}
.zoodja-rich-text__button{align-items:center;background:#fff;border:1px solid #d5ccd7;border-radius:7px;box-sizing:border-box;color:#514756;cursor:pointer;display:inline-flex;font:inherit;font-size:var(--font-size-control, .72rem);font-weight:var(--font-weight-label, 750);justify-content:center;min-height:34px;padding:6px 9px;white-space:nowrap;width:auto}
.zoodja-rich-text__button:hover,.zoodja-rich-text__button:focus-visible{background:#eaf2ee;border-color:#7d9d8f;color:#315c4b;outline:0}
.zoodja-rich-text__button.is-active{background:#72577c;border-color:#72577c;color:#fff}
.zoodja-rich-text__button svg{fill:none;height:18px;stroke:currentColor;stroke-linecap:round;stroke-width:2;width:18px}
.zoodja-rich-text__color-group{align-items:center;border-left:1px solid #d5ccd7;display:inline-flex;flex-wrap:wrap;gap:5px;min-width:0;padding-left:8px}
.zoodja-rich-text__color-picker{align-items:center;color:var(--color-text);display:inline-flex;gap:6px;font-size:var(--font-size-control);font-weight:var(--font-weight-label);white-space:nowrap}
.zoodja-rich-text__color-input{background:#fff;border:1px solid #d5ccd7;border-radius:7px;box-sizing:border-box;cursor:pointer;height:34px;max-width:100%;padding:3px;width:42px}
.zoodja-rich-text__color-input:hover{border-color:var(--color-primary-deep)}
.zoodja-rich-text__color-input:focus-visible{outline:2px solid var(--color-primary-deep);outline-offset:2px}
.zoodja-rich-text__color-input::-webkit-color-swatch-wrapper{padding:0}
.zoodja-rich-text__color-input::-webkit-color-swatch{border:0;border-radius:4px}
.zoodja-rich-text__color-input::-moz-color-swatch{border:0;border-radius:4px}
.zoodja-rich-text__label-group{display:contents}
.zoodja-rich-text__label-panel{align-items:end;background:var(--color-surface,#fff);border:1px solid var(--color-border,#d5ccd7);border-radius:12px;box-sizing:border-box;display:flex;flex:1 0 100%;flex-wrap:wrap;gap:8px;max-width:100%;padding:12px;position:static;width:100%}
.zoodja-rich-text__label-panel[hidden]{display:none}
.zoodja-rich-text__label-field{color:var(--color-text);display:grid;flex:1 1 6rem;font-size:var(--font-size-control);font-weight:var(--font-weight-label);gap:4px;min-width:0}
.zoodja-rich-text__label-input{background:#fff;border:1px solid var(--color-border,#d5ccd7);border-radius:7px;box-sizing:border-box;color:var(--color-text);font:inherit;height:38px;max-width:100%;padding:3px 6px;width:100%}
.zoodja-rich-text__label-input:focus-visible{outline:2px solid var(--color-primary-deep);outline-offset:2px}
.zoodja-rich-text__label-panel>.zoodja-rich-text__button{min-height:38px}
.zoodja-rich-text__label-feedback{color:var(--color-text-soft);flex-basis:100%;font-size:var(--font-size-caption)}
.zoodja-rich-text__label-preview{display:inline-block;flex:0 0 auto;max-width:100%;overflow-wrap:anywhere}
.zoodja-rich-text__size-picker{align-items:center;color:var(--color-text);display:inline-flex;gap:6px;font-size:var(--font-size-control);font-weight:var(--font-weight-label);white-space:nowrap}
.zoodja-rich-text__size-input{background:#fff;border:1px solid #d5ccd7;border-radius:7px;box-sizing:border-box;color:var(--color-text);font:inherit;height:34px;padding:4px 6px;width:5.5ch}
.zoodja-rich-text__size-input:focus-visible{outline:2px solid var(--color-primary-deep);outline-offset:2px}
.zoodja-rich-text__link-group{align-items:center;display:inline-flex;flex-wrap:wrap;gap:5px;min-width:0}
.zoodja-rich-text__link{background:#fff;border:1px solid #d5ccd7;border-radius:7px;box-sizing:border-box;color:#514756;font:inherit;font-size:var(--font-size-table, .72rem);min-height:34px;max-width:100%;padding:6px 8px;width:20ch}
.zoodja-rich-text__link-page{background:#fff;border:1px solid #d5ccd7;border-radius:7px;color:#514756;font:inherit;min-height:34px;max-width:100%;padding:6px 8px;width:min(25ch,100%)}
.admin-communication-form .zoodja-rich-text__content a,.admin-communication-preview a,.communication-campaign a{color:inherit;text-decoration:none}
.zoodja-rich-text__link-group--visible{background:rgb(var(--color-primary-rgb) / .05);border:1px solid var(--color-border);border-radius:var(--ui-radius-control,12px);display:flex;flex-basis:100%;gap:8px 12px;min-width:0;padding:10px 12px;width:100%}
.zoodja-rich-text__link-label{align-items:center;display:flex;flex-wrap:wrap;gap:5px 10px;font-size:var(--font-size-control,.84rem);font-weight:var(--font-weight-label,750)}
.zoodja-rich-text__link-group--visible .zoodja-rich-text__link{font-weight:400;width:min(100%,28ch)}
.zoodja-rich-text__link-help{color:var(--color-text-soft);flex-basis:100%;font-size:var(--font-size-caption,.76rem);font-weight:400;order:3}
.zoodja-rich-text__image-group{align-items:center;border-left:1px solid #d5ccd7;display:inline-flex;flex-wrap:wrap;gap:5px;min-width:0;padding-left:8px}
.zoodja-rich-text__image-group[hidden]{display:none}
.zoodja-rich-text__image-width{background:#fff;border:1px solid #d5ccd7;border-radius:7px;box-sizing:border-box;color:#514756;font:inherit;font-size:var(--font-size-table, .72rem);min-height:34px;padding:5px 8px;width:auto}
.zoodja-rich-text__editor{max-width:100%;min-width:0}
.zoodja-rich-text__content{box-sizing:border-box;color:#383239;display:flow-root;font:inherit;line-height:1.55;min-height:150px;outline:0;padding:14px;white-space:normal}
.zoodja-rich-text__content strong{font-weight:800}
.zoodja-rich-text__emoji-group{display:inline-flex;position:relative}
.zoodja-rich-text__emoji-picker{background:var(--color-surface,#fff);border:1px solid var(--color-border,#d5ccd7);border-radius:12px;box-shadow:0 12px 28px rgb(23 49 50 / .18);box-sizing:border-box;display:grid;gap:6px;left:0;max-height:min(22rem,55vh);overflow-y:auto;padding:10px;position:absolute;top:calc(100% + 6px);width:min(20rem,calc(100vw - 2rem));z-index:50}
.zoodja-rich-text__emoji-picker[hidden]{display:none}
.zoodja-rich-text__emoji-heading{color:var(--color-text-soft,#5c6566);font-size:var(--font-size-help,.78rem);margin-top:5px}
.zoodja-rich-text__emoji-grid{display:grid;gap:3px;grid-template-columns:repeat(7,minmax(0,1fr))}
.zoodja-rich-text__emoji-grid .zoodja-rich-text__button{font-size:var(--font-size-card-title,1.25rem);min-width:0;padding:5px}
.zoodja-rich-text__content>*:first-child,.report-rich-content>*:first-child{margin-top:0}
.zoodja-rich-text__content>*:last-child,.report-rich-content>*:last-child{margin-bottom:0}
.zoodja-rich-text__content p,.report-rich-content p{margin:.45em 0;white-space:pre-wrap}
.zoodja-rich-text__content h2,.zoodja-rich-text__content h3,.report-rich-content h2,.report-rich-content h3{color:inherit;font-family:inherit;line-height:1.25;margin:.85em 0 .35em}
.zoodja-rich-text__content h2,.report-rich-content h2{font-size:1.35em}.zoodja-rich-text__content h3,.report-rich-content h3{font-size:1.14em}
.zoodja-rich-text__content ul,.zoodja-rich-text__content ol,.report-rich-content ul,.report-rich-content ol{margin:.5em 0;padding-left:1.5em}
.zoodja-rich-text__content blockquote,.report-rich-content blockquote{border-left:3px solid #db70a6;color:#665b66;margin:.7em 0;padding:.25em 0 .25em .9em}
.zoodja-rich-text__content a,.report-rich-content a{color:#315f4d;font-weight:650;text-decoration:none}
.zoodja-rich-text__content table,.report-rich-content table{border-collapse:collapse;margin:.75em 0;table-layout:fixed;width:100%}
.zoodja-rich-text__content th,.zoodja-rich-text__content td,.report-rich-content th,.report-rich-content td{border:1px solid #cfc6d1;box-sizing:border-box;min-width:1em;padding:7px 8px;position:relative;vertical-align:top}
.zoodja-rich-text__content th,.report-rich-content th{background:#eee7ef;font-weight:800}
.zoodja-rich-text__content .selectedCell::after{background:rgba(219,112,166,.13);content:"";inset:0;pointer-events:none;position:absolute}
.zoodja-rich-text__content .column-resize-handle{background:#72577c;bottom:-2px;pointer-events:none;position:absolute;right:-2px;top:0;width:4px}
.report-rich-content{color:inherit;display:flow-root;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:1.5;max-width:100%;min-width:0;text-decoration:inherit}
.zoodja-rich-text__content .report-rich-image,.report-rich-content .report-rich-image{box-sizing:border-box;display:block;margin:var(--ui-space-5,20px) auto;max-width:100%;min-width:0;text-align:center}
.zoodja-rich-text__content .report-rich-image--w30,.report-rich-content .report-rich-image--w30{width:30%}
.zoodja-rich-text__content .report-rich-image--w45,.report-rich-content .report-rich-image--w45{width:45%}
.zoodja-rich-text__content .report-rich-image--w60,.report-rich-content .report-rich-image--w60{width:60%}
.zoodja-rich-text__content .report-rich-image--w75,.report-rich-content .report-rich-image--w75{width:75%}
.zoodja-rich-text__content .report-rich-image--w100,.report-rich-content .report-rich-image--w100{width:100%}
.zoodja-rich-text__content .report-rich-image--left,.report-rich-content .report-rich-image--left{float:left;margin:0 var(--ui-space-5,20px) var(--ui-space-3,12px) 0}
.zoodja-rich-text__content .report-rich-image--right,.report-rich-content .report-rich-image--right{float:right;margin:0 0 var(--ui-space-3,12px) var(--ui-space-5,20px)}
.zoodja-rich-text__content .report-rich-image img,.report-rich-content .report-rich-image img{display:block;height:auto;max-height:360px;max-width:100%;object-fit:contain;width:100%}
.zoodja-rich-text__content .report-rich-image figcaption,.report-rich-content .report-rich-image figcaption{color:var(--color-text-soft);font-size:var(--font-size-help);line-height:var(--line-height-body);text-align:center}
.report-module-rest .report-rich-content{color:var(--report-tone,#403941);font:inherit;max-height:8.4em;overflow:hidden}
.report-preview-block>.report-rich-content{margin:0}
@media(max-width:640px){.zoodja-rich-text__toolbar{gap:4px}.zoodja-rich-text__button,.zoodja-rich-text__image-width{min-height:42px}.zoodja-rich-text__link{min-height:42px;width:min(100%,20ch)}.zoodja-rich-text__content{min-height:180px;padding:12px}.zoodja-rich-text__content .report-rich-image--left,.zoodja-rich-text__content .report-rich-image--right,.report-rich-content .report-rich-image--left,.report-rich-content .report-rich-image--right{float:none;margin:var(--ui-space-4,16px) auto;min-width:min(100%,220px);width:min(100%,360px)}}
.report-module-rest__mapping{background:#edf5f1;border:1px solid #bfd3c9;border-radius:999px;color:#365f4f;display:inline-flex;font-family:"Source Sans 3","Source Sans Pro",sans-serif;font-size:var(--font-size-help, .68rem);font-style:normal;font-weight:var(--font-weight-label, 800);line-height:1.2;margin-top:8px;max-width:100%;padding:4px 8px;text-decoration:none}
@media(max-width:900px){.report-template-builder .report-template-settings{grid-template-columns:minmax(0,1fr)}}
.questionnaire-module-rest.is-response-right {
  align-items:start;
  column-gap:10px;
  grid-template-columns:fit-content(46%) minmax(130px,1fr);
  grid-template-rows:auto 1fr;
}
.questionnaire-module-rest__heading { justify-content:flex-start; }
.questionnaire-module-rest__required {
  background:transparent!important;
  border-radius:0!important;
  color:#98544d!important;
  display:inline;
  flex:0 0 auto;
  font-size:var(--font-size-body, .9rem)!important;
  height:auto;
  line-height:1;
  padding:0!important;
  width:auto;
}
.questionnaire-item-card:not(.is-selected) .questionnaire-module-rest.is-response-right { display:grid; }
.questionnaire-module-rest.is-response-right .questionnaire-module-rest__heading { grid-column:1;grid-row:1; }
.questionnaire-module-rest.is-response-right .questionnaire-module-rest__help { grid-column:1;grid-row:2;margin-bottom:0; }
.questionnaire-module-rest.is-response-right .questionnaire-module-rest__input,
.questionnaire-module-rest.is-response-right .questionnaire-module-rest__select,
.questionnaire-module-rest.is-response-right .questionnaire-module-rest__choices,
.questionnaire-module-rest.is-response-right .questionnaire-module-rest__photo,
.questionnaire-module-rest.is-response-right .questionnaire-module-rest__document {
  align-self:start;
  grid-column:2;
  grid-row:1 / span 2;
  margin-top:0;
}
.client-questionnaire-field.client-questionnaire-response-right {
  align-items:start;
  column-gap:10px;
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:auto 1fr;
}
.client-questionnaire-preview-shell .client-questionnaire-response-right>legend {
  align-self:start;
  grid-column:1;
  grid-row:1;
  margin:0!important;
  max-width:100%;
  width:auto;
}
.client-questionnaire-response-right>.client-questionnaire-field__help { grid-column:1;grid-row:2;margin:0!important;width:var(--response-prompt-width,46%); }
.client-questionnaire-response-right>input,
.client-questionnaire-response-right>select,
.client-questionnaire-response-right>textarea,
.client-questionnaire-response-right>.client-questionnaire-text-response,
.client-questionnaire-response-right>.client-questionnaire-number,
.client-questionnaire-response-right>.client-questionnaire-choices,
.client-questionnaire-response-right>.client-questionnaire-photo,
.client-questionnaire-response-right>.client-questionnaire-document-upload {
  align-self:start;
  grid-column:1;
  grid-row:1 / span 2;
  margin-left:calc(var(--response-prompt-width,0px) + 10px)!important;
  margin-top:-16px!important;
  width:calc(100% - var(--response-prompt-width,0px) - 10px)!important;
}
.client-questionnaire-response-right>input,.client-questionnaire-response-right>.client-questionnaire-text-response>input{font-size:.77rem;height:39px;min-height:39px;padding:8px 11px}
.client-questionnaire-response-right>select{font-size:.77rem;height:39px;min-height:39px;padding-bottom:8px;padding-top:8px}
.client-questionnaire-preview-shell .client-questionnaire-number{box-sizing:border-box;height:44px;min-height:44px}
.client-questionnaire-preview-shell .client-questionnaire-number input{box-sizing:border-box;height:42px;min-height:42px;line-height:20px}
.client-questionnaire-preview-shell .client-questionnaire-response-right>.client-questionnaire-number{height:39px;min-height:39px}
.client-questionnaire-preview-shell .client-questionnaire-response-right>.client-questionnaire-number input{height:37px;min-height:37px;padding-bottom:8px;padding-top:8px}
@media(max-width:620px){
  .questionnaire-module-rest.is-response-right,
  .client-questionnaire-field.client-questionnaire-response-right{grid-template-columns:minmax(0,1fr)}
  .questionnaire-module-rest.is-response-right .questionnaire-module-rest__heading,
  .questionnaire-module-rest.is-response-right .questionnaire-module-rest__help,
  .questionnaire-module-rest.is-response-right .questionnaire-module-rest__input,
  .questionnaire-module-rest.is-response-right .questionnaire-module-rest__select,
  .questionnaire-module-rest.is-response-right .questionnaire-module-rest__choices,
  .questionnaire-module-rest.is-response-right .questionnaire-module-rest__photo,
  .questionnaire-module-rest.is-response-right .questionnaire-module-rest__document,
  .client-questionnaire-response-right>legend,
  .client-questionnaire-response-right>.client-questionnaire-field__help,
  .client-questionnaire-response-right>input,
  .client-questionnaire-response-right>select,
  .client-questionnaire-response-right>textarea,
  .client-questionnaire-response-right>.client-questionnaire-text-response,
  .client-questionnaire-response-right>.client-questionnaire-number,
  .client-questionnaire-response-right>.client-questionnaire-choices,
  .client-questionnaire-response-right>.client-questionnaire-photo,
  .client-questionnaire-response-right>.client-questionnaire-document-upload{grid-column:1;grid-row:auto;margin-left:0!important;width:100%!important}
}
.questionnaire-builder__composition .questionnaire-dropzone { display: none; grid-column: 1 / -1; }
.questionnaire-builder.is-dragging-module .questionnaire-dropzone,
.questionnaire-builder__composition .questionnaire-dropzone:only-child { display: flex; }
.questionnaire-builder__composition .questionnaire-dropzone:only-child { background:#f7f3f8; border-color:#cfc2d3; color:#69566f; height:52px; margin:0; }
.questionnaire-item-card--span-1 { grid-column: span 1; }
.questionnaire-item-card--span-2 { grid-column: span 2; }
.questionnaire-item-card--span-3 { grid-column: span 3; }
.questionnaire-item-card--span-4 { grid-column: 1 / -1; }
.questionnaire-item-card--cols-1{grid-column:span 1}.questionnaire-item-card--cols-2{grid-column:span 2}.questionnaire-item-card--cols-3{grid-column:span 3}.questionnaire-item-card--cols-4{grid-column:span 4}.questionnaire-item-card--cols-5{grid-column:span 5}.questionnaire-item-card--cols-6{grid-column:span 6}.questionnaire-item-card--cols-7{grid-column:span 7}.questionnaire-item-card--cols-8{grid-column:span 8}.questionnaire-item-card--cols-9{grid-column:span 9}.questionnaire-item-card--cols-10{grid-column:span 10}.questionnaire-item-card--cols-11{grid-column:span 11}.questionnaire-item-card--cols-12{grid-column:1/-1}
.questionnaire-item-card--row-start.questionnaire-item-card--cols-1{grid-column:1/span 1}.questionnaire-item-card--row-start.questionnaire-item-card--cols-2{grid-column:1/span 2}.questionnaire-item-card--row-start.questionnaire-item-card--cols-3{grid-column:1/span 3}.questionnaire-item-card--row-start.questionnaire-item-card--cols-4{grid-column:1/span 4}.questionnaire-item-card--row-start.questionnaire-item-card--cols-5{grid-column:1/span 5}.questionnaire-item-card--row-start.questionnaire-item-card--cols-6{grid-column:1/span 6}.questionnaire-item-card--row-start.questionnaire-item-card--cols-7{grid-column:1/span 7}.questionnaire-item-card--row-start.questionnaire-item-card--cols-8{grid-column:1/span 8}.questionnaire-item-card--row-start.questionnaire-item-card--cols-9{grid-column:1/span 9}.questionnaire-item-card--row-start.questionnaire-item-card--cols-10{grid-column:1/span 10}.questionnaire-item-card--row-start.questionnaire-item-card--cols-11{grid-column:1/span 11}.questionnaire-item-card--row-start.questionnaire-item-card--cols-12{grid-column:1/-1}
.questionnaire-item-card--rows-1{grid-row-end:span 1;min-height:48px}.questionnaire-item-card--rows-2{grid-row-end:span 2;min-height:106px}.questionnaire-item-card--rows-3{grid-row-end:span 3;min-height:164px}.questionnaire-item-card--rows-4{grid-row-end:span 4;min-height:222px}.questionnaire-item-card--rows-5{grid-row-end:span 5;min-height:280px}.questionnaire-item-card--rows-6{grid-row-end:span 6;min-height:338px}.questionnaire-item-card--rows-7{grid-row-end:span 7;min-height:396px}.questionnaire-item-card--rows-8{grid-row-end:span 8;min-height:454px}.questionnaire-item-card--rows-9{grid-row-end:span 9;min-height:512px}.questionnaire-item-card--rows-10{grid-row-end:span 10;min-height:570px}.questionnaire-item-card--rows-11{grid-row-end:span 11;min-height:628px}.questionnaire-item-card--rows-12{grid-row-end:span 12;min-height:686px}
.questionnaire-item-card[data-span="1"] .questionnaire-item-card__fields,
.questionnaire-item-card[data-span="2"] .questionnaire-item-card__fields { grid-template-columns: minmax(0, 1fr); }
.questionnaire-item-card[data-span="1"] .questionnaire-item-card__head { align-items:flex-start; flex-wrap:wrap; }
.questionnaire-item-card[data-span="1"] .questionnaire-item-card__head > div { width:100%; }
.client-questionnaire-form { grid-template-columns: minmax(0, 1fr); }
.client-questionnaire-span-1 { grid-column: span 1; }
.client-questionnaire-span-2 { grid-column: span 2; }
.client-questionnaire-span-3 { grid-column: span 3; }
.client-questionnaire-span-4,
.client-questionnaire-form__footer,
.client-questionnaire-empty { grid-column: 1 / -1; }
.client-questionnaire-cols-1{grid-column:span 1}.client-questionnaire-cols-2{grid-column:span 2}.client-questionnaire-cols-3{grid-column:span 3}.client-questionnaire-cols-4{grid-column:span 4}.client-questionnaire-cols-5{grid-column:span 5}.client-questionnaire-cols-6{grid-column:span 6}.client-questionnaire-cols-7{grid-column:span 7}.client-questionnaire-cols-8{grid-column:span 8}.client-questionnaire-cols-9{grid-column:span 9}.client-questionnaire-cols-10{grid-column:span 10}.client-questionnaire-cols-11{grid-column:span 11}.client-questionnaire-cols-12{grid-column:1/-1}
.client-questionnaire-row-start.client-questionnaire-cols-1{grid-column:1/span 1}.client-questionnaire-row-start.client-questionnaire-cols-2{grid-column:1/span 2}.client-questionnaire-row-start.client-questionnaire-cols-3{grid-column:1/span 3}.client-questionnaire-row-start.client-questionnaire-cols-4{grid-column:1/span 4}.client-questionnaire-row-start.client-questionnaire-cols-5{grid-column:1/span 5}.client-questionnaire-row-start.client-questionnaire-cols-6{grid-column:1/span 6}.client-questionnaire-row-start.client-questionnaire-cols-7{grid-column:1/span 7}.client-questionnaire-row-start.client-questionnaire-cols-8{grid-column:1/span 8}.client-questionnaire-row-start.client-questionnaire-cols-9{grid-column:1/span 9}.client-questionnaire-row-start.client-questionnaire-cols-10{grid-column:1/span 10}.client-questionnaire-row-start.client-questionnaire-cols-11{grid-column:1/span 11}.client-questionnaire-row-start.client-questionnaire-cols-12{grid-column:1/-1}
.client-questionnaire-column-start-1{grid-column-start:1!important}.client-questionnaire-column-start-2{grid-column-start:2!important}.client-questionnaire-column-start-3{grid-column-start:3!important}.client-questionnaire-column-start-4{grid-column-start:4!important}.client-questionnaire-column-start-5{grid-column-start:5!important}.client-questionnaire-column-start-6{grid-column-start:6!important}.client-questionnaire-column-start-7{grid-column-start:7!important}.client-questionnaire-column-start-8{grid-column-start:8!important}.client-questionnaire-column-start-9{grid-column-start:9!important}.client-questionnaire-column-start-10{grid-column-start:10!important}.client-questionnaire-column-start-11{grid-column-start:11!important}.client-questionnaire-column-start-12{grid-column-start:12!important}
.client-questionnaire-rows-1{min-height:48px}.client-questionnaire-rows-2{min-height:106px}.client-questionnaire-rows-3{min-height:164px}.client-questionnaire-rows-4{min-height:222px}.client-questionnaire-rows-5{min-height:280px}.client-questionnaire-rows-6{min-height:338px}.client-questionnaire-rows-7{min-height:396px}.client-questionnaire-rows-8{min-height:454px}.client-questionnaire-rows-9{min-height:512px}.client-questionnaire-rows-10{min-height:570px}.client-questionnaire-rows-11{min-height:628px}.client-questionnaire-rows-12{min-height:686px}
@media (max-width: 720px) {
  .questionnaire-builder__composition [data-questionnaire-items],
  .client-questionnaire-form { grid-template-columns: minmax(0, 1fr); }
  .questionnaire-item-card,
  .client-questionnaire-span-1,
  .client-questionnaire-span-2,
  .client-questionnaire-span-3,
  .client-questionnaire-span-4 { grid-column: 1; }
  .questionnaire-item-card__fields { grid-template-columns: minmax(0, 1fr); }
}

/* Réponse extensible sous forme de liste à puces. */
.questionnaire-field-library button[data-add-question="bullet_list"]::before{content:"•≡";font-size:2.5rem}
.questionnaire-field-library button[data-add-question="document_upload"]::before{content:"PDF";font-family:inherit;font-size:1.7rem;letter-spacing:-.05em}
.questionnaire-module-rest__bullet-list{display:grid;gap:6px;margin-top:10px}
.questionnaire-module-rest__bullet-list>div{align-items:center;background:#fff;border:1px solid #cfc6d1;border-radius:9px;color:#6f6672;display:grid;gap:8px;grid-template-columns:12px minmax(0,1fr);min-height:36px;padding:7px 10px}
.questionnaire-module-rest__bullet-list span{color:#72587c;font-size:var(--font-size-body, 1rem);font-weight:var(--font-weight-label, 900)}
.questionnaire-module-rest__bullet-list em{font-size:var(--font-size-table, .76rem);font-style:normal}
.questionnaire-module-rest.is-response-right .questionnaire-module-rest__bullet-list{align-self:start;grid-column:2;grid-row:1/span 2;margin-top:0}
.client-questionnaire-bullet-list{align-content:start;display:grid;gap:8px;grid-auto-rows:max-content;min-width:0}
.client-questionnaire-bullet-list ul{display:grid;gap:7px;list-style:none;margin:0;padding:0}
.client-questionnaire-bullet-list li{align-items:center;display:grid;gap:7px;grid-template-columns:12px minmax(0,1fr) 31px}
.client-questionnaire-bullet-list li::before{color:#72587c;content:"•";font-size:1.1rem;font-weight:900}
.client-questionnaire-bullet-list input{background:#fff;border:1px solid #cfc6d1;border-radius:9px;box-shadow:0 2px 7px rgba(50,41,54,.06) inset;color:#342e37;font:inherit;min-height:41px;min-width:0;padding:9px 11px;width:100%}
.client-questionnaire-bullet-list [data-remove-bullet]{align-items:center;background:#f6ecec;border:1px solid #dfc3c3;border-radius:8px;color:#88494b;cursor:pointer;display:flex;font-size:1.05rem;height:31px;justify-content:center;width:31px}
.client-questionnaire-bullet-list [data-add-bullet]{align-self:start;background:#edf3f0;border:1px solid #bfd1c8;border-radius:9px;color:#3d6655;cursor:pointer;font:inherit;font-size:.75rem;font-weight:850;height:36px;justify-self:start;min-height:36px;padding:7px 11px}
.client-questionnaire-bullet-list [data-add-bullet]:hover{background:#3f705d;border-color:#3f705d;color:#fff}
.client-questionnaire-response-right>.client-questionnaire-bullet-list{align-self:start;grid-column:2;grid-row:1/span 2;margin-left:var(--response-prompt-width,0px)!important;margin-top:-16px!important;width:calc(100% - var(--response-prompt-width,0px))!important}
@media(max-width:620px){.questionnaire-module-rest.is-response-right .questionnaire-module-rest__bullet-list,.client-questionnaire-response-right>.client-questionnaire-bullet-list{grid-column:1;grid-row:auto;margin-left:0!important;width:100%!important}}
.questionnaire-item-card__head button.questionnaire-module-action--delete{color:#96534d}
.questionnaire-item-card__head button.questionnaire-module-action--delete svg{fill:none;height:15px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8;width:15px}
.questionnaire-item-card__head button.questionnaire-module-action--delete:hover,.questionnaire-item-card__head button.questionnaire-module-action--delete:focus-visible{background:#96534d;border-color:#96534d;color:#fff;outline:0}
.questionnaire-item-card__head button.questionnaire-module-action--rest{color:#62566a;font-size:var(--font-size-control, 1rem);font-weight:var(--font-weight-label, 800)}
.questionnaire-item-card__head button.questionnaire-module-action--rest:hover,.questionnaire-item-card__head button.questionnaire-module-action--rest:focus-visible{background:#62566a;border-color:#62566a;color:#fff;outline:0}
.questionnaire-module-close-row{align-items:center;display:flex!important;grid-column:1/-1;justify-content:flex-end;padding-top:2px}
.questionnaire-module-close-button{background:#f3eef5;border:1px solid #d4c8d8;border-radius:7px;color:#5c4d62;cursor:pointer;font:inherit;font-size:.68rem;font-weight:800;min-height:28px;padding:5px 9px}
.questionnaire-module-close-button:hover,.questionnaire-module-close-button:focus-visible{background:#62566a;border-color:#62566a;color:#fff;outline:0}

/* Accent orange global ---------------------------------------------------
   Complète la palette AENIMA sans remplacer le vert ni le terracotta. */
.hero-card .badge,
.aenima-page-hero .badge {
  box-shadow:
    inset 3px 0 0 var(--color-highlight),
    0 5px 0 rgb(var(--color-secondary-rgb) / 0.07);
}

.card > .page-header h2,
.card-section > .page-header h2,
.section-nested > .page-header h2 {
  border-left: 3px solid var(--color-highlight);
  padding-left: 9px;
}

.dashboard-page .dashboard-section-heading h2 {
  border-left: 0;
  padding-left: 0;
}

.table thead th {
  box-shadow: inset 0 -2px 0 rgb(var(--color-highlight-rgb) / 0.2);
}

.btn-secondary:hover,
.btn-secondary:focus-visible {
  border-color: rgb(var(--color-highlight-rgb) / 0.72);
}

input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
textarea,
select {
  caret-color: var(--color-highlight-strong);
}


/* Fiche facture --------------------------------------------------------- */
.invoice-detail-page {
  display: grid;
  gap: 20px;
}

.invoice-detail-page > * {
  margin: 0;
}

.invoice-detail-hero {
  align-items: center;
  flex-wrap: wrap;
}

.invoice-detail-hero .practitioner-page-hero__actions {
  align-items: center;
  justify-content: flex-end;
}

.practitioner-page-hero .btn:is(.btn-back, .btn-arrow),
.practitioner-page-hero .btn:is(.btn-back, .btn-arrow):hover,
.practitioner-page-hero .btn:is(.btn-back, .btn-arrow):focus-visible {
  color: var(--color-surface);
}

.invoice-detail-hero h1 {
  margin-bottom: 7px;
}

.invoice-detail-hero p {
  align-items: center;
  display: flex;
  gap: 8px;
  margin: 0;
}

.invoice-detail-hero p span {
  color: var(--color-highlight-strong);
  font-size: var(--font-size-body, 1.2rem);
  font-weight: var(--font-weight-label, 900);
}

.invoice-detail-hero .actions-inline {
  align-items: center;
  flex: 1 1 100%;
  justify-content: flex-end;
}

.invoice-detail-hero .actions-inline form {
  display: flex;
  margin: 0;
}

.invoice-detail-overview,
.invoice-detail-bottom {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.invoice-detail-panel {
  min-width: 0;
  padding: 20px 22px;
}

.aenima-numbered-section-header {
  align-items: center;
  display: flex;
  gap: 12px;
  margin-bottom: 12px;
  padding-bottom: 13px;
  border-bottom: 1px solid rgb(var(--color-highlight-rgb) / 0.25);
}

.invoice-lines-card__add-fee-link { margin-left: auto; }
.invoice-lines-card #invoice-add-fee { scroll-margin-top: calc(var(--ui-space-6, 24px) * 4); }
@media (max-width: 600px) {
  .invoice-lines-card .aenima-numbered-section-header { flex-wrap: wrap; }
  .invoice-lines-card__add-fee-link { margin-left: 46px; }
}

.aenima-numbered-section-header > span {
  display: grid;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: var(--color-highlight);
  color: var(--color-surface);
  font-size: var(--font-size-caption, .76rem);
  font-weight: var(--font-weight-label, 900);
  place-items: center;
}

.aenima-numbered-section-header small {
  color: var(--color-secondary-strong);
  font-size: var(--font-size-help, .69rem);
  font-weight: var(--font-weight-label, 850);
  letter-spacing: .075em;
  text-transform: uppercase;
}

.aenima-numbered-section-header h2,
.invoice-lines-card h2,
.invoice-total-card h2,
.invoice-notes-card h2,
.invoice-email-card h2 {
  margin: 2px 0 0;
  font-size: var(--font-size-card-title, 1.2rem);
}

.invoice-detail-list,
.invoice-total-card dl {
  display: grid;
  gap: 0;
  margin: 0;
}

.invoice-detail-list > div,
.invoice-total-card dl > div {
  align-items: start;
  display: grid;
  grid-template-columns: minmax(120px, .8fr) minmax(0, 1.2fr);
  gap: 14px;
  padding: 10px 0;
  border-bottom: 1px solid var(--color-border);
}

.invoice-detail-list > div:last-child,
.invoice-total-card dl > div:last-child {
  border-bottom: 0;
}

.invoice-detail-list dt,
.invoice-total-card dt {
  color: var(--color-text-soft);
  font-size: var(--font-size-label, .79rem);
  font-weight: var(--font-weight-label, 700);
}

.invoice-detail-list dd,
.invoice-total-card dd {
  min-width: 0;
  margin: 0;
  color: var(--color-text);
  font-size: var(--font-size-table, .87rem);
  font-weight: var(--font-weight-label, 750);
  overflow-wrap: anywhere;
}

.invoice-detail-list dd small {
  display: block;
  margin-top: 3px;
  color: var(--color-text-soft);
  font-size: var(--font-size-help, .72rem);
  font-weight: var(--font-weight-label, 650);
  text-transform: capitalize;
}

.invoice-detail-list dd a {
  color: var(--color-primary-strong);
}

.invoice-detail-list dd a:hover,
.invoice-detail-list dd a:focus-visible {
  color: var(--color-highlight-strong);
}

.invoice-inline-editor {
  margin-top: var(--ui-space-3, 12px);
}

.invoice-inline-editor > summary {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2, 8px);
  width: auto;
  min-height: 34px;
  list-style: none;
  cursor: pointer;
}

.invoice-inline-editor > summary::-webkit-details-marker {
  display: none;
}

.invoice-inline-editor > summary svg {
  width: 17px;
  height: 17px;
}

.invoice-inline-editor__form {
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: var(--ui-space-3, 12px);
  margin-top: var(--ui-space-3, 12px);
  padding: var(--ui-space-3, 12px);
  border: 1px solid var(--color-border);
  border-radius: var(--ui-radius-control, 12px);
  background: var(--color-bg);
}

.invoice-inline-editor__form label {
  display: grid;
  gap: var(--ui-space-1, 4px);
  min-width: 0;
  color: var(--color-text-soft);
  font-size: var(--font-size-label);
  font-weight: var(--font-weight-label);
}

.invoice-inline-editor__form input {
  width: auto;
  min-height: var(--ui-compact-control-height, 38px);
  max-width: 100%;
}

.invoice-inline-editor--price {
  display: inline-block;
  margin: 0 0 0 var(--ui-space-2, 8px);
  vertical-align: middle;
}

.invoice-inline-editor--price[open] {
  display: block;
  margin: var(--ui-space-2, 8px) 0 0;
}

.invoice-inline-editor--price .invoice-inline-editor__form {
  justify-content: flex-end;
}

.invoice-status-pill {
  display: inline-flex;
  min-height: 28px;
  align-items: center;
  border: 1px solid rgb(var(--color-secondary-rgb) / .34);
  border-radius: 8px;
  background: var(--color-secondary-soft);
  color: var(--color-secondary-strong);
  font-size: var(--font-size-caption, .72rem);
  font-weight: var(--font-weight-label, 850);
  padding: 4px 9px;
}

.invoice-paid-indicator {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  border: 1px solid var(--color-success);
  border-radius: 12px;
  background: var(--color-success-soft);
  color: var(--color-success-strong);
  font-size: var(--font-size-table, .82rem);
  font-weight: var(--font-weight-label, 800);
  padding: 8px 14px;
}

.invoice-paid-action {
  border-color: #287a50;
  background: #287a50;
  color: #fff;
  box-shadow: 0 8px 18px rgb(40 122 80 / .2);
}

.invoice-paid-action:hover,
.invoice-paid-action:focus-visible {
  border-color: #1f6040;
  background: #1f6040;
  color: #fff;
  box-shadow: 0 10px 22px rgb(31 96 64 / .28);
}

.invoice-paid-action:focus-visible {
  outline: 3px solid rgb(40 122 80 / .28);
  outline-offset: 2px;
}

.invoice-unpaid-action {
  border-color: var(--color-highlight-strong);
  background: var(--color-highlight-soft);
  color: var(--color-highlight-strong);
  box-shadow: none;
}

.invoice-unpaid-action:hover,
.invoice-unpaid-action:focus-visible {
  border-color: var(--color-highlight-strong);
  background: var(--color-highlight-strong);
  color: var(--color-surface);
}

.invoice-unpaid-action:focus-visible {
  outline: 3px solid rgb(var(--color-highlight-rgb) / .3);
  outline-offset: 2px;
}

.invoice-lines-card,
.invoice-email-card {
  overflow: hidden;
}

.invoice-lines-card .table th:not(:first-child),
.invoice-lines-card .table td:not(:first-child) {
  text-align: right;
  white-space: nowrap;
}

.invoice-lines-card .table td:first-child {
  font-weight: var(--font-weight-label, 700);
}

.invoice-total-card,
.invoice-notes-card {
  padding: 20px 22px;
}

.invoice-total-card {
  border-color: rgb(var(--color-primary-rgb) / .24);
  box-shadow:
    inset 4px 0 0 var(--color-primary),
    0 18px 38px rgb(var(--color-primary-rgb) / .09);
}

.invoice-total-card h2,
.invoice-notes-card h2 {
  margin-bottom: 12px;
}

.invoice-total-card dd {
  text-align: right;
}

.invoice-total-card__grand-total {
  align-items: center !important;
  margin-top: 4px;
  padding: 14px 12px !important;
  border: 1px solid var(--color-highlight-border, rgb(var(--color-highlight-rgb) / .45)) !important;
  border-radius: 11px;
  background: var(--color-highlight-soft);
}

.invoice-total-card__grand-total dt,
.invoice-total-card__grand-total dd {
  color: #74400e;
  font-size: var(--font-size-label, 1rem);
  font-weight: var(--font-weight-label, 900);
}

.invoice-note {
  padding: 11px 0;
  border-bottom: 1px solid var(--color-border);
}

.invoice-note:last-child {
  border-bottom: 0;
}

.invoice-note strong {
  color: var(--color-primary-strong);
  font-size: var(--font-size-help, .78rem);
}

.invoice-note p {
  margin: 5px 0 0;
  color: var(--color-text-soft);
  font-size: var(--font-size-help, .86rem);
  line-height: 1.55;
}

.invoice-email-card .table td:first-child {
  white-space: nowrap;
}

@media (max-width: 980px) {
  .invoice-detail-hero {
    align-items: flex-start;
  }

  .invoice-detail-hero .actions-inline {
    justify-content: flex-start;
  }
}

@media (max-width: 760px) {
  .page-header.aenima-page-hero.practitioner-page-hero--has-top-action > .practitioner-page-hero__heading {
    grid-template-columns: minmax(0, 1fr);
    row-gap: var(--ui-space-3, 12px);
  }

  .practitioner-page-hero__top-action {
    grid-column: 1;
    grid-row: 3;
    justify-self: start;
  }

  .invoice-detail-overview,
  .invoice-detail-bottom {
    grid-template-columns: minmax(0, 1fr);
  }

  .invoice-detail-list > div,
  .invoice-total-card dl > div {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
  }

  .invoice-total-card dd {
    text-align: left;
  }
}
/* Account security */
.account-security-page{display:grid;gap:1.25rem}.account-security-hero{display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.account-security-status{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border:1px solid var(--color-border);border-radius:14px;background:var(--color-surface)}.account-security-status>span{width:.7rem;height:.7rem;border-radius:50%;background:var(--color-secondary)}.account-security-status.is-active>span{background:var(--color-success)}.account-security-status div{display:grid}.account-security-status small{color:var(--color-text-soft)}.account-security-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:start}.account-security-card{display:grid;gap:1rem;overflow:hidden}.account-security-card>header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.8rem;padding-bottom:.85rem;border-bottom:1px solid var(--color-border)}.account-security-card h2{margin:.12rem 0 0}.account-security-card header small{color:var(--color-text-soft)}.account-security-step{display:grid;place-items:center;width:2.35rem;height:2.35rem;border-radius:10px;background:var(--color-primary);color:var(--color-surface);font-weight:var(--font-weight-label, 800)}.account-method-state{padding:.35rem .62rem;border-radius:999px;background:var(--color-bg);color:var(--color-text-soft);font-size:var(--font-size-table, .78rem);font-weight:var(--font-weight-label, 750);white-space:nowrap}.account-method-state.is-active{background:var(--color-success-soft);color:var(--color-success-strong)}.account-method-summary{display:grid;gap:.45rem}.account-method-summary p{margin:0;color:var(--color-text-soft)}.account-method-summary dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin:.5rem 0 0}.account-method-summary dl div{display:grid;gap:.15rem;padding:.65rem;border:1px solid var(--color-border);border-radius:10px}.account-method-summary dt{font-size:var(--font-size-control, .75rem);color:var(--color-text-soft)}.account-method-summary dd{margin:0;font-weight:var(--font-weight-label, 700)}.account-totp-setup{display:grid;grid-template-columns:240px minmax(0,1fr);gap:1.25rem;align-items:start}.account-totp-qr{padding:.5rem;border:1px solid var(--color-border);border-radius:14px;background:#fff;box-shadow:0 8px 24px rgb(0 0 0/.08)}.account-totp-qr img{display:block;width:100%;height:auto}.account-totp-instructions{min-width:0}.account-totp-instructions ol{margin:0 0 1rem;padding-left:1.25rem;display:grid;gap:.45rem}.account-secret-manual{margin-bottom:1rem}.account-secret-manual summary{width:fit-content;color:var(--color-primary);cursor:pointer;font-size:var(--font-size-control, .76rem);font-weight:var(--font-weight-label, 800);list-style:none}.account-secret-manual summary::-webkit-details-marker{display:none}.account-secret-manual summary::before{margin-right:.38rem;content:"+"}.account-secret-manual[open] summary::before{content:"−"}.account-secret-manual code{display:block;max-width:100%;margin-top:.45rem;padding:.65rem .8rem;border:1px dashed var(--color-secondary);border-radius:9px;background:var(--color-secondary-faint);font-size:var(--font-size-table, .82rem);overflow-wrap:anywhere;letter-spacing:.08em}.account-security-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-bottom:.8rem}.account-security-sensitive{border-top:1px solid var(--color-border);padding-top:.8rem}.account-security-sensitive summary{cursor:pointer;font-weight:var(--font-weight-label, 750);color:var(--color-secondary-strong)}.account-security-sensitive form{display:grid;gap:.8rem;margin-top:.8rem}.account-security-muted{margin:0;color:var(--color-text-soft)}.account-recovery-reveal{border-color:var(--color-secondary);box-shadow:inset 4px 0 0 var(--color-secondary),0 12px 28px rgb(var(--color-secondary-rgb)/.12)}.account-recovery-reveal header{display:flex;gap:.8rem;align-items:flex-start}.account-recovery-reveal header>span{padding:.28rem .5rem;border-radius:7px;background:var(--color-secondary);color:var(--color-surface);font-weight:var(--font-weight-label, 800);font-size:var(--font-size-caption, .75rem)}.account-recovery-reveal h2,.account-recovery-reveal p{margin:0}.account-recovery-codes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.45rem;margin:1rem 0}.account-recovery-codes code{padding:.55rem;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg);text-align:center;font-weight:var(--font-weight-label, 750)}.account-security-events{list-style:none;margin:0;padding:0;display:grid}.account-security-events li{display:flex;gap:.7rem;padding:.65rem 0;border-bottom:1px solid var(--color-border)}.account-security-events li:last-child{border:0}.account-security-events li>span{width:.55rem;height:.55rem;margin-top:.35rem;border-radius:50%;background:var(--color-secondary);flex:none}.account-security-events div{display:grid;gap:.12rem}.account-security-events time{font-size:var(--font-size-help, .78rem);color:var(--color-text-soft)}.mfa-code-input{text-align:center;letter-spacing:.22em;font-size:var(--font-size-input, 1.2rem);font-weight:var(--font-weight-body, 800)}.mfa-login-back{display:block;margin-top:1rem;text-align:center;color:var(--color-text-soft);text-decoration:none}.mfa-login-back:hover{color:var(--color-secondary)}
@media(max-width:900px){.account-security-grid{grid-template-columns:1fr}.account-totp-setup{grid-template-columns:1fr}.account-totp-qr{max-width:240px;margin:auto}.account-recovery-codes{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.account-security-hero{align-items:flex-start;flex-direction:column}.account-security-form-grid,.account-method-summary dl{grid-template-columns:1fr}.account-security-card>header{grid-template-columns:auto minmax(0,1fr)}.account-method-state{grid-column:2;justify-self:start}.account-recovery-codes{grid-template-columns:1fr 1fr}}

/* Account security — richer visual hierarchy */
.account-security-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-top: 5px solid var(--color-primary);
  box-shadow: 0 16px 38px rgb(var(--color-primary-rgb) / 0.11), 5px 5px 0 var(--color-secondary-soft);
}

.account-security-hero::before {
  position: absolute;
  z-index: -1;
  border-radius: 50%;
  content: "";
  pointer-events: none;
}

.account-security-hero::before {
  width: 11.5rem;
  height: 11.5rem;
  right: 1.5rem;
  top: 50%;
  border: 0;
  border-radius: 0;
  background: var(--color-primary);
  opacity: .075;
  transform: translateY(-50%);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M14 11V9a2 2 0 1 0-4 0v2M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1zM14 11H10a1 1 0 0 0-1 1v3a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M14 11V9a2 2 0 1 0-4 0v2M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1zM14 11H10a1 1 0 0 0-1 1v3a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.account-security-hero__copy {
  display: grid;
  justify-items: start;
  gap: .45rem;
  min-width: 0;
}

.account-security-hero__copy h1,
.account-security-hero__copy p {
  margin: 0;
}

.account-security-hero__signals {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem .9rem;
  margin-top: .45rem;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, .78rem);
  font-weight: var(--font-weight-label, 720);
}

.account-security-hero__signals span {
  display: inline-flex;
  align-items: center;
  gap: .38rem;
}

.account-security-hero__signals i {
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--color-identity);
  box-shadow: 0 0 0 3px var(--color-identity-soft);
}

.account-security-hero__signals span:nth-child(2) i {
  background: var(--color-secondary);
  box-shadow: 0 0 0 3px var(--color-secondary-soft);
}

.account-security-hero__signals span:nth-child(3) i {
  background: var(--color-highlight);
  box-shadow: 0 0 0 3px var(--color-highlight-soft);
}

.account-security-status {
  min-width: 13.5rem;
  padding: .9rem 1rem;
  border-color: rgb(var(--color-secondary-rgb) / .3);
  box-shadow: 0 8px 20px rgb(var(--color-secondary-rgb) / .1);
}

.account-security-status__icon {
  display: grid;
  place-items: center;
  width: 2.7rem;
  height: 2.7rem;
  border-radius: 12px;
  background: var(--color-secondary-soft) !important;
  color: var(--color-secondary-strong);
}

.account-security-status.is-active .account-security-status__icon {
  background: var(--color-identity-soft) !important;
  color: var(--color-identity-strong);
}

.account-security-status__icon svg,
.account-security-card__icon svg,
.account-security-empty svg {
  width: 1.35rem;
  height: 1.35rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.account-security-status em {
  color: var(--color-text-soft);
  font-size: var(--font-size-caption, .7rem);
  font-style: normal;
}

.account-security-grid {
  grid-template-columns: minmax(0, 1.15fr) minmax(22rem, .85fr);
  gap: 1.15rem;
  align-items: start;
}

.account-security-method-guidance {
  display: flex;
  align-items: center;
  gap: .85rem;
  padding: .85rem 1rem;
  border: 1px solid rgb(var(--color-highlight-rgb) / .34);
  border-radius: 14px;
  background: var(--color-highlight-soft);
  box-shadow: 0 8px 20px rgb(var(--color-highlight-rgb) / .08);
}

.account-security-method-guidance > span {
  display: grid;
  place-items: center;
  flex: none;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 10px;
  background: var(--color-highlight);
  color: #fff;
  font-size: var(--font-size-table, .82rem);
  font-weight: var(--font-weight-label, 900);
}

.account-security-method-guidance > div {
  display: grid;
  gap: .12rem;
}

.account-security-method-guidance strong {
  color: var(--color-highlight-strong);
  font-size: var(--font-size-table, .86rem);
}

.account-security-method-guidance p {
  margin: 0;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, .78rem);
  line-height: 1.45;
}

.account-security-method-guidance.is-protected {
  border-color: rgb(var(--color-identity-rgb) / .34);
  background: var(--color-identity-faint);
  box-shadow: 0 8px 20px rgb(var(--color-identity-rgb) / .08);
}

.account-security-method-guidance.is-protected > span {
  background: var(--color-identity);
}

.account-security-method-guidance.is-protected strong {
  color: var(--color-identity-strong);
}

.account-security-card {
  --security-card-accent: var(--color-primary);
  --security-card-soft: var(--color-identity-faint);
  align-content: start;
  min-width: 0;
  position: relative;
  border-top: 4px solid var(--security-card-accent);
  box-shadow: 0 15px 34px rgb(var(--color-primary-rgb) / .08), 4px 4px 0 var(--security-card-soft);
  transition: border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}

.account-security-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 19px 40px rgb(var(--color-primary-rgb) / .12), 5px 5px 0 var(--security-card-soft);
}

.account-security-card--authenticator {
  --security-card-accent: var(--color-primary);
  --security-card-soft: var(--color-identity-soft);
}

.account-security-card--recovery {
  --security-card-accent: var(--color-secondary);
  --security-card-soft: var(--color-secondary-soft);
}

.account-security-card--passkeys {
  --security-card-accent: var(--color-highlight);
  --security-card-soft: var(--color-highlight-soft);
  grid-column: auto;
}

.account-security-card--authenticator {
  grid-column: auto;
  container-type: inline-size;
}

@container (max-width: 36rem) {
  .account-security-card--authenticator .account-totp-setup,
  .account-security-card--authenticator .account-totp-guide {
    grid-template-columns: minmax(0, 1fr);
  }

  .account-security-card--authenticator .account-totp-qr {
    max-width: 240px;
    margin-inline: auto;
  }
}

.account-security-card--events {
  --security-card-accent: var(--color-identity);
  --security-card-soft: var(--color-identity-soft);
}

.account-security-card > header {
  grid-template-columns: auto auto minmax(0, 1fr) auto;
  gap: .7rem;
}

.account-security-step {
  width: 2.5rem;
  height: 2.5rem;
  background: var(--security-card-accent);
  box-shadow: 0 5px 12px var(--security-card-soft);
}

.account-security-card__icon {
  display: grid;
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  border: 1px solid var(--security-card-soft);
  border-radius: 11px;
  background: var(--security-card-soft);
  color: var(--security-card-accent);
}

.account-security-card__icon--brand {
  border-color: rgb(66 133 244 / .2);
  background: #fff;
  box-shadow: 0 4px 10px rgb(66 133 244 / .12);
}

.account-security-card__icon--brand img {
  width: 1.5rem;
  height: 1.5rem;
}

.account-google-button {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
}

.account-google-product {
  display: flex;
  align-items: center;
  gap: .42rem;
}

.account-google-product img {
  width: 4.65rem;
  height: 1.5rem;
  object-fit: contain;
}

.account-totp-iphone-note {
  display: grid;
  gap: .2rem;
  margin-bottom: .9rem;
  padding: .72rem .8rem;
  border-left: 3px solid var(--color-highlight);
  border-radius: 0 10px 10px 0;
  background: var(--color-highlight-soft);
  color: var(--color-text);
  font-size: var(--font-size-help, .82rem);
  line-height: 1.45;
}

.account-totp-iphone-note strong {
  color: var(--color-highlight-strong);
}

.account-totp-setup > .account-totp-iphone-note {
  align-self: stretch;
  margin: 0;
}

.account-totp-details {
  display: grid;
  grid-column: 1 / -1;
  gap: .9rem;
  min-width: 0;
  padding-top: .15rem;
}

.account-totp-details ol {
  display: grid;
  gap: .45rem;
  margin: 0;
  padding-left: 1.35rem;
}

.account-totp-details .account-secret-manual {
  margin-bottom: 0;
}

.account-totp-details .account-security-form-grid--activation {
  grid-template-columns: minmax(0, 1fr);
}

.account-totp-details form {
  display: grid;
  gap: .15rem;
}

.account-totp-details form > .btn {
  justify-self: start;
}

.account-totp-guide {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .55rem;
}

.account-totp-guide > div {
  display: grid;
  align-content: start;
  gap: .28rem;
  min-width: 0;
  padding: .72rem;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  background: var(--color-surface);
  box-shadow: 0 4px 12px rgb(var(--color-text-rgb) / .05);
}

.account-totp-guide > div > span {
  display: grid;
  place-items: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 7px;
  background: var(--color-primary);
  color: var(--color-surface);
  font-size: var(--font-size-table, .75rem);
  font-weight: var(--font-weight-label, 850);
}

.account-totp-guide p {
  margin: 0;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, .78rem);
  line-height: 1.42;
}

.account-totp-guide a {
  width: fit-content;
  color: var(--color-secondary-strong);
  font-size: var(--font-size-control, .75rem);
  font-weight: var(--font-weight-label, 780);
  text-decoration: none;
}

.account-totp-guide a:hover,
.account-totp-guide a:focus-visible {
  color: var(--color-primary);
}

.account-totp-store-links {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .7rem;
  margin-top: .18rem;
}

.account-google-button img {
  width: 1.15rem;
  height: 1.15rem;
  padding: .12rem;
  border-radius: 4px;
  background: #fff;
}

.account-google-button .account-google-button__wordmark {
  width: 3.7rem;
  height: 1.2rem;
  padding: .12rem .2rem;
}

.account-security-form-grid--activation {
  grid-template-columns: minmax(0, 1fr);
  width: 100%;
}

.account-security-form-grid--activation .field {
  min-width: 0;
}

.account-method-state {
  border: 1px solid var(--security-card-soft);
  background: var(--security-card-soft);
  color: var(--security-card-accent);
}

.account-security-muted {
  display: flex;
  align-items: flex-start;
  gap: .55rem;
  padding: .75rem .8rem;
  border-left: 3px solid var(--security-card-accent);
  border-radius: 0 9px 9px 0;
  background: var(--security-card-soft);
}

.account-security-muted > span {
  display: grid;
  place-items: center;
  flex: none;
  width: 1.15rem;
  height: 1.15rem;
  border-radius: 50%;
  background: var(--security-card-accent);
  color: var(--color-surface);
  font-size: var(--font-size-table, .7rem);
  font-weight: var(--font-weight-label, 900);
}

.account-passkey-devices {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  align-content: start;
  gap: .42rem;
}

.account-passkey-devices span {
  display: inline-flex;
  align-items: center;
  gap: .38rem;
  padding: .35rem .55rem;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: var(--color-surface);
  color: var(--color-text);
  box-shadow: 0 3px 9px rgb(var(--color-text-rgb) / .06);
  font-size: var(--font-size-table, .72rem);
  font-weight: var(--font-weight-label, 760);
}

.account-passkey-devices img {
  width: .95rem;
  height: .95rem;
  object-fit: contain;
}

.account-passkey-list {
  display: grid;
  gap: .58rem;
}

.account-passkey-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: .75rem;
  padding: .68rem .75rem;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  background: var(--color-surface);
  box-shadow: 0 4px 13px rgb(var(--color-text-rgb) / .05);
}

.account-passkey-row__identity {
  display: flex;
  align-items: center;
  gap: .62rem;
  min-width: 0;
}

.account-passkey-row__identity > span {
  display: grid;
  place-items: center;
  flex: none;
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 9px;
  background: var(--color-highlight-soft);
  color: var(--color-highlight-strong);
}

.account-passkey-row__identity svg,
.mfa-passkey-choice svg {
  width: 1.12rem;
  height: 1.12rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.account-passkey-row__identity div {
  display: grid;
  gap: .08rem;
  min-width: 0;
}

.account-passkey-row__identity strong {
  overflow: hidden;
  color: var(--color-text);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.account-passkey-row__identity small {
  color: var(--color-text-soft);
  font-size: var(--font-size-help, .73rem);
}

.account-passkey-row details {
  position: relative;
  min-width: 0;
}

.account-passkey-row details[open] {
  grid-column: 1 / -1;
  width: 100%;
}

.account-passkey-row details[open] > summary {
  width: fit-content;
  margin-left: auto;
}

.account-passkey-row summary {
  padding: .38rem .55rem;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  color: var(--color-primary);
  cursor: pointer;
  font-size: var(--font-size-control, .74rem);
  font-weight: var(--font-weight-label, 800);
  list-style: none;
}

.account-passkey-row summary::-webkit-details-marker {
  display: none;
}

.account-passkey-row__forms {
  display: grid;
  gap: .75rem;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-top: .6rem;
  padding: .75rem;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  background: var(--color-surface);
}

.account-passkey-row__forms form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: .58rem;
  min-width: 0;
}

.account-passkey-row__forms .field {
  min-width: 0;
  margin-bottom: 0;
}

.account-passkey-row__forms .input {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.account-passkey-row__forms .btn {
  max-width: 100%;
  white-space: normal;
}

.account-passkey-add {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  gap: .75rem;
  width: 100%;
  min-width: 0;
  padding: .85rem;
  border: 1px solid rgb(var(--color-highlight-rgb) / .3);
  border-radius: 13px;
  background: var(--color-highlight-soft);
}

.account-passkey-optional {
  border-top: 1px solid var(--color-border);
  padding-top: .8rem;
}

.account-passkey-optional > summary {
  display: flex;
  align-items: center;
  width: fit-content;
  color: var(--color-primary);
  cursor: pointer;
  font-size: var(--font-size-control, .8rem);
  font-weight: var(--font-weight-label, 800);
  gap: .45rem;
  list-style: none;
}

.account-passkey-optional > summary::-webkit-details-marker {
  display: none;
}

.account-passkey-optional > summary::before {
  display: inline-grid;
  place-items: center;
  width: 1.25rem;
  height: 1.25rem;
  border: 1px solid rgb(var(--color-primary-rgb) / .28);
  border-radius: 50%;
  content: "+";
  font-size: .9rem;
  transition: transform .2s ease;
}

.account-passkey-optional[open] > summary::before {
  transform: rotate(45deg);
}

.account-passkey-optional > summary small {
  padding: .2rem .4rem;
  border-radius: 999px;
  background: var(--color-bg);
  color: var(--color-text-soft);
  font-size: var(--font-size-control, .64rem);
}

.account-passkey-optional > .account-passkey-add {
  margin-top: .75rem;
}

.account-passkey-add > div:first-child {
  align-self: center;
  min-width: 0;
}

.account-passkey-add__password {
  grid-column: 1;
  width: 100%;
  min-width: 0;
  margin: 0;
}

.account-passkey-add__password .input {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.account-passkey-add > .btn {
  grid-column: 1;
  width: fit-content;
  max-width: 100%;
  min-width: 8rem;
  white-space: nowrap;
}

.account-passkey-add strong,
.account-passkey-add p {
  margin: 0;
}

.account-passkey-add p {
  margin-top: .15rem;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, .77rem);
  line-height: 1.4;
}

.account-passkey-status {
  grid-column: 1 / -1;
  min-height: 1.1rem;
  margin: -.25rem 0 0;
  color: var(--color-text-soft);
  font-size: var(--font-size-caption, .76rem);
  font-weight: var(--font-weight-label, 720);
}

.account-passkey-status[data-state="error"],
.mfa-passkey-choice [data-state="error"] {
  color: var(--color-danger);
}

.account-passkey-status[data-state="success"],
.mfa-passkey-choice [data-state="success"] {
  color: var(--color-success-strong);
}

.account-passkey-status[data-state="pending"],
.mfa-passkey-choice [data-state="pending"] {
  color: var(--color-primary);
}

.mfa-passkey-choice {
  display: grid;
  gap: .45rem;
}

.mfa-passkey-choice .btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
}

.mfa-passkey-choice .btn[hidden] {
  display: none;
}

.mfa-passkey-choice p {
  min-height: 1.1rem;
  margin: 0;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, .78rem);
  text-align: center;
}

.mfa-alternative-methods {
  margin-top: .35rem;
  border-top: 1px solid var(--color-border);
  padding-top: .85rem;
}

.mfa-alternative-methods > summary {
  width: fit-content;
  margin: 0 auto;
  color: var(--color-primary);
  cursor: pointer;
  font-size: var(--font-size-control, .82rem);
  font-weight: var(--font-weight-label, 800);
  list-style: none;
}

.mfa-alternative-methods > summary::-webkit-details-marker {
  display: none;
}

.mfa-alternative-methods > summary::after {
  display: inline-block;
  margin-left: .42rem;
  content: "⌄";
  transition: transform .2s ease;
}

.mfa-alternative-methods[open] > summary::after {
  transform: rotate(180deg);
}

.mfa-alternative-methods__content {
  display: grid;
  gap: .7rem;
  margin-top: .85rem;
  padding: .85rem;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  background: var(--color-bg);
}

.mfa-alternative-methods__content > p {
  margin: 0;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, .78rem);
  line-height: 1.45;
  text-align: center;
}

.mfa-alternative-methods__content form,
.mfa-code-form {
  display: grid;
  gap: .75rem;
}

.account-security-page .mfa-code-form,
.client-portal-page .mfa-code-form {
  width: min(100%, 28rem);
  justify-items: start;
}
.client-portal-page .mfa-code-form .field {
  min-width: 0;
  max-width: 100%;
}
.client-portal-page .mfa-code-form .input {
  width: auto;
  max-width: 100%;
}
.client-portal-page.account-security-page > .card {
  width: min(100%, 48rem);
}

.mfa-method-separator {
  display: flex;
  align-items: center;
  gap: .65rem;
  margin: .25rem 0;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, .72rem);
  font-weight: var(--font-weight-label, 750);
  text-transform: uppercase;
}

.mfa-method-separator::before,
.mfa-method-separator::after {
  flex: 1;
  height: 1px;
  background: var(--color-border);
  content: "";
}

.account-security-empty {
  display: flex;
  align-items: center;
  gap: .8rem;
  min-height: 5.3rem;
  padding: .85rem;
  border: 1px dashed rgb(var(--color-identity-rgb) / .38);
  border-radius: 12px;
  background: var(--color-identity-faint);
}

.account-security-empty > span {
  display: grid;
  place-items: center;
  flex: none;
  width: 2.7rem;
  height: 2.7rem;
  border-radius: 50%;
  background: var(--color-identity-soft);
  color: var(--color-identity-strong);
}

.account-security-empty strong,
.account-security-empty p {
  margin: 0;
}

.account-security-empty p {
  margin-top: .14rem;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, .82rem);
}

@media (max-width: 1050px) {
  .account-security-grid {
    grid-template-columns: 1fr;
  }

  .account-security-card--passkeys {
    grid-column: auto;
  }

  .account-security-card--authenticator {
    grid-column: auto;
  }

  .account-passkey-status {
    grid-column: 1 / -1;
  }
}

@media (max-width: 760px) {
  .account-totp-guide {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px) {
  .account-security-hero::before {
    width: 8rem;
    height: 8rem;
    right: 1rem;
    opacity: .055;
  }

  .account-security-status {
    width: 100%;
    min-width: 0;
  }

  .account-security-card > header {
    grid-template-columns: auto auto minmax(0, 1fr);
  }

  .account-method-state {
    grid-column: 3;
    justify-self: start;
  }

  .account-passkey-row {
    grid-template-columns: 1fr;
  }

  .account-passkey-row details {
    justify-self: stretch;
  }

  .account-passkey-row summary {
    width: 100%;
    margin-left: 0;
    text-align: center;
  }

  .account-passkey-row__forms,
  .account-passkey-row__forms form,
  .account-passkey-add {
    grid-template-columns: 1fr;
    width: 100%;
  }

  .account-passkey-add > div:first-child,
  .account-passkey-add__password,
  .account-passkey-add > .btn {
    grid-column: 1;
    grid-row: auto;
  }

  .account-passkey-add .btn {
    width: 100%;
  }
}

/* Séance : annotations puis compte rendu remplissable, sans page intermédiaire. */
.login-security-entry {
  display: flex;
  align-items: center;
  gap: .7rem;
  margin-top: .9rem;
  padding: .72rem .78rem;
  border: 1px solid rgb(var(--color-highlight-rgb) / .34);
  border-radius: 12px;
  background: var(--color-highlight-soft);
  color: var(--color-text);
  text-decoration: none;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.login-security-entry--button {
  width: 100%;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.login-security-entry:hover,
.login-security-entry:focus-visible {
  border-color: var(--color-highlight);
  color: var(--color-text);
  box-shadow: 0 8px 18px rgb(var(--color-highlight-rgb) / .14);
  transform: translateY(-1px);
}

.login-security-entry__icon {
  display: grid;
  place-items: center;
  flex: none;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 10px;
  background: var(--color-surface);
  color: var(--color-highlight-strong);
  box-shadow: 0 3px 9px rgb(var(--color-highlight-rgb) / .12);
}

.login-security-entry__icon svg {
  width: 1.3rem;
  height: 1.3rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.login-security-entry > span:last-child {
  display: grid;
  gap: .08rem;
}

.login-security-entry strong {
  color: var(--color-highlight-strong);
  font-size: var(--font-size-table, .82rem);
}

.login-security-entry small {
  color: var(--color-text-soft);
  font-size: var(--font-size-help, .72rem);
  line-height: 1.35;
}

.login-security-entry--back {
  justify-content: center;
  border-color: transparent;
  background: transparent;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, .78rem);
  font-weight: var(--font-weight-label, 760);
}

.login-submit-actions {
  display: grid;
  gap: .62rem;
}

.login-mfa-submit {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: .68rem;
  min-height: 3.55rem;
  padding: .62rem .72rem;
  border: 1px solid rgb(var(--color-highlight-rgb) / .42);
  background: var(--color-highlight-soft);
  color: var(--color-text);
  text-align: left;
  white-space: normal;
}

.login-mfa-submit:hover,
.login-mfa-submit:focus-visible {
  border-color: var(--color-highlight);
  background: var(--color-highlight-soft);
  color: var(--color-text);
  box-shadow: 0 8px 18px rgb(var(--color-highlight-rgb) / .16);
}

.login-mfa-submit > span:last-child {
  display: grid;
  gap: .08rem;
  min-width: 0;
}

.login-mfa-submit strong {
  color: var(--color-highlight-strong);
  font-size: var(--font-size-control, .78rem);
}

.login-mfa-submit small {
  color: var(--color-text-soft);
  font-size: var(--font-size-control, .68rem);
  line-height: 1.3;
}

.login-mfa-methods {
  display: grid;
  gap: .58rem;
}

.login-flow-note {
  margin: .8rem 0 0;
  color: var(--color-text-soft);
  font-size: var(--font-size-help, .7rem);
  line-height: 1.4;
  text-align: center;
}

.login-security-summary {
  display: flex;
  align-items: center;
  gap: .7rem;
  margin-top: 1.2rem;
  padding: .78rem;
  border: 1px solid rgb(var(--color-primary-rgb) / .18);
  border-radius: 14px;
  background: rgb(var(--color-white-rgb) / .72);
}

.login-security-summary > span:last-child {
  display: grid;
  gap: .08rem;
  min-width: 0;
}

.login-security-summary strong {
  color: var(--color-primary-strong);
  font-size: var(--font-size-control, .82rem);
}

.login-security-summary small {
  color: var(--color-text-soft);
  font-size: var(--font-size-control, .7rem);
  line-height: 1.35;
}

.login-identified-account {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: .18rem .8rem;
  margin-bottom: .9rem;
  padding: .72rem .78rem;
  border: 1px solid rgb(var(--color-primary-rgb) / .2);
  border-radius: 12px;
  background: rgb(var(--color-primary-rgb) / .07);
}

.login-identified-account > span {
  grid-column: 1 / -1;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, .66rem);
  font-weight: var(--font-weight-label, 750);
  text-transform: uppercase;
  letter-spacing: .06em;
}

.login-identified-account strong {
  min-width: 0;
  overflow-wrap: anywhere;
  color: var(--color-primary-strong);
  font-size: var(--font-size-table, .8rem);
}

.login-identified-account a {
  color: var(--color-highlight-strong);
  font-size: var(--font-size-control, .7rem);
  font-weight: var(--font-weight-label, 760);
  text-decoration: none;
}

.login-identified-account a:hover,
.login-identified-account a:focus-visible {
  color: var(--color-highlight-strong);
}

.mfa-setup-page {
  display: grid;
  gap: 1rem;
  max-width: 70rem;
  margin-inline: auto;
}

.mfa-setup-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 1.25rem;
  border-top: 5px solid var(--color-primary);
}

.mfa-setup-hero h1,
.mfa-setup-hero p {
  margin-bottom: 0;
}

.mfa-setup-progress {
  display: flex;
  align-items: center;
  gap: .42rem;
}

.mfa-setup-progress span {
  display: flex;
  align-items: center;
  gap: .34rem;
  padding: .38rem .5rem;
  border: 1px solid var(--color-border);
  border-radius: 9px;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, .68rem);
  font-weight: var(--font-weight-label, 760);
  white-space: nowrap;
}

.mfa-setup-progress i,
.mfa-setup-method__number {
  display: grid;
  place-items: center;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 6px;
  background: var(--color-bg);
  color: var(--color-text-soft);
  font-size: .68rem;
  font-style: normal;
  font-weight: 850;
}

.mfa-setup-progress .is-done,
.mfa-setup-progress .is-active {
  border-color: rgb(var(--color-primary-rgb) / .25);
  background: var(--color-identity-faint);
  color: var(--color-primary);
}

.mfa-setup-progress .is-done i,
.mfa-setup-progress .is-active i,
.mfa-setup-method__number {
  background: var(--color-primary);
  color: var(--color-surface);
}

.mfa-setup-choice {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.mfa-setup-choice-intro {
  display: grid;
  gap: .14rem;
  padding: .8rem .9rem;
  border: 1px solid rgb(var(--color-identity-rgb) / .28);
  border-radius: 12px;
  background: var(--color-identity-faint);
}

.mfa-setup-choice-intro strong {
  color: var(--color-identity-strong);
  font-size: var(--font-size-table, .84rem);
}

.mfa-setup-choice-intro p {
  margin: 0;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, .76rem);
  line-height: 1.45;
}

.mfa-setup-choice .card {
  display: grid;
  align-content: start;
  gap: .55rem;
  min-height: 13rem;
  border-top: 4px solid var(--color-primary);
  color: var(--color-text);
  text-decoration: none;
  transition: border-color var(--ui-motion-control, .2s) ease, box-shadow var(--ui-motion-control, .2s) ease, transform var(--ui-motion-control, .2s) ease;
}

.mfa-setup-choice .card:last-child {
  border-top-color: var(--color-highlight);
}

.mfa-setup-choice__recommended {
  box-shadow: 0 16px 34px rgb(var(--color-primary-rgb) / .12), 4px 4px 0 var(--color-identity-soft);
}

.mfa-setup-choice .card:hover,
.mfa-setup-choice .card:focus-visible {
  color: var(--color-text);
  box-shadow: 0 16px 32px rgb(var(--color-primary-rgb) / .13);
  transform: translateY(-2px);
}

.mfa-setup-choice h2,
.mfa-setup-choice p {
  margin: 0;
}

.mfa-setup-choice p {
  color: var(--color-text-soft);
  line-height: 1.5;
}

.mfa-setup-choice strong {
  margin-top: auto;
  color: var(--color-primary);
}

.mfa-setup-method,
.mfa-setup-complete {
  display: grid;
  gap: 1rem;
  max-width: 52rem;
  width: 100%;
  margin-inline: auto;
  border-top: 4px solid var(--color-highlight);
}

.mfa-setup-method > header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: .75rem;
  padding-bottom: .85rem;
  border-bottom: 1px solid var(--color-border);
}

.mfa-setup-method__number {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 10px;
  font-size: .9rem;
}

.mfa-setup-method header h2,
.mfa-setup-method header p {
  margin: 0;
}

.mfa-setup-method header small {
  color: var(--color-highlight-strong);
  font-weight: var(--font-weight-label, 800);
}

.mfa-setup-method header p {
  margin-top: .22rem;
  color: var(--color-text-soft);
}

.mfa-setup-callout {
  padding: .75rem .82rem;
  border-left: 3px solid var(--color-highlight);
  border-radius: 0 10px 10px 0;
  background: var(--color-highlight-soft);
}

.mfa-setup-callout.is-success {
  border-left-color: var(--color-success);
  background: var(--color-success-soft);
}

.mfa-setup-callout p {
  margin: .12rem 0 0;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, .8rem);
}

.mfa-setup-change {
  justify-self: center;
  color: var(--color-text-soft);
  font-size: var(--font-size-table, .76rem);
  font-weight: var(--font-weight-label, 750);
  text-decoration: none;
}

.mfa-setup-change:hover,
.mfa-setup-change:focus-visible {
  color: var(--color-primary);
}

.mfa-setup-complete {
  justify-items: center;
  border-top-color: var(--color-success);
  text-align: center;
}

.mfa-setup-complete__icon {
  display: grid;
  place-items: center;
  width: 3.4rem;
  height: 3.4rem;
  border-radius: 50%;
  background: var(--color-success-soft);
  color: var(--color-success-strong);
  font-size: 1.55rem;
  font-weight: 900;
}

.mfa-setup-complete h2,
.mfa-setup-complete p,
.mfa-setup-recovery h3 {
  margin: .25rem 0 0;
}

.mfa-setup-recovery {
  width: 100%;
  text-align: left;
}

.mfa-setup-complete__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .55rem;
}

@media (max-width: 760px) {
  .mfa-setup-hero,
  .mfa-setup-choice {
    grid-template-columns: 1fr;
  }

  .mfa-setup-progress {
    flex-wrap: wrap;
  }

  .mfa-setup-totp {
    grid-template-columns: 1fr;
  }
}

.session-detail-page {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 30rem), 1fr));
}
.session-detail-page > * { min-width: 0; order: 30; }
.session-detail-page > .detail-hero { grid-column: 1 / -1; order: 0; }
.session-detail-page > .session-detail-hero {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr));
}
@media (max-width: 760px) {
    .session-detail-page > .session-detail-hero { grid-template-columns: minmax(0, 1fr); }
}
.session-detail-page > .alert { grid-column: 1 / -1; order: 5; }
.session-detail-page > .session-photo-gallery,
.session-detail-page > .session-annotations { order: 10; }
.session-detail-page > .session-photo-gallery {
    container-type: inline-size;
    margin-top: 0;
}
.session-detail-page > .session-annotations { container-type: inline-size; }
.session-detail-page > .session-report-inline,
.session-detail-page > .session-preparations,
.session-detail-page > .animal-documents { grid-column: 1 / -1; }
.session-detail-page > .session-report-inline { order: 40; }
.session-report-inline {
    container-type: inline-size;
    min-width: 0;
}
.session-report-collapse__summary {
    align-items: center;
    cursor: pointer;
    display: grid;
    gap: 16px;
    grid-template-columns: minmax(0, 1fr) auto;
    list-style: none;
    min-width: 0;
    padding: 18px 20px;
    transition: background-color .2s ease;
}
.session-report-collapse__summary::-webkit-details-marker { display: none; }
.session-report-collapse__summary:hover { background: var(--session-section-tint); }
.session-report-collapse__summary:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--session-section-color) 42%, transparent);
    outline-offset: -3px;
}
.session-report-collapse__heading {
    display: grid;
    gap: 3px;
    min-width: 0;
}
.session-report-collapse__heading > span {
    color: var(--color-text-soft);
    font-size: var(--font-size-caption, .72rem);
    font-weight: var(--font-weight-label, 850);
    text-transform: uppercase;
}
.session-report-collapse__heading > strong {
    color: var(--session-section-color);
    font-size: var(--font-size-card-title, 1.08rem);
    overflow-wrap: anywhere;
}
.session-report-collapse__icon {
    align-items: center;
    background: color-mix(in srgb, var(--session-section-color) 12%, #fff);
    border: 1px solid color-mix(in srgb, var(--session-section-color) 28%, #fff);
    border-radius: 8px;
    color: var(--session-section-color);
    display: flex;
    height: 36px;
    justify-content: center;
    width: 36px;
}
.session-report-collapse__icon svg {
    fill: none;
    height: 18px;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
    transform: rotate(-90deg);
    transition: transform .22s ease;
    width: 18px;
}
.session-report-collapse[open] .session-report-collapse__icon svg { transform: rotate(90deg); }
.session-report-collapse__content {
    border-top: 1px solid color-mix(in srgb, var(--session-section-color) 20%, #e6e1dd);
    display: grid;
    gap: 1rem;
    min-width: 0;
    padding: 16px;
}
.session-report-collapse__content > * {
    max-width: 100%;
    min-width: 0;
}
@container (max-width: 900px) {
    .session-report-inline .report-fill-template-bar { grid-template-columns: minmax(0, 1fr); }
}
@container (max-width: 640px) {
    .session-report-inline .report-fill-template-bar form > div { grid-template-columns: minmax(0, 1fr); }
}
.session-report-inline .report-template-paper-stage,
.session-report-inline .report-fill-template-bar,
.session-report-inline .report-builder-toolbar {
    width: 100%;
    min-width: 0;
}
.session-report-inline .report-builder-toolbar {
    background: #fbfaf8;
    border: 1px solid #ded7d1;
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(0, 1fr);
    padding: 13px;
}
.session-report-inline .report-builder-toolbar__fields {
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
    min-width: 0;
}
.session-report-inline .report-builder-toolbar__identity {
    background: #fff;
    border: 1px solid #d9d1ca;
    border-radius: 11px;
    box-shadow: 0 4px 12px rgba(52, 45, 41, .06);
    display: grid;
    gap: 6px;
    min-height: 72px;
    min-width: 0;
    padding: 9px 11px 10px;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.session-report-inline .report-builder-toolbar__identity:focus-within {
    border-color: #c96f3d;
    box-shadow: 0 0 0 3px rgba(201, 111, 61, .13), 0 7px 18px rgba(52, 45, 41, .08);
    transform: translateY(-1px);
}
.session-report-inline .report-builder-toolbar__identity label {
    align-items: center;
    color: #635954;
    display: flex;
    font-size: var(--font-size-label, .7rem);
    font-weight: var(--font-weight-label, 850);
    gap: 7px;
    letter-spacing: .055em;
    line-height: 1.15;
    text-transform: uppercase;
}
.session-report-inline .report-builder-toolbar__identity label::before {
    background: #c96f3d;
    border-radius: 50%;
    content: "";
    flex: 0 0 7px;
    height: 7px;
    width: 7px;
}
.session-report-inline .report-builder-toolbar__identity label small {
    background: #f2ede9;
    border-radius: 6px;
    color: #766c67;
    font-size: var(--font-size-help, .62rem);
    font-weight: var(--font-weight-label, 750);
    letter-spacing: 0;
    margin-left: auto;
    padding: 3px 6px;
    text-transform: none;
}
.session-report-inline .report-builder-toolbar__identity input {
    appearance: none;
    background: #fdfcfb;
    border: 1px solid #ded7d1;
    border-radius: 8px;
    box-shadow: inset 0 1px 2px rgba(52, 45, 41, .04);
    box-sizing: border-box;
    color: #2f3935;
    font-size: var(--font-size-input, .94rem);
    font-weight: var(--font-weight-body, 700);
    line-height: 1.25;
    min-height: 36px;
    min-width: 0;
    padding: 7px 10px;
    width: 100%;
}
.session-report-inline .report-builder-toolbar__identity--subtitle input { font-weight: var(--font-weight-label, 600); }
.session-report-inline .report-builder-toolbar__identity input::placeholder {
    color: #9a918c;
    font-weight: var(--font-weight-label, 550);
    opacity: 1;
}
.session-report-inline .report-builder-toolbar__identity input:focus {
    background: #fff;
    border-color: #c96f3d;
    box-shadow: none;
    outline: 0;
}
.session-report-inline .report-builder-toolbar__actions {
    align-items: center;
    border-top: 1px solid #e2dbd5;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    min-width: 0;
    padding-top: 12px;
}
.session-report-inline .report-builder-toolbar__status {
    align-items: center;
    display: inline-flex;
    flex: 0 0 auto;
    gap: 7px;
    justify-content: center;
    min-height: 42px;
    padding: 8px 12px;
}
.session-report-inline .report-builder-toolbar__status::before {
    background: currentColor;
    border-radius: 50%;
    content: "";
    flex: 0 0 7px;
    height: 7px;
    width: 7px;
}
.session-report-inline .report-builder-toolbar__action-cluster {
    display: grid;
    gap: 8px;
    grid-auto-columns: minmax(0, 1fr);
    grid-auto-flow: column;
    min-width: 0;
}
.session-report-inline .report-builder-toolbar__action-cluster .btn {
    font-size: var(--font-size-control, .78rem);
    min-height: 42px;
    padding: var(--ui-space-2, 8px) var(--ui-space-3, 12px);
    white-space: nowrap;
    width: 100%;
}
.session-report-inline .report-builder-toolbar__action-cluster .report-builder-send {
    align-items: stretch;
    margin: 0;
    min-width: 0;
}
@media (max-width: 1180px) {
    .session-report-inline .report-builder-toolbar__action-cluster { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
    .session-report-inline .report-builder-toolbar__fields { grid-template-columns: minmax(0, 1fr); }
    .session-report-inline .report-builder-toolbar__actions { align-items: stretch; flex-direction: column; }
    .session-report-inline .report-builder-toolbar__status { align-self: flex-start; }
    .session-report-inline .report-builder-toolbar__action-cluster { grid-auto-flow: row; grid-template-columns: minmax(0, 1fr); width: 100%; }
}
@container (max-width: 900px) {
    .session-report-inline .report-builder-toolbar__actions { align-items: stretch; }
    .session-report-inline .report-builder-toolbar__status { align-self: center; }
    .session-report-inline .report-builder-toolbar__action-cluster { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@container (max-width: 640px) {
    .session-report-inline .report-builder-toolbar__fields { grid-template-columns: minmax(0, 1fr); }
    .session-report-inline .report-builder-toolbar__actions { flex-direction: column; }
    .session-report-inline .report-builder-toolbar__status { align-self: flex-start; }
    .session-report-inline .report-builder-toolbar__action-cluster { grid-auto-flow: row; grid-template-columns: minmax(0, 1fr); width: 100%; }
}

@container (max-width: 860px) {
    .session-photo-upload form { grid-template-columns: minmax(0, 1fr); }
    .session-photo-dropzone { min-height: 130px; }
}

@container (max-width: 720px) {
    .session-annotation-preview { grid-template-columns: minmax(0, 1fr); }
    .session-annotation-preview__viewer { height: 190px; }
}

@container (max-width: 640px) {
    .session-photo-gallery__header { align-items: flex-start; flex-direction: column; }
    .session-photo-gallery__commands { align-items: center; display: grid; gap: 6px; grid-template-columns: max-content max-content; justify-content: flex-start; width: 100%; }
    .session-photo-gallery__commands .session-photo-gallery__count { grid-column: 1 / -1; justify-self: start; }
    .session-photo-gallery__commands .btn { width: auto; }
    .session-photo-upload__actions { align-items: stretch; flex-direction: column; }
    .session-photo-upload__actions .btn { width: 100%; }
    .session-photo-visibility { grid-template-columns: minmax(0, 1fr); }
    .session-photo-gallery__grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 188px)); }
    .session-photo-status { margin: 0; }
    .session-photo-card__image { height: auto; }
}

@container (max-width: 300px) {
    .session-photo-gallery__commands { grid-template-columns: max-content; }
    .session-photo-gallery__commands .session-photo-gallery__count { grid-column: auto; }
}

/* Lecture séquentielle de la fiche séance. */
.session-detail-page {
    gap: 22px;
}
.session-detail-page > .alert {
    margin-bottom: -8px;
}
.session-section {
    --session-section-color: #70857c;
    --session-section-tint: rgba(112, 133, 124, .07);
    border: 1px solid color-mix(in srgb, var(--session-section-color) 34%, #d9d3ce);
    border-left: 5px solid var(--session-section-color);
    border-radius: 15px;
    box-shadow: 0 8px 22px rgba(49, 42, 38, .07);
    isolation: isolate;
    overflow: hidden;
    position: relative;
}
.session-section::before {
    background: var(--session-section-tint);
    content: "";
    height: 5px;
    inset: 0 0 auto;
    pointer-events: none;
    position: absolute;
    z-index: -1;
}
.session-section--annotations {
    --session-section-color: #c96f3d;
    --session-section-tint: rgba(201, 111, 61, .10);
    background: #fffaf7;
}
.session-section--report {
    --session-section-color: #527968;
    --session-section-tint: rgba(82, 121, 104, .10);
    background: #f8faf8;
    padding: 0;
}
.session-section--context {
    --session-section-color: #9b6f61;
    --session-section-tint: rgba(155, 111, 97, .09);
    background: #fbf9f8;
    gap: 16px;
    padding: 16px;
}
.session-section--invoice {
    --session-section-color: #657f9b;
    --session-section-tint: rgba(101, 127, 155, .10);
    background: #f9fbfd;
}
.session-section--bach {
    --session-section-color: #9b7a9c;
    --session-section-tint: rgba(155, 122, 156, .10);
    background: #fcf9fc;
}
.session-context-grid .session-info-card {
    border: 0;
    border-radius: 11px;
    box-shadow: 0 3px 12px rgba(49, 42, 38, .055);
    margin: 0;
    min-width: 0;
    padding: 17px 18px;
}
.session-context-grid .session-info-card h2 {
    align-items: center;
    display: flex;
    gap: 9px;
    margin-bottom: 14px;
}
.session-context-grid .session-info-card h2::before {
    background: var(--session-section-color);
    border-radius: 999px;
    content: "";
    height: 18px;
    width: 4px;
}
.session-context-grid .session-info-card p {
    border-bottom: 1px solid rgba(112, 98, 90, .10);
    margin: 0;
    padding: 7px 0;
}
.session-context-grid .session-info-card p:last-child { border-bottom: 0; }
.session-section > .page-header {
    border-bottom: 1px solid color-mix(in srgb, var(--session-section-color) 20%, #e6e1dd);
    margin-bottom: 15px;
    padding-bottom: 13px;
}

.session-annotation-preview {
    align-items: stretch;
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
    margin: 2px 0 18px;
    min-width: 0;
    padding: 12px;
    border: 1px solid rgba(201, 111, 61, .22);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 6px 17px rgba(74, 53, 43, .07);
}

.session-annotation-preview__figure {
    display: grid;
    gap: 0;
    min-width: 0;
    margin: 0;
    overflow: hidden;
    border: 1px solid rgba(201, 111, 61, .2);
    border-radius: 11px;
    background: #fffaf7;
}

.session-annotation-preview__link {
    display: block;
    min-width: 0;
    border-radius: 11px;
    text-decoration: none;
}

.session-annotation-preview__link .session-annotation-preview__figure {
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.session-annotation-preview__link:hover .session-annotation-preview__figure {
    border-color: rgba(201, 111, 61, .58);
    box-shadow: 0 7px 18px rgba(125, 70, 42, .14);
    transform: translateY(-1px);
}

.session-annotation-preview__link:focus-visible {
    outline: 3px solid rgba(201, 111, 61, .38);
    outline-offset: 3px;
}

.session-annotation-preview__viewer {
    display: grid;
    place-items: center;
    width: 100%;
    height: 168px;
    min-width: 0;
    overflow: hidden;
    background: #f7f3ef;
}

.session-annotation-preview__viewer > img {
    width: 86%;
    height: 86%;
    object-fit: contain;
    opacity: .58;
}

.session-annotation-preview__viewer--generic > .session-annotation-preview__animal-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 1;
}

.session-annotation-preview__generic-icon {
    width: 72px;
    height: 72px;
    color: var(--session-section-color, var(--color-primary));
    opacity: .42;
}

.session-annotation-preview__flat-canvas {
    position: relative;
    width: 96%;
    height: 96%;
}

.session-annotation-preview__flat-canvas > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.session-annotation-preview__flat-overlay {
    position: absolute;
    inset: 0;
}

.session-annotation-preview__flat-marker {
    position: absolute;
    width: 10px;
    height: 10px;
    margin: -5px 0 0 -5px;
    border: 2px solid #fff;
    border-radius: 50%;
    box-shadow: 0 2px 7px rgba(49, 42, 38, .36);
}

.session-annotation-preview__flat-line {
    position: absolute;
    height: 4px;
    border-radius: 999px;
    transform-origin: left center;
    box-shadow: 0 2px 6px rgba(49, 42, 38, .25);
}

.session-annotation-preview__viewer .horse-3d-canvas {
    pointer-events: none;
    cursor: default;
}

.session-annotation-preview__figure figcaption {
    display: grid;
    gap: 2px;
    padding: 9px 11px 10px;
    border-top: 1px solid rgba(201, 111, 61, .17);
    background: #fff;
}

.session-annotation-preview__figure figcaption strong {
    color: var(--color-text);
    font-size: var(--font-size-help, .84rem);
}

.session-annotation-preview__figure figcaption span {
    color: var(--color-text-soft);
    font-size: var(--font-size-help, .7rem);
    font-weight: var(--font-weight-label, 720);
}

.session-annotation-preview__copy {
    align-content: center;
    display: grid;
    gap: 6px;
    min-width: 0;
    padding: 8px 10px;
}

.session-annotation-preview__eyebrow {
    color: #a14f27;
    font-size: var(--font-size-caption, .68rem);
    font-weight: var(--font-weight-label, 900);
    letter-spacing: .07em;
    text-transform: uppercase;
}

.session-annotation-preview__copy > strong {
    color: var(--color-text);
    font-size: var(--font-size-body, 1rem);
}

.session-annotation-preview__copy > p {
    max-width: 42rem;
    margin: 0;
    color: var(--color-text-soft);
    font-size: var(--font-size-table, .8rem);
    line-height: 1.5;
}

.session-annotation-preview__actions {
    margin-top: 5px;
}

.session-annotation-preview__status {
    align-items: center;
    display: inline-flex;
    gap: 7px;
    width: fit-content;
    margin-top: 3px;
    padding: 5px 8px;
    border: 1px solid rgba(155, 111, 97, .22);
    border-radius: 999px;
    background: #f7f3f1;
    color: #76655e;
    font-size: var(--font-size-caption, .68rem);
    font-weight: var(--font-weight-label, 820);
}

.session-annotation-preview__status::before {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #9b6f61;
    content: "";
}

.session-annotation-preview__status.is-filled {
    border-color: rgba(82, 121, 104, .27);
    background: #eef5f1;
    color: #3d6755;
}

.session-annotation-preview__status.is-filled::before {
    background: #527968;
}

@media (max-width: 720px) {
    .session-annotation-preview {
        grid-template-columns: minmax(0, 1fr);
    }

    .session-annotation-preview__viewer {
        height: 190px;
    }
}

/* Éditeur progressif des réponses d'une question à choix multiple. */
.questionnaire-builder__composition > [data-questionnaire-items] > .questionnaire-editor-sheet--portrait {
    grid-row-end: span 20;
}
.questionnaire-builder__composition > [data-questionnaire-items] > .questionnaire-editor-sheet--landscape {
    grid-row-end: span 14;
}
.questionnaire-options-editor {
    align-items: start;
    display: grid;
    gap: 8px;
    grid-template-columns: minmax(0, 1fr) 38px;
}
.questionnaire-options-editor__list {
    display: grid;
    gap: 7px;
    min-width: 0;
}
.questionnaire-options-editor__row {
    align-items: center;
    display: grid;
    gap: 7px;
    grid-template-columns: minmax(0, 1fr) auto auto;
}
.questionnaire-options-editor__detail-toggle {
    align-items: center;
    display: inline-flex;
    flex: 0 0 auto;
    gap: 4px;
    margin: 0;
    white-space: nowrap;
}
.questionnaire-options-editor__detail-toggle input {
    flex: 0 0 auto;
    margin: 0;
}
.questionnaire-options-editor__detail-placeholder { grid-column: 1 / -1; min-height: 34px; width: 100%; }
.questionnaire-options-editor__add,
.questionnaire-options-editor__remove {
    align-items: center;
    border-radius: 9px;
    cursor: pointer;
    display: flex;
    font: inherit;
    font-weight: var(--font-weight-label, 900);
    justify-content: center;
}
.questionnaire-options-editor__add {
    background: #3f705d;
    border: 1px solid #315e4b;
    color: #fff;
    font-size: var(--font-size-control, 1.15rem);
    height: 41px;
    width: 38px;
}
.questionnaire-options-editor__add:hover,
.questionnaire-options-editor__add:focus-visible {
    background: #2f5848;
    border-color: #2f5848;
    box-shadow: 0 0 0 3px rgba(63,112,93,.17);
    outline: 0;
}
.questionnaire-options-editor__remove {
    background: #fff5f3;
    border: 1px solid #dfbbb5;
    color: #96534d;
    font-size: var(--font-size-body, 1rem);
    height: 34px;
    width: 34px;
}
.questionnaire-options-editor__remove:hover,
.questionnaire-options-editor__remove:focus-visible {
    background: #96534d;
    border-color: #96534d;
    color: #fff;
    outline: 0;
}

/* Réglages visuels de l'éditeur de modèles de facture. */
.questionnaire-field-library button[data-add-question="static_image"]::before {
    content: "▧";
    font-size: 1.05rem;
}
.questionnaire-field-library button[data-add-question="plain_text"]::before {
    content: "¶";
    font-size: 1.02rem;
}
.questionnaire-module-rest__plain-text,
.client-questionnaire-plain-text,
.client-questionnaire-plain-text p {
    background: transparent;
    border: 0;
    box-shadow: none;
    color: var(--questionnaire-tone, #403941);
    font-family: var(--questionnaire-font-family, inherit);
    font-style: var(--questionnaire-font-style, normal);
    font-weight: var(--questionnaire-font-weight, 400);
    line-height: 1.55;
    margin: 0;
    padding: 0;
    text-decoration: var(--questionnaire-text-decoration, none);
    white-space: pre-wrap;
}
.questionnaire-module-rest__plain-text,
.client-questionnaire-plain-text p { font-size: .84rem; }
.questionnaire-text-size--small .questionnaire-module-rest__plain-text,
.client-questionnaire-plain-text.questionnaire-text-size--small p { font-size: .76rem; }
.questionnaire-text-size--large .questionnaire-module-rest__plain-text,
.client-questionnaire-plain-text.questionnaire-text-size--large p { font-size: 1.18rem; }
.questionnaire-static-image-editor {
    align-items: stretch;
    background: #f5f1f6;
    border: 1px solid #d8cedb;
    border-radius: 12px;
    display: grid;
    gap: 13px;
    grid-column: 1 / -1;
    grid-template-columns: minmax(180px, .7fr) minmax(260px, 1.3fr);
    padding: 12px;
}
.questionnaire-static-image-editor__preview {
    align-items: center;
    background: #fff;
    border: 1px dashed #b9acbd;
    border-radius: 10px;
    color: #766b79;
    display: flex;
    justify-content: center;
    min-height: 170px;
    overflow: hidden;
    padding: 8px;
    text-align: center;
}
.questionnaire-static-image-editor__preview img {
    height: 170px;
    object-fit: contain;
    width: 100%;
}
.questionnaire-static-image-editor__controls { align-content: start;display:grid;gap:8px;min-width:0; }
.questionnaire-static-image-editor__upload { cursor:pointer;display:block; }
.questionnaire-static-image-editor__upload input { height:1px;overflow:hidden;position:absolute;width:1px; }
.questionnaire-static-image-editor__upload > span {
    align-items:center;
    background:#3f705d;
    border:1px solid #315e4b;
    border-radius:9px;
    color:#fff;
    display:flex;
    font-size:var(--font-size-table, .78rem);
    font-weight:var(--font-weight-label, 900);
    justify-content:center;
    min-height:41px;
    padding:8px 12px;
}
.questionnaire-static-image-editor__upload:hover > span,
.questionnaire-static-image-editor__upload:focus-within > span { background:#2f5848;box-shadow:0 0 0 3px rgba(63,112,93,.16); }
.questionnaire-static-image-editor__status { color:#756b78;font-size:var(--font-size-caption, .7rem);font-weight:var(--font-weight-label, 750); }
.questionnaire-static-image-editor__status.is-error { color:#913f3a; }
.questionnaire-item-field--image-alignment { align-items:start;display:grid;gap:6px; }
.questionnaire-image-alignment { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:430px; }
.questionnaire-image-alignment__option { background:#fff;border:1px solid #cfc4d2;color:#5d5261;cursor:pointer;font:inherit;font-size:var(--font-size-table, .76rem);font-weight:var(--font-weight-label, 850);min-height:38px;padding:7px 10px; }
.questionnaire-image-alignment__option:first-child { border-radius:9px 0 0 9px; }
.questionnaire-image-alignment__option:not(:first-child) { border-left:0; }
.questionnaire-image-alignment__option:last-child { border-radius:0 9px 9px 0; }
.questionnaire-image-alignment__option:hover,.questionnaire-image-alignment__option:focus-visible { background:#f3edf5;color:#523e5b;outline:0; }
.questionnaire-image-alignment__option.is-active { background:#654c70;border-color:#654c70;color:#fff;box-shadow:0 4px 10px rgba(82,59,91,.18); }
.questionnaire-item-field--text-alignment { align-items:start;display:grid;gap:6px; }
.questionnaire-text-alignment { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:430px; }
.questionnaire-text-alignment__option { background:#fff;border:1px solid #cfc4d2;color:#5d5261;cursor:pointer;font:inherit;font-size:var(--font-size-table, .76rem);font-weight:var(--font-weight-label, 850);min-height:38px;padding:7px 10px; }
.questionnaire-text-alignment__option:first-child { border-radius:9px 0 0 9px; }
.questionnaire-text-alignment__option:not(:first-child) { border-left:0; }
.questionnaire-text-alignment__option:last-child { border-radius:0 9px 9px 0; }
.questionnaire-text-alignment__option:hover,.questionnaire-text-alignment__option:focus-visible { background:#f3edf5;color:#523e5b;outline:0; }
.questionnaire-text-alignment__option.is-active { background:#654c70;border-color:#654c70;color:#fff;box-shadow:0 4px 10px rgba(82,59,91,.18); }
.questionnaire-text-align--left { text-align:left; }
.questionnaire-text-align--center { text-align:center; }
.questionnaire-text-align--right { text-align:right; }
.questionnaire-module-rest__static-image,
.client-questionnaire-static-image { display:grid;gap:7px;margin:0;min-width:0; }
.questionnaire-static-image__text-above,.questionnaire-static-image__wrap-text { color:var(--questionnaire-tone,#403941);font-family:var(--questionnaire-font-family,inherit);font-size:var(--font-size-table, .8rem);font-style:var(--questionnaire-font-style,normal);font-weight:var(--questionnaire-font-weight,400);line-height:1.55;margin:0;text-decoration:var(--questionnaire-text-decoration,none);white-space:pre-line; }
.questionnaire-text-size--small .questionnaire-static-image__text-above,.questionnaire-text-size--small .questionnaire-static-image__wrap-text { font-size:.68rem; }
.questionnaire-text-size--large .questionnaire-static-image__text-above,.questionnaire-text-size--large .questionnaire-static-image__wrap-text { font-size:.96rem; }
.questionnaire-static-image__text-above { text-align:center;width:var(--questionnaire-image-width,30%); }
.questionnaire-static-image--left .questionnaire-static-image__text-above { justify-self:start; }
.questionnaire-static-image--center .questionnaire-static-image__text-above { justify-self:center; }
.questionnaire-static-image--right .questionnaire-static-image__text-above { justify-self:end; }
.questionnaire-static-image--left.has-wrap-text .questionnaire-static-image__text-above,.questionnaire-static-image--right.has-wrap-text .questionnaire-static-image__text-above { width:var(--questionnaire-image-width,30%); }
.questionnaire-static-image__layout { align-items:start;display:grid;gap:14px;min-width:0; }
.questionnaire-static-image__media { display:grid;gap:7px;min-width:0;position:relative;width:var(--questionnaire-image-width,30%); }
.questionnaire-static-image--left .questionnaire-static-image__media { justify-self:start; }
.questionnaire-static-image--center .questionnaire-static-image__media { justify-self:center; }
.questionnaire-static-image--right .questionnaire-static-image__media { justify-self:end; }
.questionnaire-static-image--left.has-wrap-text .questionnaire-static-image__layout { grid-template-columns:minmax(120px,var(--questionnaire-image-width,30%)) minmax(0,1fr); }
.questionnaire-static-image--right.has-wrap-text .questionnaire-static-image__layout { grid-template-columns:minmax(0,1fr) minmax(120px,var(--questionnaire-image-width,30%)); }
.questionnaire-static-image--left.has-wrap-text .questionnaire-static-image__media,.questionnaire-static-image--right.has-wrap-text .questionnaire-static-image__media { width:100%; }
.questionnaire-static-image--right.has-wrap-text .questionnaire-static-image__media { grid-column:2;grid-row:1; }
.questionnaire-static-image--right.has-wrap-text .questionnaire-static-image__wrap-text { grid-column:1;grid-row:1; }
.questionnaire-static-image--center.has-wrap-text .questionnaire-static-image__wrap-text { margin-top:2px; }
.questionnaire-module-rest__static-image img,
.client-questionnaire-static-image img { background:transparent;border-radius:10px;display:block;height:auto;justify-self:center;object-fit:contain;object-position:center;width:100%; }
.questionnaire-static-image--left .questionnaire-static-image__media img { justify-self:start; }
.questionnaire-static-image--right .questionnaire-static-image__media img { justify-self:end; }
.questionnaire-module-rest__static-image-empty,
.client-questionnaire-static-image .questionnaire-static-image__media > div { align-items:center;background:#f4f0f5;border:1px dashed #b8aabd;border-radius:10px;color:#716676;display:flex;justify-content:center;min-height:155px; }
.questionnaire-module-rest__static-image figcaption,
.client-questionnaire-static-image figcaption { color:var(--questionnaire-tone,#403941);display:grid;font-size:.76rem;gap:2px;text-align:center; }
.client-questionnaire-static-image figcaption span { color:#756d77;font-size:.72rem; }
.questionnaire-static-image__resize-handle { appearance:none;background:#ff7a1a;border:2px solid #fff;border-radius:3px;box-shadow:0 1px 5px rgba(57,38,24,.34);height:13px;margin:0;padding:0;position:absolute;width:13px;z-index:5; }
.questionnaire-static-image__resize-handle--top-left { cursor:nwse-resize;left:-6px;top:-6px; }
.questionnaire-static-image__resize-handle--top-right { cursor:nesw-resize;right:-6px;top:-6px; }
.questionnaire-static-image__resize-handle--bottom-left { bottom:-6px;cursor:nesw-resize;left:-6px; }
.questionnaire-static-image__resize-handle--bottom-right { bottom:-6px;cursor:nwse-resize;right:-6px; }
.questionnaire-static-image__resize-handle:hover,.questionnaire-static-image__resize-handle:focus-visible { background:#db5700;box-shadow:0 0 0 3px rgba(255,122,26,.22);outline:0; }
.questionnaire-item-card.is-image-resizing { overflow:visible;z-index:8; }
.questionnaire-item-card.is-image-resizing .questionnaire-static-image__resize-handle { opacity:1; }
@media(max-width:720px){.questionnaire-static-image-editor{grid-template-columns:minmax(0,1fr)}.questionnaire-static-image--left.has-wrap-text .questionnaire-static-image__layout,.questionnaire-static-image--right.has-wrap-text .questionnaire-static-image__layout{grid-template-columns:minmax(0,1fr)}.questionnaire-static-image--right.has-wrap-text .questionnaire-static-image__media,.questionnaire-static-image--right.has-wrap-text .questionnaire-static-image__wrap-text{grid-column:1;grid-row:auto}.questionnaire-static-image__media,.questionnaire-static-image__text-above{width:var(--questionnaire-image-width,50%)}.questionnaire-static-image--left.has-wrap-text .questionnaire-static-image__text-above,.questionnaire-static-image--right.has-wrap-text .questionnaire-static-image__text-above{width:var(--questionnaire-image-width,50%)}}

.invoice-template-editor__settings {
    align-items: end;
    background: #fffdfb;
    border-color: #ddd3ca;
    box-shadow: 0 9px 24px rgba(54, 45, 39, .08);
    display: grid;
    gap: 13px 14px;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    padding: 17px 18px;
}
.invoice-template-editor__settings > label {
    color: #554c47;
    display: grid;
    gap: 6px;
    min-width: 0;
}
.invoice-template-editor__settings > label:nth-of-type(1) { grid-column: span 5; }
.invoice-template-editor__settings > label:nth-of-type(2) { grid-column: span 7; }
.invoice-template-editor__settings > label:nth-of-type(3) { grid-column: span 5; }
.invoice-template-editor__settings > label:nth-of-type(4) { grid-column: span 4; }
.invoice-template-editor__settings > label > span {
    color: #685d57;
    font-size: var(--font-size-label, .7rem);
    font-weight: var(--font-weight-label, 900);
    letter-spacing: .055em;
    line-height: 1.2;
    text-transform: uppercase;
}
.invoice-template-editor__settings input:not([type="color"]),
.invoice-template-editor__settings select {
    appearance: none;
    background-color: #fff;
    border: 1px solid #cfc3ba;
    border-radius: 10px;
    box-shadow: inset 0 2px 6px rgba(55, 44, 37, .045), 0 1px 2px rgba(55, 44, 37, .035);
    box-sizing: border-box;
    color: #352f2b;
    font: inherit;
    font-size: var(--font-size-input, .86rem);
    min-height: 44px;
    min-width: 0;
    padding: 10px 12px;
    transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
    width: 100%;
}
.invoice-template-editor__settings select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'%3E%3Cpath d='m1 1 6 6 6-6' fill='none' stroke='%23675d58' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
    background-position: right 13px center;
    background-repeat: no-repeat;
    padding-right: 40px;
}
.invoice-template-editor__settings input:not([type="color"]):hover,
.invoice-template-editor__settings select:hover { border-color: #aa8e7c; }
.invoice-template-editor__settings input:not([type="color"]):focus,
.invoice-template-editor__settings select:focus {
    border-color: #c96f3d;
    box-shadow: 0 0 0 3px rgba(201, 111, 61, .14), inset 0 1px 3px rgba(55, 44, 37, .04);
    outline: 0;
}
.invoice-template-color > div {
    align-items: center;
    background: #f7f2ed;
    border: 1px solid #ded1c7;
    border-radius: 11px;
    display: grid;
    gap: 8px;
    grid-template-columns: 44px minmax(0, 1fr);
    padding: 5px;
}
.invoice-template-color input[type="color"] {
    background: #fff;
    border: 1px solid #c9b9ad;
    border-radius: 8px;
    cursor: pointer;
    height: 42px;
    overflow: hidden;
    padding: 3px;
    width: 44px;
}
.invoice-template-color input[type="color"]::-webkit-color-swatch-wrapper { padding: 0; }
.invoice-template-color input[type="color"]::-webkit-color-swatch { border: 0; border-radius: 5px; }
.invoice-template-color input[type="color"]::-moz-color-swatch { border: 0; border-radius: 5px; }
.invoice-template-editor__settings > .report-builder-toolbar__status {
    align-items: center;
    align-self: end;
    background: #eaf3ee;
    border: 1px solid #bfd5ca;
    border-radius: 10px;
    color: #315e4b;
    display: flex;
    font-size: var(--font-size-caption, .75rem);
    font-weight: var(--font-weight-label, 900);
    grid-column: span 3;
    justify-content: center;
    min-height: 44px;
    padding: 9px 12px;
    text-align: center;
}
.invoice-template-editor__settings > .report-builder-toolbar__status.is-pending {
    background: #fff5dc;
    border-color: #e4ca86;
    color: #725617;
}
.invoice-template-editor__settings > .report-builder-toolbar__status.is-error {
    background: #fae9e7;
    border-color: #dfb4af;
    color: #873f3a;
}
@media (max-width: 980px) {
    .invoice-template-editor__settings > label:nth-of-type(1),
    .invoice-template-editor__settings > label:nth-of-type(2) { grid-column: span 6; }
    .invoice-template-editor__settings > label:nth-of-type(3) { grid-column: span 6; }
    .invoice-template-editor__settings > label:nth-of-type(4) { grid-column: span 3; }
    .invoice-template-editor__settings > .report-builder-toolbar__status { grid-column: span 3; }
}
@media (max-width: 720px) {
    .session-detail-page { gap: 16px; }
    .session-section--context { padding: 11px; }
    .session-report-collapse__summary { padding: 15px 14px; }
    .session-report-collapse__content { padding: 12px; }
    .questionnaire-options-editor { grid-template-columns:minmax(0,1fr) 38px; }
    .invoice-template-editor__settings { grid-template-columns:minmax(0,1fr);padding:14px; }
    .invoice-template-editor__settings > label:nth-of-type(n),
    .invoice-template-editor__settings > .report-builder-toolbar__status { grid-column:1; }
}

/* La brique Date reste compacte et respecte la taille typographique choisie. */
.questionnaire-item-card--date:not(.is-selected),
.client-questionnaire-field--date {
    align-self: start;
    min-height: 0;
}
.questionnaire-text-size--small .questionnaire-module-rest--date .questionnaire-module-rest__input {
    font-size: .72rem;
}
.questionnaire-text-size--medium .questionnaire-module-rest--date .questionnaire-module-rest__input {
    font-size: .84rem;
}
.questionnaire-text-size--large .questionnaire-module-rest--date .questionnaire-module-rest__input {
    font-size: 1.05rem;
}
.client-questionnaire-field--date > input[type="date"] {
    box-sizing: border-box;
    height: 38px;
    min-height: 38px;
    padding: 6px 10px;
    line-height: 1.2;
}
.client-questionnaire-field--date.questionnaire-text-size--small > input[type="date"] {
    font-size: .76rem;
}
.client-questionnaire-field--date.questionnaire-text-size--medium > input[type="date"] {
    font-size: .88rem;
}
.client-questionnaire-field--date.questionnaire-text-size--large > input[type="date"] {
    font-size: 1.08rem;
}

/* Relations visuelles entre les briques du constructeur de questionnaires. */
.questionnaire-field-library button[data-add-question="email"]::before {
    content: "@";
    font-family: inherit;
    font-size: 2.55rem;
    font-weight: 950;
}
.questionnaire-field-library button[data-add-question="phone"]::before {
    content: "☎";
    font-family: inherit;
    font-size: 2.55rem;
    font-weight: 950;
}

/* Questionnaire · menu déroulant */
.questionnaire-field-library button[data-add-question="dropdown_choice"]::before{content:"⌄";font-family:inherit;font-size:3.5rem;line-height:1}
.questionnaire-field-library button[data-add-question="separator"]::before{content:"—";font-family:inherit;font-size:3.8rem;line-height:1}
.questionnaire-field-library button[data-add-question="table"]::before{content:"▦";font-family:inherit;font-size:3rem;line-height:1}
.questionnaire-item-card--separator{border-left-color:#809189}
.questionnaire-item-card--separator .questionnaire-item-card__head{background:#f0f4f2}
.questionnaire-module-rest--separator{align-items:center;display:flex!important;height:100%;padding:0 1px!important}
.questionnaire-module-rest__separator{border-top-color:var(--questionnaire-tone,#403941);border-top-style:solid;border-top-width:var(--questionnaire-separator-thickness,2px);display:block;width:100%}
.client-questionnaire-separator{align-items:center;display:flex;min-width:0;width:100%}
.client-questionnaire-separator hr{border:0;border-top-color:var(--questionnaire-tone,#403941);border-top-style:solid;border-top-width:var(--questionnaire-separator-thickness,2px);margin:0;width:100%}
.questionnaire-test-separator{align-items:center;display:flex;grid-column:1/-1;min-height:32px;width:100%}
.questionnaire-test-separator hr{border:0;border-top-color:var(--questionnaire-tone,#403941);border-top-style:solid;border-top-width:var(--questionnaire-separator-thickness,2px);margin:0;width:100%}
.questionnaire-separator-appearance{grid-template-columns:repeat(3,minmax(155px,1fr))}
.questionnaire-test-separator--left{justify-content:flex-start}.questionnaire-test-separator--center{justify-content:center}.questionnaire-test-separator--right{justify-content:flex-end}
.questionnaire-test-separator--cols-1 hr{width:8.3333%}.questionnaire-test-separator--cols-2 hr{width:16.6667%}.questionnaire-test-separator--cols-3 hr{width:25%}.questionnaire-test-separator--cols-4 hr{width:33.3333%}.questionnaire-test-separator--cols-5 hr{width:41.6667%}.questionnaire-test-separator--cols-6 hr{width:50%}.questionnaire-test-separator--cols-7 hr{width:58.3333%}.questionnaire-test-separator--cols-8 hr{width:66.6667%}.questionnaire-test-separator--cols-9 hr{width:75%}.questionnaire-test-separator--cols-10 hr{width:83.3333%}.questionnaire-test-separator--cols-11 hr{width:91.6667%}.questionnaire-test-separator--cols-12 hr{width:100%}
@media(max-width:720px){.questionnaire-separator-appearance{grid-template-columns:minmax(0,1fr)}}
.questionnaire-module-rest__select{align-items:center;background:#fff;border:1px solid #cfc6d1;border-radius:9px;box-shadow:inset 0 2px 6px rgba(50,41,54,.05);box-sizing:border-box;color:#777077;display:flex;font-size:var(--font-size-input, .77rem);justify-content:space-between;margin-top:12px;min-height:39px;padding:7px 11px}
.questionnaire-module-rest__select i{color:#654f6e;font-size:var(--font-size-body, 1rem);font-style:normal;font-weight:var(--font-weight-label, 900)}
.questionnaire-dynamic-options{background:#f4f8f6;border:1px solid #c5d8ce;border-radius:10px;display:grid;gap:4px;padding:10px 12px}
.questionnaire-dynamic-options strong{color:#35614f;font-size:var(--font-size-table, .78rem)}
.questionnaire-dynamic-options p{color:#69626b;font-size:var(--font-size-table, .72rem);line-height:1.4;margin:0;overflow-wrap:anywhere}
.questionnaire-item-field--dropdown-source { gap:5px!important; }
.questionnaire-item-field--dropdown-source > span {
    color: #49675a;
    font-size: var(--font-size-table, .68rem);
    font-weight: var(--font-weight-label, 900);
}
.questionnaire-item-field--dropdown-source select {
    border-color: #b8ccc2;
    font-weight: var(--font-weight-label, 780);
}
.questionnaire-item-field__help {
    color: #716775;
    display: block;
    font-size: var(--font-size-table, .67rem);
    font-weight: var(--font-weight-label, 650);
    line-height: 1.35;
}
.questionnaire-item-field--dropdown-species {
    background: #fff;
    border: 1px solid #c5d8ce;
    border-radius: 10px;
    grid-column: 1 / -1;
    padding: 9px 10px;
}
.client-questionnaire-field>select{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23654f6e' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center;border:1px solid #cfc6d1;border-radius:10px;box-shadow:0 2px 7px rgba(50,41,54,.06) inset;color:#342e37;font:inherit;min-height:44px;padding:10px 40px 10px 12px;width:100%}
.client-questionnaire-field>select:focus{border-color:#654c70;box-shadow:0 0 0 3px rgba(101,76,112,.14);outline:0}
.client-questionnaire-field--dropdown_choice>select{align-self:start;font-size:.77rem;height:44px;min-height:44px}
.client-questionnaire-field--dropdown_choice>select>option{font-size:inherit}
.client-questionnaire-field--dropdown_choice.client-questionnaire-response-right>select{font-size:.77rem;height:39px;min-height:39px;padding-bottom:8px;padding-top:8px}
.questionnaire-test-field>select{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23684f72' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 11px center;border:1px solid #cfc5d1;border-radius:9px;box-sizing:border-box;color:#3e3741;font:inherit;min-height:41px;padding:9px 38px 9px 11px;width:100%}
.questionnaire-test-field>select:focus{border-color:#684f72;box-shadow:0 0 0 3px rgba(104,79,114,.14);outline:0}
.questionnaire-separator-toggle{align-items:center;background:#f6f3f7;border:1px solid #d8cedb;border-radius:10px;box-sizing:border-box;color:#584c5c;cursor:pointer;display:inline-flex;font-size:var(--font-size-control, .74rem);font-weight:var(--font-weight-label, 850);gap:9px;justify-self:start;max-width:100%;min-height:42px;padding:8px 11px;width:auto}
.questionnaire-separator-toggle input{height:1px;opacity:0;position:absolute;width:1px}
.questionnaire-separator-toggle i{background:#c9c0cc;border-radius:999px;display:block;flex:0 0 34px;height:19px;position:relative;transition:background-color .18s ease}
.questionnaire-separator-toggle i::after{background:#fff;border-radius:50%;box-shadow:0 2px 5px rgba(55,43,60,.22);content:"";height:15px;left:2px;position:absolute;top:2px;transition:transform .18s ease;width:15px}
.questionnaire-separator-toggle input:checked+i{background:#477761}
.questionnaire-separator-toggle input:checked+i::after{transform:translateX(15px)}
.questionnaire-separator-toggle:has(input:focus-visible){border-color:#684f72;box-shadow:0 0 0 3px rgba(104,79,114,.14)}
.questionnaire-builder .questionnaire-item-card.is-selected .questionnaire-item-card__fields>.questionnaire-separator-toggle,
.report-template-builder .report-block-card.is-selected .report-block-card__fields>.questionnaire-separator-toggle{display:inline-flex;justify-self:start;width:auto}
.questionnaire-a3-paper .questionnaire-item-card{border-left-width:1px}
.questionnaire-module-rest--information,.questionnaire-preview-info{border-left:0;border-radius:8px}
.report-block-autofill-note{border-left-width:1px}
.questionnaire-module-rest--section.has-no-separator,.questionnaire-module-rest--heading_content.has-no-separator,.client-questionnaire-section.has-no-separator,.client-questionnaire-heading.has-no-separator,.questionnaire-test-section.has-no-separator,.questionnaire-test-heading.has-no-separator{border-bottom-color:transparent!important}
.questionnaire-test-heading{border-bottom:1px solid #c7d5ce;padding:5px 0 8px}
.client-questionnaire-field--email .client-questionnaire-text-response,
.client-questionnaire-field--phone .client-questionnaire-text-response {
    align-content: start;
}
.client-questionnaire-field--email .client-questionnaire-text-response > input,
.client-questionnaire-field--phone .client-questionnaire-text-response > input {
    box-sizing: border-box;
    height: 44px;
    max-height: 44px;
    min-height: 44px;
}
.questionnaire-module-rest__phone {
    align-items: stretch;
    display: grid;
    gap: 7px;
    grid-template-columns: minmax(92px, auto) minmax(0, 1fr);
    margin-top: 9px;
}
.questionnaire-module-rest__phone span,
.questionnaire-module-rest__phone em {
    align-items: center;
    background: #fff;
    border: 1px solid #cfc6d1;
    border-radius: 9px;
    box-sizing: border-box;
    color: #4f4652;
    display: flex;
    font-size: var(--font-size-table, .74rem);
    font-style: normal;
    min-height: 39px;
    padding: 8px 10px;
}
.questionnaire-module-rest__phone span { background:#f6f1f7; font-weight:var(--font-weight-label, 850); white-space:nowrap; }
.questionnaire-module-rest__phone em { color:#918992; }
.questionnaire-phone-field {
    display: grid;
    gap: 7px 9px;
    grid-template-columns: max-content minmax(14ch, 20ch);
    max-width: 100%;
    min-width: 0;
    width: max-content;
}
.aenima-phone-control {
    border: 0;
    box-sizing: border-box;
    container-type: inline-size;
    container-name: phone-control;
    display: grid;
    gap: 5px;
    margin: 0;
    max-width: 100%;
    min-width: 0;
    padding: 0;
}
.aenima-phone-control > legend {
    color: inherit;
    font: inherit;
    font-weight: inherit;
    margin: 0;
    padding: 0;
}
.practitioner-profile-fields > .aenima-phone-control {
    color: #5c525f;
    font-size: var(--font-size-table, .74rem);
    font-weight: var(--font-weight-label, 850);
}
.practitioner-profile-fields > .aenima-phone-control .questionnaire-phone-field {
    grid-template-columns: minmax(150px, .9fr) minmax(130px, 1.1fr);
}
.questionnaire-phone-field label {
    color: #645a66;
    display: grid;
    font-size: var(--font-size-label, .66rem);
    font-weight: var(--font-weight-label, 850);
    gap: 4px;
    min-width: 0;
}
.questionnaire-phone-field select,
.questionnaire-phone-field input {
    background-color: #fff;
    border: 1px solid #cfc6d1;
    border-radius: 10px;
    box-shadow: 0 2px 7px rgba(50,41,54,.06) inset;
    box-sizing: border-box;
    color: #342e37;
    font: inherit;
    font-size: var(--font-size-input, .78rem);
    height: 44px;
    min-height: 44px;
    min-width: 0;
    width: 100%;
}
.questionnaire-phone-field select {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23654f72' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-position: right 10px center;
    background-repeat: no-repeat;
    field-sizing: content;
    max-width: 100%;
    padding: 9px 34px 9px 10px;
    width: auto;
}
.questionnaire-phone-field input { padding:9px 11px; width:min(100%,20ch); }
.questionnaire-phone-field select:focus,
.questionnaire-phone-field input:focus { border-color:#654c70; box-shadow:0 0 0 3px rgba(101,76,112,.14); outline:0; }
.questionnaire-phone-field > small {
    color: #756d77;
    font-size: var(--font-size-help, .66rem);
    grid-column: 1 / -1;
    line-height: 1.3;
}
.questionnaire-phone-field.is-valid input { border-color:#66957f; }
.questionnaire-phone-field.is-invalid input { border-color:#bb6659; }
.questionnaire-phone-field.is-invalid > small { color:#a64e42; font-weight:var(--font-weight-label, 750); }
.client-questionnaire-response-right > .questionnaire-phone-field {
    align-self: start;
    grid-column: 2;
    grid-row: 1 / span 2;
    margin-left: var(--response-prompt-width, 0px) !important;
    margin-top: -16px !important;
    width: calc(100% - var(--response-prompt-width, 0px)) !important;
}
@container phone-control (max-width: 24rem) {
    .aenima-phone-control .questionnaire-phone-field {
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
    }
    .aenima-phone-control .questionnaire-phone-field select,
    .aenima-phone-control .questionnaire-phone-field input { max-width: 100%; }
}
@media(max-width:720px) {
    .questionnaire-phone-field { grid-template-columns:minmax(0,1fr); width:100%; }
    .questionnaire-phone-field select,
    .questionnaire-phone-field input { width:100%; }
    .questionnaire-phone-field > small { grid-column:1; }
    .client-questionnaire-response-right > .questionnaire-phone-field { grid-column:1;grid-row:auto;margin-left:0!important;margin-top:0!important;width:100%!important; }
}

/* Espacement vertical compact et identique dans l’éditeur et l’aperçu. */
.questionnaire-builder__composition [data-questionnaire-items],
.questionnaire-editor-sheet__body,
.client-questionnaire-page__content {
    column-gap: 10px;
    row-gap: 8px;
}
.questionnaire-item-card--rows-1 { min-height: 48px; }
.questionnaire-item-card--rows-2 { min-height: 104px; }
.questionnaire-item-card--rows-3 { min-height: 160px; }
.questionnaire-item-card--rows-4 { min-height: 216px; }
.questionnaire-item-card--rows-5 { min-height: 272px; }
.questionnaire-item-card--rows-6 { min-height: 328px; }
.questionnaire-item-card--rows-7 { min-height: 384px; }
.questionnaire-item-card--rows-8 { min-height: 440px; }
.questionnaire-item-card--rows-9 { min-height: 496px; }
.questionnaire-item-card--rows-10 { min-height: 552px; }
.questionnaire-item-card--rows-11 { min-height: 608px; }
.questionnaire-item-card--rows-12 { min-height: 664px; }
.client-questionnaire-rows-1 { min-height: 48px; }
.client-questionnaire-rows-2 { min-height: 104px; }
.client-questionnaire-rows-3 { min-height: 160px; }
.client-questionnaire-rows-4 { min-height: 216px; }
.client-questionnaire-rows-5 { min-height: 272px; }
.client-questionnaire-rows-6 { min-height: 328px; }
.client-questionnaire-rows-7 { min-height: 384px; }
.client-questionnaire-rows-8 { min-height: 440px; }
.client-questionnaire-rows-9 { min-height: 496px; }
.client-questionnaire-rows-10 { min-height: 552px; }
.client-questionnaire-rows-11 { min-height: 608px; }
.client-questionnaire-rows-12 { min-height: 664px; }
.questionnaire-test-page{display:grid;gap:16px}.questionnaire-test-result{align-items:center;display:flex;justify-content:space-between}.questionnaire-test-result>div{display:flex;gap:8px}.questionnaire-test-result>div:first-child{display:grid;gap:2px}.questionnaire-test-form{display:grid;gap:16px}.questionnaire-test-targets{border-top:4px solid #d06c32;padding:16px 18px}.questionnaire-test-targets>header{align-items:center;display:flex;justify-content:space-between}.questionnaire-test-targets>header small{color:#a2542c;font-size:var(--font-size-help, .67rem);font-weight:var(--font-weight-label, 900);letter-spacing:.08em;text-transform:uppercase}.questionnaire-test-targets h2{color:#3f3a42;font-family:Georgia,serif;font-size:var(--font-size-section-title, 1.12rem);margin:2px 0}.questionnaire-test-targets>header>span{background:#f7e9df;border-radius:7px;color:#934e29;font-size:var(--font-size-caption, .69rem);font-weight:var(--font-weight-label, 850);padding:6px 8px}.questionnaire-test-targets>p{color:#716a73;font-size:var(--font-size-table, .78rem);margin:7px 0 12px}.questionnaire-test-targets>div{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.questionnaire-test-targets label{color:#564d5a;display:grid;font-size:var(--font-size-label, .72rem);font-weight:var(--font-weight-label, 850);gap:5px}.questionnaire-test-targets select,.questionnaire-test-targets .questionnaire-test-species-value,.questionnaire-test-field input,.questionnaire-test-field textarea{background:#fff;border:1px solid #cfc5d1;border-radius:9px;box-sizing:border-box;color:#3e3741;font:inherit;min-height:41px;padding:9px 11px;width:100%}.questionnaire-test-targets .questionnaire-test-species-value{background:#edf3ef;border-color:#c4d7cd;color:#35614f;font-weight:var(--font-weight-label, 850)}.questionnaire-test-targets select:focus,.questionnaire-test-field input:focus,.questionnaire-test-field textarea:focus{border-color:#684f72;box-shadow:0 0 0 3px rgba(104,79,114,.14);outline:0}.questionnaire-test-document{background:#fff;border:1px solid #d7d0ca;box-shadow:0 16px 38px rgba(52,43,38,.15);margin:0 auto;max-width:850px;width:100%}.questionnaire-test-document__header{align-items:center;background:#f7f2eb;border-bottom:1px solid #ddd4ca;display:flex;gap:14px;padding:20px 24px}.questionnaire-test-document__header small{color:#947050;font-size:var(--font-size-help, .65rem);font-weight:var(--font-weight-label, 900);letter-spacing:.09em;text-transform:uppercase}.questionnaire-test-document__header h2{color:#3f3a42;font-family:Georgia,serif;font-size:var(--font-size-section-title, 1.3rem);margin:2px 0}.questionnaire-test-document__content{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));padding:22px 26px}.questionnaire-test-section{align-items:center;border-bottom:2px solid color-mix(in srgb,var(--questionnaire-tone) 50%,#fff);display:flex;gap:10px;grid-column:1/-1;padding:7px 0}.questionnaire-test-section span{align-items:center;background:var(--questionnaire-tone);border-radius:7px;color:#fff;display:flex;font-size:var(--font-size-table, .7rem);font-weight:var(--font-weight-label, 900);height:31px;justify-content:center;width:37px}.questionnaire-test-section h3{color:var(--questionnaire-tone);font-size:var(--font-size-card-title, 1.05rem);margin:0}.questionnaire-test-copy,.questionnaire-test-image{grid-column:1/-1}.questionnaire-test-field{border:1px solid #ddd5df;border-radius:11px;display:grid;gap:7px;margin:0;min-width:0;padding:13px 14px;position:relative}.questionnaire-test-field legend{color:#443b47;font-size:var(--font-size-label, .84rem);font-weight:var(--font-weight-label, 800);padding:0 5px}.questionnaire-test-field legend span{color:#b65140}.questionnaire-test-field>p{color:#756d77;font-size:var(--font-size-table, .73rem);line-height:1.4;margin:0}.questionnaire-test-field__mapping{align-self:start;background:#e8f1ec;border:1px solid #c3d8cd;border-radius:6px;color:#3b6854;font-size:var(--font-size-help, .61rem);font-weight:var(--font-weight-label, 850);justify-self:start;padding:3px 6px;text-transform:capitalize}.questionnaire-test-field textarea{line-height:1.45;resize:vertical}.questionnaire-test-choices{display:flex;flex-wrap:wrap;gap:7px}.questionnaire-test-choices label{align-items:center;background:#f8f5f8;border:1px solid #d8ceda;border-radius:8px;display:flex;font-size:var(--font-size-label, .76rem);gap:7px;padding:8px 10px}.questionnaire-test-choices input{appearance:auto;box-shadow:none;min-height:0;padding:0;width:auto}.questionnaire-test-bullets{display:grid;gap:8px}.questionnaire-test-bullets>div{display:grid;gap:6px}.questionnaire-test-bullets label{align-items:center;display:grid;gap:5px;grid-template-columns:auto minmax(0,1fr) auto}.questionnaire-test-bullets button{background:#fff;border:1px solid #d1c5d3;border-radius:7px;color:#654f6c;cursor:pointer;min-height:34px;padding:5px 8px}.questionnaire-test-unavailable{background:#f4f1f4;border-radius:8px;color:#736a75;font-size:var(--font-size-control, .75rem);padding:10px}.questionnaire-test-document__footer{align-items:center;background:#f5f1f6;border-top:1px solid #ddd3df;display:flex;justify-content:space-between;padding:16px 24px}.questionnaire-test-document__footer>div{display:grid;gap:2px}.questionnaire-test-document__footer span{color:#716a73;font-size:var(--font-size-table, .72rem)}.table-action--test{border-color:#d58a57;color:#9a512a}@media(max-width:760px){.questionnaire-test-targets>div,.questionnaire-test-document__content{grid-template-columns:minmax(0,1fr)}.questionnaire-test-result,.questionnaire-test-document__footer{align-items:stretch;flex-direction:column;gap:10px}.questionnaire-test-result>div{flex-wrap:wrap}}
.questionnaire-test-field--email > input {
    align-self: start;
    height: 41px;
    max-height: 41px;
    min-height: 41px;
}

/* Le testeur reprend la grille à 12 colonnes et les dimensions configurées dans le modèle. */
.questionnaire-test-document__content{grid-template-columns:repeat(12,minmax(0,1fr));gap:0}
.questionnaire-test-layout-item{min-width:0}
@media(max-width:760px){.questionnaire-test-document__content{gap:12px;grid-template-columns:minmax(0,1fr)}}

.questionnaire-aenima-catalog{background:#f4f8f5;border:1px solid #b8d1c2;border-top:4px solid #35614f}
.questionnaire-aenima-catalog .questionnaire-section-heading p{color:#517063;font-size:var(--font-size-table, .78rem);margin:4px 0 0}
.client-questionnaire-preview-shell--aenima .client-questionnaire-section{padding-bottom:18px}

/* Bibliothèque organisée de l’éditeur de questionnaires. */
.questionnaire-library-search{
    align-items:center;
    background:#fff;
    border:1px solid #cfc4d2;
    border-radius:10px;
    display:grid;
    gap:7px;
    grid-template-columns:18px minmax(0,1fr);
    margin:4px 0 10px;
    min-width:0;
    padding:0 10px;
}
.questionnaire-library-search:focus-within{border-color:#70577a;box-shadow:0 0 0 3px rgba(112,87,122,.13)}
.questionnaire-library-search svg{fill:none;height:17px;stroke:#725d79;stroke-linecap:round;stroke-width:1.8;width:17px}
.questionnaire-library-search input{
    appearance:none;
    background:transparent;
    border:0;
    box-shadow:none;
    color:#413846;
    font:inherit;
    font-size:var(--font-size-input, .75rem);
    height:42px;
    min-width:0;
    outline:0;
    padding:0;
    width:100%;
}
.questionnaire-library-search input::placeholder{color:#8a808d}
.questionnaire-library-categories{display:grid;gap:6px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:7px}
.questionnaire-field-library .questionnaire-library-categories button{
    align-items:center;
    background:#f7f3f8;
    border:1px solid #d6cbd9;
    border-radius:9px;
    color:#5b4b61;
    cursor:pointer;
    display:flex;
    font:inherit;
    font-size:var(--font-size-control, .69rem);
    font-weight:var(--font-weight-label, 850);
    gap:5px;
    justify-content:space-between;
    min-height:42px;
    padding:7px 8px;
    text-align:left;
}
.questionnaire-field-library .questionnaire-library-categories button:last-child{grid-column:1/-1}
.questionnaire-field-library .questionnaire-library-categories button span{align-items:center;background:#fff;border:1px solid #d9cedc;border-radius:6px;display:flex;font-size:var(--font-size-control, .62rem);height:21px;justify-content:center;min-width:23px;padding:0 5px}
.questionnaire-field-library .questionnaire-library-categories button:hover,.questionnaire-field-library .questionnaire-library-categories button:focus-visible{background:#ece4ef;border-color:#9f8aa7;color:#4c3b52;outline:0}
.questionnaire-field-library .questionnaire-library-categories button.is-active{background:#654c70;border-color:#654c70;color:#fff;box-shadow:0 5px 11px rgba(70,51,79,.15)}
.questionnaire-field-library .questionnaire-library-categories button.is-active span{background:#fff;border-color:#fff;color:#654c70}
.questionnaire-library-result{color:#776d7a;font-size:var(--font-size-table, .65rem);font-weight:var(--font-weight-label, 800);margin:0 2px 6px;text-align:right}
.questionnaire-library-result.is-empty{background:#f8f3ed;border:1px solid #e1c9b9;border-radius:8px;color:#875738;padding:9px;text-align:center}
.questionnaire-field-library [data-questionnaire-library] button[hidden]{display:none!important}
@media(max-width:1150px){
    .questionnaire-library-categories{grid-template-columns:repeat(5,minmax(0,1fr))}
    .questionnaire-field-library .questionnaire-library-categories button:last-child{grid-column:auto}
}
@media(max-width:720px){
    .questionnaire-library-categories{grid-template-columns:repeat(2,minmax(0,1fr))}
    .questionnaire-field-library .questionnaire-library-categories button:last-child{grid-column:1/-1}
}

/* Présentation choisie dans chaque brique de choix unique. */
.questionnaire-module-rest--single_choice .questionnaire-module-rest__choices.is-list,
.client-questionnaire-field--single_choice > .client-questionnaire-choices.is-list,
.questionnaire-test-field--single_choice .questionnaire-test-choices.is-list{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    justify-items:start;
}
.questionnaire-module-rest--single_choice .questionnaire-module-rest__choices.is-list>span,
.client-questionnaire-field--single_choice > .client-questionnaire-choices.is-list>label,
.questionnaire-test-field--single_choice .questionnaire-test-choices.is-list>label{
    max-width:100%;
    width:max-content;
}
.questionnaire-module-rest--single_choice .questionnaire-module-rest__choices.is-inline,
.client-questionnaire-field--single_choice > .client-questionnaire-choices.is-inline,
.questionnaire-test-field--single_choice .questionnaire-test-choices.is-inline{
    align-items:center;
    display:flex;
    flex-wrap:wrap;
    gap:6px 8px;
    justify-content:flex-start;
}
.questionnaire-module-rest--single_choice .questionnaire-module-rest__choices.is-inline>span,
.client-questionnaire-field--single_choice > .client-questionnaire-choices.is-inline>label,
.questionnaire-test-field--single_choice .questionnaire-test-choices.is-inline>label{
    flex:0 0 auto;
    max-width:100%;
    width:max-content;
}
.questionnaire-module-rest--single_choice .questionnaire-module-rest__choices.is-inline>span{
    padding:6px 7px;
}
.client-questionnaire-field--single_choice > .client-questionnaire-choices.is-inline>label,
.questionnaire-test-field--single_choice .questionnaire-test-choices.is-inline>label{
    padding:6px 8px;
}

/* Une réponse Oui / Non doit rester aussi compacte qu’un champ simple. */
.client-questionnaire-field--yes_no[class*="client-questionnaire-rows-"]{
    align-content:start;
    min-height:0!important;
}
.client-questionnaire-field--yes_no>.client-questionnaire-choices{
    gap:6px;
}
.client-questionnaire-field--yes_no>.client-questionnaire-choices label{
    min-height:36px;
    padding:7px 9px;
}

.questionnaire-options-editor.is-inline{
    align-items:center;
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}
.questionnaire-options-editor.is-inline .questionnaire-options-editor__list{
    display:contents;
}
.questionnaire-options-editor.is-inline .questionnaire-options-editor__row{
    flex:0 1 auto;
    grid-template-columns:auto auto auto;
    width:auto;
}
.questionnaire-options-editor.is-inline .questionnaire-options-editor__row>input{
    max-width:min(220px,100%);
    min-width:48px;
    width:auto;
}

.questionnaire-choice-layout{
    background:#eee8f0;
    border:1px solid #d3c7d7;
    border-radius:11px;
    display:grid;
    gap:5px;
    grid-template-columns:repeat(2,minmax(0,1fr));
    max-width:430px;
    padding:5px;
}
.questionnaire-choice-layout__option{
    background:transparent;
    border:1px solid transparent;
    border-radius:8px;
    color:#625768;
    cursor:pointer;
    font:inherit;
    font-size:var(--font-size-table, .74rem);
    font-weight:var(--font-weight-label, 850);
    min-height:36px;
    padding:7px 10px;
}
.questionnaire-choice-layout__option:hover,
.questionnaire-choice-layout__option:focus-visible{
    background:#f8f5f9;
    color:#4f3d56;
    outline:0;
}
.questionnaire-choice-layout__option.is-active{
    background:#fff;
    border-color:#cbbdce;
    box-shadow:0 4px 10px rgba(55,43,60,.1);
    color:#4d6f60;
}
.questionnaire-page-start-toggle{
    align-items:center;
    background:#eef4f1;
    border:1px solid #c4d7cd;
    border-radius:10px;
    color:#3d6554;
    cursor:pointer;
    display:grid;
    gap:9px;
    grid-template-columns:20px minmax(0,1fr);
    padding:9px 11px;
}
.questionnaire-page-start-toggle>input{
    height:20px!important;
    margin:0;
    opacity:0;
    position:absolute;
    width:20px!important;
}
.questionnaire-page-start-toggle>i{
    background:#fff;
    border:2px solid #6f8f80;
    border-radius:5px;
    box-sizing:border-box;
    display:block;
    height:20px;
    position:relative;
    width:20px;
}
.questionnaire-page-start-toggle>input:checked+i{
    background:#3f705d;
    border-color:#3f705d;
}
.questionnaire-page-start-toggle>input:checked+i::after{
    border:solid #fff;
    border-width:0 2px 2px 0;
    content:"";
    height:9px;
    left:6px;
    position:absolute;
    top:2px;
    transform:rotate(45deg);
    width:4px;
}
.questionnaire-page-start-toggle>span{display:grid;gap:1px}
.questionnaire-page-start-toggle strong{font-size:var(--font-size-control, .76rem)}
.questionnaire-page-start-toggle small{color:#6f7d76;font-size:var(--font-size-control, .67rem);font-weight:var(--font-weight-label, 650)}
.questionnaire-page-start-toggle:focus-within{
    border-color:#477761;
    box-shadow:0 0 0 3px rgba(71,119,97,.14);
}

/* Préférences de communication des fiches client et organisation. */
.client-communication-preferences{
    display:grid;
    gap:9px;
    grid-template-columns:repeat(3,minmax(0,1fr));
    margin-top:13px;
}
.client-communication-preferences>label{
    align-items:flex-start;
    background:#f5f8f6;
    border:1px solid #cbdcd3;
    border-radius:11px;
    cursor:pointer;
    display:flex;
    gap:10px;
    min-width:0;
    padding:11px 12px;
}
.client-communication-preferences input{
    accent-color:#477761;
    flex:0 0 auto;
    height:19px;
    margin:2px 0 0;
    width:19px;
}
.client-communication-preferences span{display:grid;gap:2px;min-width:0}
.client-communication-preferences strong{color:#40574d;font-size:var(--font-size-table, .77rem)}
.client-communication-preferences small{color:#6c756f;font-size:var(--font-size-help, .69rem);line-height:1.35}
@media(max-width:820px){.client-communication-preferences{grid-template-columns:minmax(0,1fr)}}

/* Fiches client et organisation : formulaire compact et lecture structurée. */
.client-form-page,
.client-detail-page{
    container-type:inline-size;
    display:grid;
    gap:16px;
    min-width:0;
}
.client-form-page>*,
.client-detail-page>*{min-width:0}

.client-form-hero{
    align-items:center;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    padding:0;
}
.client-form-hero .animal-detail-hero__identity{
    gap:16px;
    grid-template-columns:68px minmax(0,1fr);
    padding:22px 22px 16px;
}
.client-form-hero .animal-detail-hero__portrait{
    min-height:78px;
    width:64px;
}
.client-form-hero .animal-detail-hero__monogram{
    height:76px;
    min-height:76px;
    width:64px;
}
.client-form-hero .animal-detail-hero__monogram strong{font-size:1.9rem}
.client-form-hero .animal-detail-hero__copy{
    min-width:0;
}
.client-form-hero h1{
    font-size:var(--font-size-page-title, clamp(1.9rem,3.5vw,2.7rem));
    line-height:var(--line-height-title, 1.05);
    margin:4px 0 6px;
}
.client-form-hero p{
    color:var(--color-text-soft);
    margin:0;
    max-width:760px;
}
.client-form-hero .practitioner-detail-actions{
    align-items:center;
    align-self:center;
    border-top:0;
    display:flex;
    justify-content:flex-end;
    margin:0 22px 0 8px;
    padding:0;
}
.client-form-hero .practitioner-detail-actions .btn{
    min-height:39px;
    min-width:150px;
    width:auto;
}
.client-form-shell{
    background:transparent;
    border:0;
    box-shadow:none;
    padding:0;
}
.client-form{
    align-items:start;
    display:grid;
    gap:12px;
    grid-template-columns:repeat(2,minmax(0,1fr));
}
.client-form-section{
    background:#fff;
    border:1px solid #ddd6df;
    border-left:4px solid var(--color-primary);
    border-radius:13px;
    box-shadow:0 6px 16px rgba(57,45,61,.055);
    margin:0;
    min-width:0;
    padding:0 14px 14px;
}
.client-form-section + .client-form-section{margin-top:0}
.client-form-section--organization,
.client-form-section--custom{grid-column:1/-1}
.client-form-page--person .client-form-section--identity{grid-column:1/-1}
@container (min-width: 681px){
    .client-form-page--person .client-form-section--communication{grid-column:1;grid-row:2}
    .client-form-page--person .client-form-section--billing{grid-column:2;grid-row:2 / span 2}
    .client-form-page--person .client-form-section--follow-up{grid-column:1;grid-row:3}
}
.client-form-section--organization{border-left-color:#72577c}
.client-form-section--address{border-left-color:#4f7a69}
.client-form-section--communication{border-left-color:#b9673d}
.client-form-section--secondary{border-left-color:#9a735d}
.client-form-section--billing{border-left-color:#6f6580}
.client-form-section--follow-up{border-left-color:#9a735d}
.client-form-section__heading{
    background:#eef4f1;
    margin:0 -14px 13px;
    padding:11px 13px;
}
.client-form-section--organization .client-form-section__heading,
.client-form-section--billing .client-form-section__heading{background:#f2edf4}
.client-form-section--communication .client-form-section__heading,
.client-form-section--secondary .client-form-section__heading,
.client-form-section--follow-up .client-form-section__heading{background:#f7eee9}
.client-form-section__heading>div{
    display:grid;
    gap:1px;
    min-width:0;
}
.client-form-section__heading h2{margin:0}
.client-form-section__heading p{
    color:#756e77;
    font-size:var(--font-size-table, .86rem);
    line-height:var(--line-height-title, 1.35);
    margin:2px 0 0;
}
.client-form-group-heading{
    border-top:1px solid #dce6e1;
    display:grid;
    gap:1px;
    margin:15px 0 12px;
    padding-top:12px;
}
.client-form-group-heading small{
    color:#62736d;
    font-size:var(--font-size-help, .64rem);
    font-weight:var(--font-weight-label, 800);
    letter-spacing:.1em;
    text-transform:uppercase;
}
.client-form-group-heading h3{
    color:#405f55;
    font-size:var(--font-size-card-title, 1.05rem);
    line-height:var(--line-height-title, 1.2);
    margin:0;
}
.client-form-group-heading p{
    color:#756e77;
    font-size:var(--font-size-table, .7rem);
    line-height:1.35;
    margin:2px 0 0;
}
.client-form-section .form-section__header{
    align-items:baseline;
    border-bottom:1px solid #e6e0e7;
    display:flex;
    gap:10px;
    justify-content:space-between;
    margin:0 0 12px;
    padding-bottom:9px;
}
.client-form-section .form-section__header h2{
    color:#405f55;
    font-size:var(--font-size-card-title, 1.02rem);
    line-height:var(--line-height-title, 1.2);
    margin:0;
}
.client-form-section--organization .form-section__header h2{color:#60476b}
.client-form-section--communication .form-section__header h2{color:#94502e}
.client-form-section .form-section__header p{
    color:#756e77;
    font-size:var(--font-size-table, .72rem);
    line-height:1.35;
    margin:0;
    text-align:right;
}
.client-form .form-grid{
    gap:10px 12px;
    grid-template-columns:repeat(2,minmax(0,1fr));
}
.client-form-section--organization .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.client-form-section--custom .form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.client-form .field{
    align-content:start;
    display:grid;
    gap:5px;
    margin:0;
    min-width:0;
}
.client-form .field>span{
    color:#554d58;
    font-size:var(--font-size-label, .72rem);
    font-weight:var(--font-weight-label, 800);
    line-height:1.25;
    margin:0;
}
.client-form .field>small{
    color:#7a727d;
    font-size:var(--font-size-help, .65rem);
    line-height:1.3;
}
.client-form .field>[data-field-feedback][data-state="error"],
.client-form .field>[data-siret-feedback][data-state="error"]{
    color:var(--color-danger);
    font-weight:var(--font-weight-label, 760);
}
.client-form .field>[data-field-feedback][data-state="success"],
.client-form .field>[data-siret-feedback][data-state="success"]{
    color:var(--color-primary-strong);
}
.client-form .input{
    border-color:#d2c9d4;
    box-shadow:inset 0 1px 3px rgba(50,40,54,.04);
    font-size:var(--font-size-input, .84rem);
    min-height:40px;
    min-width:0;
    padding:var(--ui-space-2, 8px) 10px;
}
.client-form .aenima-phone-control.field{
    grid-column:1/-1;
}
.client-form .aenima-phone-control .questionnaire-phone-field{
    grid-template-columns:minmax(150px, max-content) minmax(14ch, 20ch);
    width:100%;
}
.client-form select.input{padding-right:28px}
.client-form .textarea{
    line-height:1.45;
    min-height:78px;
}
.client-form-notes{
    border-top:1px solid #e5dfe6;
    margin-top:11px!important;
    padding-top:11px;
}
.client-form .client-communication-preferences{
    gap:7px;
    margin-top:10px;
}
.client-form .client-communication-preferences>label{
    border-radius:9px;
    gap:8px;
    padding:8px 9px;
}
.client-form .client-communication-preferences input{
    height:17px;
    width:17px;
}
.client-form .client-communication-preferences strong{font-size:var(--font-size-table, .72rem)}
.client-form .client-communication-preferences small{font-size:var(--font-size-help, .64rem)}
.client-form .form-actions{
    align-items:center;
    border-top:1px solid #ddd4cf;
    grid-column:1/-1;
    margin:2px 0 0;
    padding-top:13px;
}
.client-form .form-actions .btn{min-width:220px}
.client-form-shell>.danger-zone{
    border-top:1px solid #e4d8d5;
    display:flex;
    justify-content:flex-end;
    margin-top:12px;
    padding-top:12px;
}

/* Fiche animal : édition harmonisée avec les formulaires client. */
.animal-form-page--edit{
    display:grid;
    gap:16px;
    min-width:0;
}
.animal-form-page--edit>*{min-width:0}
.animal-form-page--edit .animal-form-hero{
    gap:20px;
    margin:0;
    padding:19px 22px;
}
.animal-form-page--edit .animal-form-hero__identity{gap:16px}
.animal-form-page--edit .animal-form-hero__portrait{
    flex-basis:64px;
    min-height:76px;
    width:64px;
}
.animal-form-page--edit .animal-form-hero__portrait .animal-detail-hero__photo,
.animal-form-page--edit .animal-form-hero__portrait .animal-detail-hero__monogram{
    height:76px;
    min-height:76px;
    width:64px;
}
.animal-form-page--edit .animal-form-hero__copy h1{
    font-size:var(--font-size-page-title, clamp(1.85rem,3vw,2.45rem));
    line-height:var(--line-height-title, 1.05);
    margin:6px 0 5px;
}
.animal-form-page--edit .animal-form-hero__copy p{margin:0}
.animal-form-page--edit .animal-form-shell{
    background:#f6f3ef;
    border-color:#ddd5ce;
    display:grid;
    gap:12px;
    padding:14px;
}
.animal-form-page--edit .animal-form{
    display:contents;
}
.animal-form-page--edit .animal-form-section{
    background:#fff;
    border:1px solid #ddd6df;
    border-left:4px solid var(--color-primary);
    border-radius:13px;
    box-shadow:0 6px 16px rgba(57,45,61,.055);
    margin:0;
    min-width:0;
    padding:15px 17px 16px;
}
.animal-form-page--edit .animal-form-section--identity{border-left-color:var(--color-identity)}
.animal-form-page--edit .animal-form-section--identity.is-identity-locked .input:disabled{
    background:#f1f4f2;
    border-color:#cad6d0;
    color:#44534d;
    cursor:not-allowed;
    opacity:1;
}
.animal-form-page--edit .animal-form-section--identity.is-identity-locked .animal-breed-suggestions,
.animal-form-page--edit .animal-form-section--identity.is-identity-locked .animal-coat-suggestions{display:none}
.animal-form-page--edit .animal-form-section--contacts{border-left-color:#e07a2f}
.animal-form-page--edit .animal-form-section--profile{border-left-color:var(--color-primary)}
.animal-form-page--edit .animal-form-section--wellbeing{border-left-color:var(--color-secondary)}
.animal-form-page--edit .animal-form-section--history{border-left-color:#72577c}
.animal-form-page--edit .animal-form-section--professional{border-left-color:#795a3f}
.animal-form-page--edit .animal-form-section--vaccinations{border-left-color:#4f7f77}
.animal-form-page--edit .animal-form-section--gallery{border-left-color:#aa6c31}
.animal-form-page--edit .animal-form__identity-owner{order:1}
.animal-form-page--edit .animal-form__contacts-living-place{order:2}
.animal-form-page--edit .animal-form__profile-vaccinations{order:3}
.animal-form-page--edit .animal-form-section--history{order:4}
.animal-form-page--edit .animal-form-section--professional{order:7}
.animal-form-page--edit .animal-form-section--wellbeing{order:8}
.animal-form-page--edit .animal-form-section--custom{order:9}
.animal-form-page--edit .animal-form-section--gallery{order:10}
.animal-form-page--edit .animal-form .form-actions{order:11}
.animal-form-page--edit .animal-edit-nutrition{display:contents}
.animal-form-page--edit .animal-edit-nutrition .nutrition-profile-card{order:5}
.animal-form-page--edit .animal-edit-nutrition .nutrition-ration-card{order:6}
.animal-form-page--edit .animal-edit-nutrition .nutrition-profile-card,
.animal-form-page--edit .animal-edit-nutrition .nutrition-ration-card{
    background:#fff;
    border:1px solid #ddd6df;
    border-left:4px solid #5d7e65;
    border-radius:13px;
    box-shadow:0 6px 16px rgba(57,45,61,.055);
    overflow:visible;
    padding:15px 17px 16px;
}
.animal-form-page--edit .animal-edit-nutrition .nutrition-ration-card{border-left-color:#4f7f77}
.animal-form-page--edit .animal-edit-nutrition .nutrition-profile-card::before,
.animal-form-page--edit .animal-edit-nutrition .nutrition-profile-card::after,
.animal-form-page--edit .animal-edit-nutrition .nutrition-ration-card::before,
.animal-form-page--edit .animal-edit-nutrition .nutrition-ration-card::after,
.animal-form-page--edit .animal-edit-nutrition .nutrition-section-index,
.animal-form-page--edit .animal-edit-nutrition .nutrition-section-heading__eyebrow{display:none}
.animal-form-page--edit .animal-edit-nutrition .nutrition-section-heading{
    align-items:baseline;
    border-bottom:1px solid #e6e0e7;
    gap:10px;
    margin:0 0 12px;
    padding-bottom:9px;
}
.animal-form-page--edit .animal-edit-nutrition .nutrition-section-heading h2{
    color:var(--color-primary);
    font-size:var(--font-size-card-title, 1.02rem);
    font-weight:var(--font-weight-title, 900);
    line-height:var(--line-height-title, 1.2);
    margin:0;
}
.animal-form-page--edit .animal-edit-nutrition .nutrition-section-heading__title{gap:0}
.animal-form-page--edit .animal-edit-nutrition .nutrition-count{font-size:var(--font-size-table, .76rem);min-height:30px;padding:5px 9px}
.animal-edit-gallery{align-items:center;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto;min-width:0}
.animal-edit-gallery__preview{display:flex;gap:8px;min-width:0;overflow-x:auto;padding:2px 1px 4px}
.animal-edit-gallery__photo{background:#f4f0ee;border:1px solid #ded3cb;border-radius:9px;color:#674c3a;display:block;flex:0 0 78px;height:78px;overflow:hidden;position:relative;text-decoration:none}.animal-edit-gallery__photo img{display:block;height:100%;object-fit:cover;width:100%}.animal-edit-gallery__photo span{background:rgb(31 28 26 / .72);bottom:0;color:#fff;font-size:.58rem;font-weight:850;left:0;overflow:hidden;padding:3px 5px;position:absolute;text-overflow:ellipsis;white-space:nowrap;width:100%}.animal-edit-gallery__photo:hover img,.animal-edit-gallery__photo:focus-visible img{transform:scale(1.05)}.animal-edit-gallery__photo img{transition:transform .18s ease}.animal-edit-gallery__empty{color:#756e77;font-size:var(--font-size-table, .8rem);margin:0}.animal-edit-gallery__actions{display:flex;justify-content:flex-end}.animal-edit-gallery__actions .btn{font-size:var(--font-size-control, .76rem);min-height:39px;padding:var(--ui-space-2, 8px) 11px;white-space:nowrap}
.animal-vaccinations{display:grid;gap:13px;min-width:0}
.animal-vaccinations__details{display:grid;gap:12px 16px;grid-template-columns:repeat(2,minmax(0,1fr));max-width:none;min-width:0}
.animal-vaccinations__details>.field{min-width:0;max-width:100%}
.animal-vaccinations__details .input{box-sizing:border-box;max-width:100%;min-width:0;width:100%}
.animal-vaccinations__list{display:grid;gap:9px 12px;grid-template-columns:repeat(2,minmax(0,1fr));max-width:none;min-width:0}
.animal-vaccination-field{margin:0}
.animal-vaccination-check{align-items:center;background:#fff;border:1px solid #d7d0d8;border-radius:9px;display:flex;gap:9px;min-height:38px;min-width:0;padding:8px 10px}.animal-vaccination-check input{accent-color:#4f7f77;flex:0 0 auto}.animal-vaccination-check span{font-size:var(--font-size-table, .84rem);font-weight:var(--font-weight-label, 700);min-width:0;overflow-wrap:anywhere}
.animal-hoof-status{grid-column:span 2}.animal-hoof-status__choices{background:#fbfafb;border:1px solid #d7d0d8;border-radius:10px;box-sizing:border-box;display:grid;gap:5px 8px;grid-template-columns:repeat(2,minmax(0,1fr));padding:6px;width:100%}.animal-hoof-status__choices label{align-items:center;border-radius:6px;display:flex;gap:7px;min-height:33px;padding:6px 8px}.animal-hoof-status__choices label:has(input:checked){background:#edf5f1;color:#315d50}.animal-hoof-status__choices input{accent-color:#4f7f77;margin:0}.animal-hoof-status__choices span{font-size:var(--font-size-table, .8rem);font-weight:var(--font-weight-label, 750)}
.animal-dated-history{display:grid;gap:8px}.animal-dated-history>span{color:var(--color-text);font-size:var(--font-size-table, .86rem);font-weight:var(--font-weight-label, 800)}.animal-dated-history__rows{display:grid;gap:8px}.animal-dated-history__row{align-items:start;display:grid;gap:8px;grid-template-columns:150px minmax(0,1fr) 34px}.animal-dated-history__row textarea{line-height:1.4;min-height:68px;overflow:hidden;resize:none}.animal-dated-history__row input[type=date]{margin-top:15px}.animal-dated-history__remove{align-items:center;background:#f5edf5;border:1px solid #d3c4d6;border-radius:8px;color:#654d6d;cursor:pointer;display:inline-flex;font:inherit;font-size:var(--font-size-body, 1.05rem);font-weight:var(--font-weight-label, 850);height:38px;justify-content:center;margin-top:15px;padding:0;width:34px}.animal-dated-history__add{justify-self:start;background:#f5edf5;border:1px solid #d3c4d6;border-radius:8px;color:#654d6d;cursor:pointer;font:inherit;font-size:var(--font-size-control, .8rem);font-weight:var(--font-weight-label, 850);min-height:37px;padding:7px 11px}@media(max-width:560px){.animal-dated-history__row{grid-template-columns:120px minmax(0,1fr) 34px}}
.animal-dated-history-summary{display:grid;gap:5px;list-style:none;margin:0;padding:0}.animal-dated-history-summary li{align-items:baseline;display:flex;flex-wrap:wrap;gap:5px 10px}.animal-dated-history-summary span{color:var(--color-text-soft);font-size:var(--font-size-control, .84rem)}
.custom-field-section{border-top:1px solid rgb(var(--color-text-rgb) / .12);margin-top:9px;padding-top:10px}.custom-field-section>dt{color:var(--color-primary-strong);font-size:var(--font-size-label, .86rem);font-weight:var(--font-weight-label, 900)}.custom-field-section>dt strong{font-weight:var(--font-weight-label, 900)}.custom-field-section__values{display:grid;gap:6px;list-style:none;margin:0;padding:0}.custom-field-section__values li{display:grid;gap:2px}.custom-field-section__values strong{font-size:var(--font-size-table, .82rem)}.custom-field-section__values span{font-size:var(--font-size-body, .9rem);line-height:1.45}
.client-form-section--custom{border-left-color:#6f6580}.client-form-section--custom .form-section__header h2{color:#625774}.animal-form-section--custom{background:#fbf8fc;border-color:#ded4e2}.animal-form-section--custom .form-section__header h2{color:#625774}.custom-fields-form-section .form-section__header{margin-bottom:10px}.custom-fields-form-field--choices{align-content:start}.custom-fields-form-choices{background:#fbfafb;border:1px solid #d7d0d8;border-radius:10px;box-sizing:border-box;display:grid;gap:4px 8px;grid-template-columns:repeat(auto-fit,minmax(138px,1fr));min-height:0;padding:6px;width:100%}.custom-fields-form-choices label{align-items:center;background:transparent;border:0;border-radius:6px;display:flex;gap:7px;min-height:34px;padding:6px 8px}.custom-fields-form-choices label:has(input:checked){background:#edf5f1;color:#315d50}.custom-fields-form-choices input{accent-color:#4f7f77;margin:0}.custom-fields-form-choices span{font-size:var(--font-size-table, .84rem);font-weight:var(--font-weight-label, 700)}
@media (max-width:640px){.animal-vaccinations__details{grid-template-columns:1fr}.animal-vaccinations__list{grid-template-columns:1fr}}
.questionnaire-module-rest__dated-list,.questionnaire-dated-list{display:grid;gap:7px;margin-top:8px}
.questionnaire-module-rest__dated-list>div,.questionnaire-dated-list>label{align-items:center;background:#fff;border:1px solid #cfc6d1;border-radius:8px;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) 128px;min-height:38px;padding:7px 10px}
.questionnaire-module-rest__dated-list span,.questionnaire-dated-list span{color:#514a53;font-size:var(--font-size-help, .78rem);font-weight:var(--font-weight-label, 700)}.questionnaire-module-rest__dated-list em{color:#8c828d;font-size:var(--font-size-help, .75rem);font-style:normal}.questionnaire-dated-list input[type=date]{height:34px;min-width:0}
.questionnaire-module-rest__multiple-dated-responses{display:grid;gap:7px;margin-top:8px}.questionnaire-module-rest__multiple-dated-responses>div{align-items:center;background:#fff;border:1px solid #cfc6d1;border-radius:8px;display:grid;gap:10px;grid-template-columns:128px minmax(0,1fr);min-height:38px;padding:7px 10px}.questionnaire-module-rest__multiple-dated-responses em{color:#8c828d;font-size:var(--font-size-table, .75rem);font-style:normal;grid-column:1;order:0}.questionnaire-module-rest__multiple-dated-responses span{color:#514a53;font-size:var(--font-size-table, .78rem);font-weight:var(--font-weight-label, 700);grid-column:2;order:1}
.questionnaire-dated-list{min-width:0}.questionnaire-test-dated-list>div{display:grid;gap:7px}.questionnaire-test-dated-list label,.questionnaire-preview-dated-list label{align-items:center;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) 150px 32px}.questionnaire-test-dated-list input,.questionnaire-preview-dated-list input{background:#fff;border:1px solid #cfc5d1;border-radius:8px;box-sizing:border-box;color:#3e3741;font:inherit;height:41px;min-height:41px;padding:8px 10px;width:100%}.questionnaire-test-dated-list input[type=date],.questionnaire-preview-dated-list input[type=date]{appearance:auto;-webkit-appearance:auto}.questionnaire-test-dated-list button,.questionnaire-preview-dated-list button{align-items:center;background:#f5edf5;border:1px solid #d3c4d6;border-radius:8px;color:#654d6d;cursor:pointer;display:inline-flex;font:inherit;font-size:.75rem;font-weight:850;justify-content:center;min-height:36px;padding:7px 10px}.questionnaire-test-dated-list label button,.questionnaire-preview-dated-list label button{font-size:1rem;height:32px;min-height:32px;padding:0;width:32px}@media(max-width:560px){.questionnaire-test-dated-list label,.questionnaire-preview-dated-list label{grid-template-columns:minmax(0,1fr) 120px 32px}}
.questionnaire-test-dated-list.questionnaire-multiple-dated-responses label,.questionnaire-preview-dated-list.questionnaire-multiple-dated-responses label{grid-template-columns:150px minmax(0,1fr) 32px}.questionnaire-test-dated-list.questionnaire-multiple-dated-responses input[type=date],.questionnaire-preview-dated-list.questionnaire-multiple-dated-responses input[type=date]{grid-column:1;order:0}.questionnaire-test-dated-list.questionnaire-multiple-dated-responses input[type=text],.questionnaire-preview-dated-list.questionnaire-multiple-dated-responses input[type=text]{grid-column:2;order:1}.questionnaire-test-dated-list.questionnaire-multiple-dated-responses button,.questionnaire-preview-dated-list.questionnaire-multiple-dated-responses button{grid-column:3;order:2}@media(max-width:560px){.questionnaire-test-dated-list.questionnaire-multiple-dated-responses label,.questionnaire-preview-dated-list.questionnaire-multiple-dated-responses label{grid-template-columns:120px minmax(0,1fr) 32px}}
.animal-form-page--edit .animal-form-section .form-section__header{
    align-items:baseline;
    border-bottom:1px solid #e6e0e7;
    display:flex;
    gap:10px;
    justify-content:space-between;
    margin:0 0 12px;
    padding-bottom:9px;
}
.animal-form-page--edit .animal-form-section .form-section__header h2{
    font-size:var(--font-size-card-title, 1.02rem);
    font-weight:var(--font-weight-title, 900)!important;
    line-height:var(--line-height-title, 1.2);
    margin:0;
}
.animal-form-page .animal-form-section .form-section__header h2,
.animal-edit-nutrition .nutrition-section-heading h2{
    align-items:center;
    background:rgb(var(--color-primary-rgb) / .1);
    border:1px solid rgb(var(--color-primary-rgb) / .22);
    border-radius:7px;
    display:inline-flex;
    font-family:Arial,"Avenir Next",sans-serif;
    font-weight:var(--font-weight-title, 900)!important;
    letter-spacing:-.012em;
    padding:5px 8px;
    -webkit-text-stroke:.3px currentColor;
    text-stroke:.3px currentColor;
}
.animal-form-page .animal-form-section--identity .form-section__header h2{background:rgb(var(--color-identity-rgb) / .11);border-color:rgb(var(--color-identity-rgb) / .26)}
.animal-form-page .animal-form-section--contacts .form-section__header h2{background:rgb(224 122 47 / .1);border-color:rgb(224 122 47 / .24)}
.animal-form-page .animal-form-section--living-place .form-section__header h2,
.animal-form-page .animal-form-section--professional .form-section__header h2{background:rgb(121 90 63 / .1);border-color:rgb(121 90 63 / .23)}
.animal-form-page .animal-form-section--wellbeing .form-section__header h2{background:rgb(var(--color-secondary-rgb) / .1);border-color:rgb(var(--color-secondary-rgb) / .25)}
.animal-form-page .animal-form-section--history .form-section__header h2{background:rgb(var(--color-text-rgb) / .06);border-color:rgb(var(--color-text-rgb) / .18)}
.animal-form-page--edit .animal-edit-nutrition .nutrition-section-heading{
    align-items:center;
    flex-wrap:wrap;
}
.animal-form-page--edit .animal-edit-nutrition .nutrition-section-heading__title{
    flex:1 1 auto;
}
.animal-form-page--edit .animal-edit-nutrition .nutrition-ration-notes{
    background:#f8fbf9;
    border:1px solid #d8e4dc;
    border-radius:10px;
    display:grid;
    gap:10px;
    margin:0 0 13px;
    padding:11px 12px;
}
.animal-form-page--edit .animal-edit-nutrition .nutrition-ration-notes__fields{
    display:grid;
    gap:10px 12px;
    grid-template-columns:repeat(2,minmax(0,1fr));
}
.animal-form-page--edit .animal-edit-nutrition .nutrition-ration-notes textarea{
    min-height:66px;
    resize:vertical;
}
.animal-form-page--edit .animal-edit-nutrition .nutrition-ration-notes__actions{
    display:flex;
    justify-content:flex-end;
}
@media(max-width:680px){
    .animal-form-page--edit .animal-edit-nutrition .nutrition-ration-notes__fields{grid-template-columns:1fr}
}
.animal-form-page--edit .animal-form-section .form-section__header p{
    color:#756e77;
    font-size:var(--font-size-table, .72rem);
    line-height:1.35;
    margin:0;
    text-align:right;
}
.animal-form .form-grid{
    gap:10px 12px;
    grid-template-columns:repeat(3,minmax(0,1fr));
}
.animal-form-section--profile .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.animal-form-section--profile .field{align-self:start}
.animal-form-section--profile .animal-hoof-status{grid-column:auto}
.animal-form-section--profile .animal-anchored-custom-field{grid-column:1/-1}
.animal-activity-field{grid-column:1/-1}.animal-activity-other{display:grid;gap:6px;grid-column:1/-1;margin-top:4px}.animal-activity-other>span{font-size:var(--font-size-table, .82rem);font-weight:var(--font-weight-label, 750)}
.animal-activity-field[hidden]{display:none}
.animal-activity-choices{background:#fbfafb;border:1px solid #d7d0d8;border-radius:10px;display:grid;gap:5px 8px;grid-template-columns:repeat(2,minmax(0,1fr));padding:6px;width:100%}
.animal-activity-choices label{align-items:center;border-radius:6px;display:flex;gap:7px;min-height:33px;padding:6px 8px}.animal-activity-choices label:has(input:checked){background:#edf5f1;color:#315d50}.animal-activity-choices input{accent-color:#4f7f77;margin:0}.animal-activity-choices span{font-size:var(--font-size-table, .8rem);font-weight:var(--font-weight-label, 750)}
.animal-body-condition-grid{display:grid;gap:9px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:8px}.animal-body-condition-row{align-items:center;display:flex;gap:10px;justify-content:space-between;min-width:0}.animal-body-condition-row>span{font-size:var(--font-size-table, .84rem);font-weight:var(--font-weight-label, 750);min-width:0}.animal-body-condition-scores{display:flex;flex-wrap:wrap;gap:5px}.animal-body-condition-scores label{cursor:pointer;display:block;position:relative}.animal-body-condition-scores input{height:1px;opacity:0;position:absolute;width:1px}.animal-body-condition-scores span{align-items:center;background:#fff;border:1px solid #d7d0d8;border-radius:6px;color:#4d4650;display:flex;font-size:var(--font-size-table, .78rem);font-weight:var(--font-weight-label, 800);height:29px;justify-content:center;min-width:29px;transition:background-color .16s ease,border-color .16s ease,color .16s ease}.animal-body-condition-scores input:checked+span{background:#4f7f77;border-color:#4f7f77;color:#fff}.animal-body-condition-scores input:focus-visible+span{outline:3px solid rgba(79,127,119,.3);outline-offset:2px}.animal-body-condition-help{align-items:center;background:#dc751d;border:2px solid #dc751d;border-radius:50%;box-shadow:0 2px 5px rgba(137,66,17,.28);color:#fff;cursor:pointer;display:inline-flex;font:900 .82rem/1 inherit;height:23px;justify-content:center;margin-left:7px;padding:0;width:23px}.animal-body-condition-help:hover,.animal-body-condition-help:focus-visible{background:#a95015;border-color:#a95015;color:#fff;transform:translateY(-1px)}.animal-body-condition-modal .app-confirm-modal__panel{max-height:96vh;max-width:min(1220px,98vw);overflow:auto;padding:1.1rem}.animal-body-condition-modal img{display:block;height:auto;margin:1rem auto 0;max-width:100%;width:100%}@media(max-width:760px){.animal-body-condition-grid{grid-template-columns:1fr}.animal-body-condition-row{align-items:flex-start;flex-direction:column;gap:5px}}

@container animal-form-layout (max-width:62rem){
  .animal-form__profile-vaccinations{grid-template-columns:minmax(0,1fr)}
}
@container animal-form-layout (max-width:56rem){
  .animal-form .animal-form-section--profile .form-grid{grid-template-columns:minmax(0,1fr)}
  .animal-form-section--profile .animal-hoof-status{grid-column:1/-1}
  .animal-hoof-status__choices,.animal-body-condition-grid{grid-template-columns:minmax(0,1fr)}
  .animal-body-condition-row{align-items:flex-start;flex-direction:column;gap:5px}
}
.animal-activity-choices,.animal-hoof-status__choices,.animal-vaccinations__list{background:#f5f8f6;border-color:#cbd9d3;padding:8px}.animal-activity-choices label,.animal-hoof-status__choices label,.animal-vaccination-check{background:#fff;border:1px solid #d9e3de;border-radius:8px;box-shadow:0 1px 1px rgba(27,52,46,.04);cursor:pointer;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}.animal-activity-choices label:hover,.animal-hoof-status__choices label:hover,.animal-vaccination-check:hover{border-color:#80a99d;box-shadow:0 3px 8px rgba(44,86,75,.1);transform:translateY(-1px)}.animal-activity-choices label:has(input:checked),.animal-hoof-status__choices label:has(input:checked),.animal-vaccination-check:has(input:checked){background:#e5f1ec;border-color:#4f7f77;box-shadow:inset 3px 0 0 #4f7f77;color:#285e4e}.animal-activity-choices input,.animal-hoof-status__choices input,.animal-vaccination-check input{accent-color:#37776a}.animal-activity-choices label:has(input:focus-visible),.animal-hoof-status__choices label:has(input:focus-visible),.animal-vaccination-check:has(input:focus-visible){outline:3px solid rgba(79,127,119,.32);outline-offset:2px}.animal-activity-choices label:has(input:disabled),.animal-hoof-status__choices label:has(input:disabled),.animal-vaccination-check:has(input:disabled){cursor:not-allowed;opacity:.55}
.animal-form .field{
    display:grid;
    gap:5px;
    margin:0;
    min-width:0;
}
.animal-form .field>span{
    color:#554d58;
    font-size:var(--font-size-label, .72rem);
    font-weight:var(--font-weight-label, 800);
    line-height:1.25;
    margin:0;
}
.animal-form .field-help,
.animal-form .field>small{
    color:#7a727d;
    font-size:var(--font-size-help, .65rem);
    line-height:1.3;
}
.animal-form .input{
    border-color:#d2c9d4;
    border-radius:var(--ui-radius-field);
    box-sizing:border-box;
    box-shadow:inset 0 1px 3px rgba(50,40,54,.04);
    font-size:var(--font-size-input, .84rem);
    max-width:100%;
    min-height:40px;
    min-width:0;
    padding:var(--ui-space-2, 8px) 10px;
    width:100%;
}
.animal-form select.input{padding-right:28px}
.animal-form .textarea{
    line-height:1.45;
    min-height:78px;
}
.animal-form-page--edit .animal-client-fixed{
    background:#f7f4f0;
    border:1px solid #ddd4cc;
    border-left:3px solid var(--color-identity);
    border-radius:10px;
    display:block;
    min-width:0;
    padding:9px 11px;
}
.animal-form-page--edit .animal-client-fixed__identity{
    display:grid;
    gap:2px;
    min-width:0;
}
.animal-form-page--edit .animal-client-fixed__identity>span{
    color:#746c76;
    font-size:var(--font-size-table, .66rem);
    font-weight:var(--font-weight-label, 800);
    text-transform:uppercase;
}
.animal-form-page--edit .animal-client-fixed__identity>strong{
    color:#3f383f;
    font-size:var(--font-size-body, .92rem);
    line-height:1.25;
}
.animal-form-page--edit .animal-form .form-actions{
    align-items:center;
    border-top:1px solid #ddd4cf;
    margin:2px 0 0;
    padding-top:13px;
}
.client-portal-animal-edit-actions{
    gap:12px;
}
.client-portal-animal-autosave-status{
    align-items:center;
    color:#61706b;
    display:inline-flex;
    flex:1 1 260px;
    font-size:var(--font-size-caption, .82rem);
    font-weight:var(--font-weight-label, 700);
    gap:8px;
    min-height:42px;
}
.client-portal-animal-autosave-status::before{
    background:#5e8872;
    border-radius:50%;
    content:"";
    display:block;
    flex:0 0 auto;
    height:8px;
    width:8px;
}
.client-portal-animal-autosave-status[data-state="saving"]{color:#2e6e71}
.client-portal-animal-autosave-status[data-state="saving"]::before{animation:animal-autosave-spin .7s linear infinite;background:transparent;border:2px solid currentColor;border-right-color:transparent;height:8px;width:8px}
.client-portal-animal-autosave-status[data-state="saved"]{color:#34705b}
.client-portal-animal-autosave-status[data-state="error"],.client-portal-animal-autosave-status[data-state="invalid"]{color:#a5483f}
.client-portal-animal-autosave-status[data-state="error"]::before,.client-portal-animal-autosave-status[data-state="invalid"]::before{background:#b95046}
.animal-form-page--edit .animal-form-shell>.danger-zone{
    border-top:1px solid #e4d8d5;
    display:flex;
    justify-content:flex-end;
    margin-top:12px;
    padding-top:12px;
}

@media(max-width:760px){
    .animal-form-page--edit .animal-form-hero{align-items:stretch;flex-direction:column}
    .animal-form-page--edit .animal-form-hero>.actions-inline{align-self:flex-start;margin-left:0}
    .animal-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .animal-form-page--edit .animal-form-section .form-section__header{align-items:flex-start;display:grid}
    .animal-form-page--edit .animal-form-section .form-section__header p{text-align:left}
    .animal-care-contact__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .animal-care-contact__phone{grid-column:span 2}
    .animal-edit-gallery{grid-template-columns:minmax(0,1fr)}
    .animal-edit-gallery__actions{justify-content:flex-start}
    .animal-care-summary__grid{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:520px){
    .animal-form-page--edit .animal-form-shell{padding:9px}
    .animal-form-page--edit .animal-form-section{padding:13px}
    .animal-form .form-grid{grid-template-columns:minmax(0,1fr)}
    .animal-form .field-span-2{grid-column:auto}
    .client-portal-animal-edit-actions{align-items:stretch;display:grid}
    .client-portal-animal-edit-actions .btn{min-width:0;width:100%}
    .animal-hoof-status{grid-column:auto}.animal-hoof-status__choices{grid-template-columns:minmax(0,1fr)}
    .animal-care-contact__grid{grid-template-columns:minmax(0,1fr)}
    .animal-care-contact__phone{grid-column:auto}
    .animal-care-contact__phone .questionnaire-phone-field{grid-template-columns:minmax(0,1fr)}
    .animal-horse-model-picker{grid-column:auto;grid-template-columns:minmax(0,1fr)}
    .animal-horse-model-thumbnail{grid-template-rows:150px auto}
}

.client-detail-page .client-detail-hero .animal-detail-hero__identity{
    gap:16px;
    grid-template-columns:68px minmax(0,1fr);
    padding:22px 22px 16px;
}
.client-detail-page .client-detail-hero .animal-detail-hero__portrait{
    min-height:78px;
    width:64px;
}
.client-detail-page .client-detail-hero .animal-detail-hero__monogram,
.client-detail-page .client-detail-hero .animal-detail-hero__photo{
    height:76px;
    min-height:76px;
    width:64px;
}
.client-detail-page .client-detail-hero .animal-detail-hero__monogram strong{font-size:1.9rem}
.client-detail-page .client-detail-hero .animal-detail-hero__copy h1{
    font-size:var(--font-size-page-title, clamp(1.9rem,3.5vw,2.7rem));
    margin:4px 0 6px;
}
.client-detail-page .client-detail-hero .animal-detail-tags{
    gap:7px;
    margin-top:12px;
}
.client-detail-page .client-detail-hero .animal-detail-tag{
    border-radius:9px 9px 9px 3px;
    box-shadow:0 5px 0 rgba(45,37,48,.035),0 8px 16px rgba(45,37,48,.07);
    font-size:var(--font-size-caption, .75rem);
    min-width:112px;
    padding:8px 10px 8px 16px;
}
.client-detail-page .client-detail-hero .animal-detail-tag--phone{
    background:var(--color-primary);
    border-color:var(--color-primary-strong);
    color:var(--color-surface);
    box-shadow:0 10px 24px rgb(var(--color-primary-rgb) / .22);
}
.client-detail-page .practitioner-detail-actions{
    gap:8px;
    margin:0 22px 18px 106px;
    max-width:none;
    padding-top:13px;
}
.client-detail-page .practitioner-detail-actions .btn{
    font-size:var(--font-size-control, .73rem);
    flex:0 0 auto;
    min-height:39px;
    min-width:0;
    padding:var(--ui-space-2, 8px) 10px;
    width:max-content;
    white-space:nowrap;
}
.client-profile-panels{
    align-items:start;
    gap:12px;
    grid-template-columns:repeat(2,minmax(0,1fr));
    margin:0;
}
.client-profile-panels .animal-profile-card--identity{grid-column:auto}
.client-profile-panels .animal-profile-card__heading{
    background:#eef4f1;
    padding:11px 13px;
}
.client-profile-panels .animal-profile-card--follow-up .animal-profile-card__heading{
    background:#f7eee9;
}
.client-profile-panels .animal-profile-list{
    gap:7px;
    padding:10px;
}
.client-profile-panels .animal-profile-list>div{
    border-radius:8px 8px 8px 3px;
    padding:7px 8px;
}
.client-detail-page .client-activity-card,
.client-detail-page .client-related-card{
    border-left:4px solid var(--color-primary);
    margin:0;
    padding:17px 18px;
}
.client-detail-page .client-related-card--animals{border-left-color:#4f7a69}
.client-detail-page .client-related-card--interventions{border-left-color:#b9673d}
.client-detail-page .client-related-card--invoices{border-left-color:#72577c}
.client-detail-page .client-activity-card h2,
.client-detail-page .client-related-card h2{
    color:#405f55;
    font-size:var(--font-size-card-title, 1.08rem);
    margin:0 0 11px;
}
.client-detail-page .client-related-card--interventions h2{color:#94502e}
.client-detail-page .client-related-card--invoices h2{color:#60476b}

@media(max-width:1050px){
    .client-profile-panels{grid-template-columns:repeat(2,minmax(0,1fr))}
    .client-profile-panels .animal-profile-list{grid-template-columns:repeat(3,minmax(0,1fr))}
    .client-profile-panels .animal-profile-list__wide{grid-column:1/-1}
}
@media(max-width:760px){
    .client-form-hero .animal-detail-hero__identity{grid-template-columns:60px minmax(0,1fr);padding:18px}
    .client-form-hero .animal-detail-hero__portrait,
    .client-form-hero .animal-detail-hero__monogram{height:70px;min-height:70px;width:58px}
    .client-form-hero .practitioner-detail-actions{margin:0 18px 0 8px}
    .client-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .client-form-section .form-section__header{align-items:flex-start;display:grid}
    .client-form-section .form-section__header p{text-align:left}
    .client-form .client-communication-preferences{grid-template-columns:minmax(0,1fr)}
    .client-detail-page .practitioner-detail-actions{margin:0 18px 17px}
    .client-profile-panels .animal-profile-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:520px){
    .client-form-hero{grid-template-columns:minmax(0,1fr)}
    .client-form-hero .animal-detail-hero__identity{grid-template-columns:minmax(0,1fr)}
    .client-form-hero .animal-detail-hero__portrait{display:none}
    .client-form-hero .practitioner-detail-actions{justify-content:stretch;margin:0 14px 14px;padding-top:11px}
    .client-form-hero .practitioner-detail-actions .btn{width:100%}
    .client-form-section{padding:0 12px 12px}
    .client-form-section__heading{margin:0 -12px 12px}
    .client-form .form-grid{grid-template-columns:minmax(0,1fr)}
    .client-form .field-span-2{grid-column:auto}
    .client-form .form-actions{align-items:stretch;display:grid}
    .client-form .form-actions .btn{min-width:0;width:100%}
    .client-detail-page .practitioner-detail-actions{margin:0 14px 14px}
    .client-profile-panels .animal-profile-list{grid-template-columns:minmax(0,1fr)}
    .client-profile-panels .animal-profile-list__wide{grid-column:auto}
}

@container (max-width: 680px){
    .client-profile-panels{grid-template-columns:minmax(0,1fr)}
}

@container (max-width: 680px){
    .client-form{grid-template-columns:minmax(0,1fr)}
    .client-form-section--organization,
    .client-form-section--custom,
    .client-form .form-actions{grid-column:auto}
}

@container (max-width: 520px){
    .client-form .form-grid,
    .client-form-section--organization .form-grid,
    .client-form-section--custom .form-grid{grid-template-columns:minmax(0,1fr)}
    .client-form .field-span-2{grid-column:auto}
}

@media(max-width:680px){
    .client-profile-panels{grid-template-columns:minmax(0,1fr)}
}
.questionnaire-editor-sheet__footer>span{margin-left:0}
.questionnaire-add-page__trigger{background:var(--color-highlight-strong);border-color:var(--color-highlight-strong);box-shadow:0 4px 10px rgb(var(--color-highlight-rgb)/.25);color:var(--color-surface)}.questionnaire-add-page[open] .questionnaire-add-page__trigger,.questionnaire-add-page__trigger:hover,.questionnaire-add-page__trigger:focus-visible{background:var(--color-primary-deep);border-color:var(--color-primary-deep);box-shadow:0 0 0 3px var(--color-highlight-soft),0 5px 12px rgb(var(--color-highlight-rgb)/.28);color:var(--color-surface)}
@keyframes aenima-chrome-autofill{from{opacity:.999}to{opacity:1}}
.animal-form input:-webkit-autofill,.client-form input:-webkit-autofill,[data-practitioner-profile-autosave] input:-webkit-autofill{animation-duration:.01s;animation-name:aenima-chrome-autofill}
.animal-breed-combobox {
  position: relative;
  min-width: 0;
}

.animal-breed-suggestions {
  position: absolute;
  z-index: 30;
  top: calc(100% + 0.35rem);
  left: 0;
  width: 18rem;
  min-width: 100%;
  max-width: calc(100vw - 2rem);
  max-height: 15rem;
  overflow-y: auto;
  padding: 0.35rem;
  border: 1px solid var(--color-border, #d9d4d0);
  border-radius: 0.75rem;
  background: #fff;
  box-shadow: 0 0.8rem 2rem rgba(64, 57, 65, 0.14);
}

.animal-breed-suggestions button {
  display: flex;
  align-items: center;
  gap: .6rem;
  width: 100%;
  padding: 0.55rem 0.65rem;
  border: 0;
  border-radius: 0.5rem;
  background: transparent;
  color: var(--color-text, #403941);
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.animal-breed-suggestions button:hover,
.animal-breed-suggestions button.is-active {
  background: var(--color-surface-soft, #f5f1ed);
}

.animal-breed-suggestions .animal-breed-suggestion--add {
  margin-top: 0.3rem;
  padding-top: 0.7rem;
  border-top: 1px solid var(--color-border, #d9d4d0);
  border-radius: 0 0 0.5rem 0.5rem;
  color: var(--color-primary, #3f705d);
  font-weight: var(--font-weight-label, 800);
}

.animal-breed-suggestions .animal-breed-suggestion__match,
.questionnaire-breed-suggestions .animal-breed-suggestion__match {
    margin-left: auto;
    color: var(--color-accent-strong, #b44d18);
    font-size: var(--font-size-table, .72rem);
    font-weight: var(--font-weight-label, 700);
}

.animal-breed-suggestions .animal-breed-suggestion__category,
.questionnaire-breed-suggestions .animal-breed-suggestion__category {
    margin-left: auto;
    padding: .2rem .45rem;
    border-radius: 999px;
    background: var(--color-highlight-soft, #f7e7ef);
    color: var(--color-secondary-deep, #7f445f);
    font-size: var(--font-size-table, .7rem);
    font-weight: var(--font-weight-label, 650);
    white-space: nowrap;
}

.breed-review-grid { display: grid; gap: 1.15rem; }
.breed-review-card { display: grid; gap: .8rem; }
.breed-review-item { display: grid; grid-template-columns: minmax(13rem, 1fr) minmax(18rem, auto); gap: 1rem; align-items: center; padding: 1rem; border: 1px solid rgba(87, 75, 58, .14); border-radius: 16px; background: #fff; }
.breed-review-item__identity { display: grid; gap: .18rem; min-width: 0; }
.breed-review-item__identity > span { color: var(--color-accent-strong, #b44d18); font-size: var(--font-size-table, .76rem); font-weight: var(--font-weight-label, 800); text-transform: uppercase; letter-spacing: .06em; }
.breed-review-item__identity strong { font-size: var(--font-size-body, 1rem); overflow-wrap: anywhere; }
.breed-review-item__identity small { color: var(--color-text-muted); }
.breed-review-item__actions { display: flex; flex-wrap: wrap; gap: .55rem; align-items: end; justify-content: flex-end; }
.breed-review-item__actions form { margin: 0; }
.breed-review-item__actions [data-breed-merge-form] { display: flex; gap: .45rem; align-items: end; }
.breed-review-item__actions .field { min-width: 12rem; margin: 0; }
.breed-review-item__actions .input { min-height: 2.5rem; }

.aenima-dialog { width: min(34rem, calc(100vw - 2rem)); padding: 0; border: 0; border-radius: 20px; box-shadow: 0 24px 70px rgba(34, 27, 20, .28); }
.aenima-dialog::backdrop { background: rgba(32, 27, 22, .48); backdrop-filter: blur(3px); }
.aenima-dialog__panel { display: grid; gap: .8rem; padding: 1.35rem; background: #fff; }
.aenima-dialog__panel h2, .aenima-dialog__panel p { margin: 0; }
.animal-breed-dialog__choices { display: flex; flex-wrap: wrap; gap: .55rem; }

@media (max-width: 760px) {
    .breed-review-item { grid-template-columns: 1fr; }
    .breed-review-item__actions { justify-content: flex-start; }
    .breed-review-item__actions [data-breed-merge-form] { width: 100%; flex-wrap: wrap; }
}

.questionnaire-breed-combobox {
  position: relative;
  min-width: 0;
}

.questionnaire-breed-suggestions {
  position: absolute;
  z-index: 35;
  top: calc(100% + 0.35rem);
  left: 0;
  right: 0;
  max-height: 15rem;
  overflow-y: auto;
  padding: 0.35rem;
  border: 1px solid var(--color-border, #d9d4d0);
  border-radius: 0.75rem;
  background: #fff;
  box-shadow: 0 0.8rem 2rem rgba(64, 57, 65, 0.14);
}

.questionnaire-breed-suggestions button {
  display: flex;
  align-items: center;
  gap: .6rem;
  width: 100%;
  padding: 0.55rem 0.65rem;
  border: 0;
  border-radius: 0.5rem;
  background: transparent;
  color: var(--color-text, #403941);
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.questionnaire-breed-suggestions button:hover,
.questionnaire-breed-suggestions button.is-active {
  background: var(--color-surface-soft, #f5f1ed);
}

.questionnaire-breed-suggestions .questionnaire-breed-suggestion--add {
  margin-top: 0.3rem;
  padding-top: 0.7rem;
  border-top: 1px solid var(--color-border, #d9d4d0);
  border-radius: 0 0 0.5rem 0.5rem;
  color: var(--color-primary, #3f705d);
  font-weight: var(--font-weight-label, 800);
}

.questionnaire-breed-help {
  display: block;
  margin-top: 0.4rem;
  color: var(--color-text-muted, #716970);
  font-size: var(--font-size-table, 0.82rem);
  line-height: 1.35;
}

.client-questionnaire-field--breed-catalog:focus-within {
  position: relative;
  z-index: 40;
}

.client-questionnaire-preview-shell .questionnaire-breed-combobox > input {
  box-sizing: border-box;
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid #cfc6d1;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 2px 7px rgba(50, 41, 54, 0.06) inset;
  color: #342e37;
  font: inherit;
}

.client-questionnaire-preview-shell .questionnaire-breed-combobox > input:focus {
  border-color: #654c70;
  box-shadow: 0 0 0 3px rgba(101, 76, 112, 0.14);
  outline: 0;
}

.client-questionnaire-preview-shell .client-questionnaire-field--breed-catalog .questionnaire-breed-help {
  margin: 0;
  font-size: 0.73rem;
}

.animal-coat-combobox,
.questionnaire-coat-combobox {
  position: relative;
  min-width: 0;
}

.animal-coat-suggestions,
.questionnaire-coat-suggestions {
  position: absolute;
  z-index: 35;
  top: calc(100% + 0.35rem);
  left: 0;
  right: 0;
  max-height: 15rem;
  overflow-y: auto;
  padding: 0.35rem;
  border: 1px solid var(--color-border, #d9d4d0);
  border-radius: 0.75rem;
  background: #fff;
  box-shadow: 0 0.8rem 2rem rgba(64, 57, 65, 0.14);
}

.animal-coat-suggestions button,
.questionnaire-coat-suggestions button {
  display: flex;
  align-items: center;
  gap: .6rem;
  width: 100%;
  padding: 0.55rem 0.65rem;
  border: 0;
  border-radius: 0.5rem;
  background: transparent;
  color: var(--color-text, #403941);
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.animal-coat-suggestions button:hover,
.animal-coat-suggestions button.is-active,
.questionnaire-coat-suggestions button:hover,
.questionnaire-coat-suggestions button.is-active {
  background: var(--color-surface-soft, #f5f1ed);
}

.animal-coat-suggestion--add,
.questionnaire-coat-suggestion--add {
  margin-top: 0.3rem;
  padding-top: 0.7rem !important;
  border-top: 1px solid var(--color-border, #d9d4d0) !important;
  border-radius: 0 0 0.5rem 0.5rem !important;
  color: var(--color-primary, #3f705d) !important;
  font-weight: var(--font-weight-label, 800) !important;
}

.animal-coat-suggestion__match {
  margin-left: auto;
  color: var(--color-accent-strong, #b44d18);
  font-size: var(--font-size-table, .72rem);
  font-weight: var(--font-weight-label, 700);
}

.questionnaire-coat-help {
  display: block;
  margin-top: 0.4rem;
  color: var(--color-text-muted, #716970);
  font-size: var(--font-size-table, 0.82rem);
  line-height: 1.35;
}

.client-questionnaire-field--coat-catalog:focus-within {
  position: relative;
  z-index: 40;
}

.client-questionnaire-preview-shell .questionnaire-coat-combobox > input {
  box-sizing: border-box;
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid #cfc6d1;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 2px 7px rgba(50, 41, 54, 0.06) inset;
  color: #342e37;
  font: inherit;
}

.client-questionnaire-preview-shell .questionnaire-coat-combobox > input:focus {
  border-color: #654c70;
  box-shadow: 0 0 0 3px rgba(101, 76, 112, 0.14);
  outline: 0;
}

.client-questionnaire-preview-shell .client-questionnaire-field--coat-catalog .questionnaire-coat-help {
  margin: 0;
  font-size: 0.73rem;
}

.animal-coat-dialog__choices {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}

.coat-review-grid { display: grid; gap: 1.15rem; }
.coat-review-card { display: grid; gap: .8rem; }
.coat-review-item { display: grid; grid-template-columns: minmax(13rem, 1fr) minmax(18rem, auto); gap: 1rem; align-items: center; padding: 1rem; border: 1px solid rgba(87, 75, 58, .14); border-radius: 16px; background: #fff; }
.coat-review-item__identity { display: grid; gap: .18rem; min-width: 0; }
.coat-review-item__identity > span { color: var(--color-accent-strong, #b44d18); font-size: var(--font-size-table, .76rem); font-weight: var(--font-weight-label, 800); text-transform: uppercase; letter-spacing: .06em; }
.coat-review-item__identity strong { font-size: var(--font-size-body, 1rem); overflow-wrap: anywhere; }
.coat-review-item__identity small { color: var(--color-text-muted); }
.coat-review-item__actions { display: flex; flex-wrap: wrap; gap: .55rem; align-items: end; justify-content: flex-end; }
.coat-review-item__actions form { margin: 0; }
.coat-review-item__actions [data-coat-merge-form] { display: flex; gap: .45rem; align-items: end; }
.coat-review-item__actions .field { min-width: 12rem; margin: 0; }
.coat-review-item__actions .input { min-height: 2.5rem; }

.questionnaire-test-choices label[data-questionnaire-option-detail],
.client-questionnaire-choices label[data-questionnaire-option-detail] {
  flex-wrap: wrap;
}
.questionnaire-test-choices .questionnaire-choice-detail,
.client-questionnaire-choices .client-questionnaire-choice-detail {
  appearance: auto;
  background: #fff;
  border: 1px solid #cfc6d1;
  border-radius: 8px;
  box-sizing: border-box;
  color: #342e37;
  flex: 1 0 100%;
  height: auto;
  margin-top: 2px;
  min-height: 40px;
  min-width: 0;
  padding: 8px 10px;
  position: static;
  resize: none;
  white-space: pre-wrap;
  overflow-wrap: break-word;
  width: 100% !important;
}

.animal-consultation-tabs,
.detail-tabs {
  align-items: center;
  align-self: start;
  box-sizing: border-box;
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2, 8px);
  margin: 22px 0 var(--ui-space-4, 16px);
  padding: var(--ui-space-2, 8px);
  border: 1px solid rgb(var(--color-primary-rgb) / .14);
  border-radius: var(--ui-radius-control, 14px);
  background: rgb(var(--color-text-rgb) / .025);
  box-shadow: none;
  width: 100%;
}
.has-ui-detail-tabs { align-content: start; }
.animal-consultation-tabs button,
.detail-tabs button {
  align-items: center;
  box-sizing: border-box;
  display: inline-flex;
  justify-content: center;
  line-height: 1.2;
  min-height: var(--ui-control-height, 40px);
  min-width: 0;
  padding: var(--ui-space-2, 8px) 14px;
  border: 1px solid var(--color-secondary-muted);
  border-radius: var(--ui-radius-control, 9px 9px 9px 4px);
  background: var(--color-surface);
  color: var(--color-secondary-strong);
  font: inherit;
  font-size: var(--font-size-control, .82rem);
  font-weight: var(--font-weight-label, 800);
  cursor: pointer;
  text-align: center;
  white-space: nowrap;
}
.animal-consultation-tabs button:hover,
.detail-tabs button:hover {
  border-color: rgb(var(--color-secondary-rgb) / .42);
  background: var(--color-secondary-faint);
  color: var(--color-secondary-deep);
}
.animal-consultation-tabs button[aria-selected="true"],
.detail-tabs button[aria-selected="true"] {
  background: var(--color-secondary-deep);
  border-color: var(--color-secondary-deep);
  color: var(--color-surface);
  box-shadow: 0 3px 8px rgb(var(--color-secondary-rgb) / .28);
}
.animal-consultation-tabs button:focus-visible,
.detail-tabs button:focus-visible {
  outline: 3px solid rgb(var(--color-secondary-rgb) / .34);
  outline-offset: 2px;
}
[data-animal-consultation-panel][hidden] { display: none !important; }
[data-detail-panel][hidden] { display: none !important; }
.agenda-period-tabs { margin-top: 14px; }
.agenda-period-tabs button { align-items: center; display: inline-flex; gap: 8px; }
.agenda-period-tabs__count {
  align-items: center;
  background: rgb(var(--color-primary-rgb) / .1);
  border-radius: 999px;
  color: var(--color-primary-strong);
  display: inline-flex;
  font-size: var(--font-size-control, .72rem);
  font-variant-numeric: tabular-nums;
  justify-content: center;
  line-height: 1;
  min-height: 24px;
  min-width: 24px;
  padding: 4px 7px;
}
.agenda-period-tabs button[aria-selected="true"] .agenda-period-tabs__count {
  background: rgb(255 255 255 / .18);
  color: var(--color-surface);
}
.agenda-period-panel { min-width: 0; }
.agenda-period-table-wrap { max-width: 100%; }
.animal-body-score-summary details { display: grid; gap: 7px; }
.animal-body-score-summary summary {
  align-items: center;
  color: var(--color-primary-strong);
  cursor: pointer;
  display: flex;
  gap: 8px;
  list-style: none;
  width: fit-content;
}
.animal-body-score-summary summary::-webkit-details-marker { display: none; }
.animal-body-score-summary summary::before {
  border: solid currentColor;
  border-width: 0 2px 2px 0;
  content: '';
  display: inline-block;
  height: 6px;
  transform: rotate(-45deg);
  transition: transform .16s ease;
  width: 6px;
}
.animal-body-score-summary details[open] summary::before { transform: rotate(45deg); }
.animal-body-score-summary summary strong {
  color: var(--color-secondary-deep);
  font-variant-numeric: tabular-nums;
}
.animal-body-score-summary__count { color: var(--color-text-soft); font-size: var(--font-size-help, .78rem); }
.animal-body-score-summary__details {
  display: grid;
  gap: 5px;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  margin: 0;
  padding: 9px 10px;
  border: 1px solid rgb(var(--color-primary-rgb) / .14);
  border-radius: 9px;
  background: rgb(var(--color-primary-rgb) / .035);
}
.animal-body-score-summary__details div { min-width: 0; }
.animal-body-score-summary__details dt { color: var(--color-text-soft); font-size: var(--font-size-label, .74rem); }
.animal-body-score-summary__details dd { margin: 2px 0 0; font-weight: var(--font-weight-label, 750); }
.animal-nutrition-summary {
  margin: 0 0 18px;
  overflow: hidden;
  padding: 0;
}
.animal-nutrition-summary__list { padding: 12px; }
.animal-nutrition-summary__entries { display: grid; gap: 8px; padding: 12px; }
.animal-nutrition-summary__entry { align-items: center; border: 1px solid var(--border, #d8e0df); border-radius: 12px; display: flex; gap: 16px; justify-content: space-between; padding: 12px 14px; }
.animal-nutrition-summary__entry > div:first-child { display: grid; gap: 2px; min-width: 0; }
.animal-nutrition-summary__entry small { color: var(--text-muted, #637170); font-size: var(--font-size-help, .76rem); font-weight: var(--font-weight-label, 700); text-transform: uppercase; }
.animal-nutrition-summary__entry strong { color: var(--primary, #2d6d70); font-size: var(--font-size-body, 1rem); }
.animal-nutrition-summary__entry span { color: var(--text-muted, #637170); font-size: var(--font-size-body, .88rem); }
.animal-nutrition-summary__quantity { align-items: flex-end; display: grid; flex: 0 0 auto; gap: 2px; text-align: right; }
.animal-nutrition-intake { border: 1px solid var(--border, #d8e0df); border-radius: 14px; display: grid; gap: 14px; margin: 12px; min-width: 0; padding: 16px; }
.animal-nutrition-intake__heading { align-items: flex-start; display: flex; gap: 16px; justify-content: space-between; min-width: 0; }
.animal-nutrition-intake__heading > div { display: grid; gap: 3px; min-width: 0; }
.animal-nutrition-intake__heading small { color: var(--text-muted, #637170); font-size: var(--font-size-help, .76rem); font-weight: var(--font-weight-label, 700); letter-spacing: .06em; text-transform: uppercase; }
.animal-nutrition-intake__heading h3 { color: var(--primary, #2d6d70); font-size: var(--font-size-card-title, 1.08rem); margin: 0; }
.animal-nutrition-intake__status { border: 1px solid #d7ddd9; border-radius: 999px; flex: 0 0 auto; font-size: var(--font-size-caption, .76rem); font-weight: var(--font-weight-label, 750); padding: 5px 9px; }
.animal-nutrition-intake__status--complete { background: #edf7f1; border-color: #b8d9c6; color: #246144; }
.animal-nutrition-intake__status--partial { background: #fff4df; border-color: #e9c785; color: #80540b; }
.animal-nutrition-intake__status--unavailable { background: #f3f4f4; color: #5f6968; }
.animal-nutrition-intake__values { display: grid; gap: 8px; grid-template-columns: repeat(3, minmax(0, 1fr)); min-width: 0; }
.animal-nutrition-intake__value { background: #f7f9f8; border: 1px solid #e1e7e5; border-radius: 10px; display: grid; gap: 3px; min-width: 0; padding: 10px 12px; }
.animal-nutrition-intake__value span { color: var(--text-muted, #637170); font-size: var(--font-size-table, .8rem); overflow-wrap: anywhere; }
.animal-nutrition-intake__value strong { color: var(--primary, #2d6d70); font-size: var(--font-size-body, 1rem); overflow-wrap: anywhere; }
.animal-nutrition-intake__warnings { border-top: 1px solid #e1e7e5; padding-top: 14px; }
.animal-nutrition-intake__warnings summary { align-items:center; background:#fff8e9; border:1px solid #dfc68d; border-radius:10px; color:#68450b; cursor:pointer; display:flex; font-size:var(--font-size-control,.86rem); font-weight:var(--font-weight-label,700); gap:10px; justify-content:space-between; list-style:none; min-height:42px; padding:8px 12px; }
.animal-nutrition-intake__warnings summary::-webkit-details-marker { display:none; }
.animal-nutrition-intake__warnings summary::after { border:solid currentColor; border-width:0 2px 2px 0; content:""; flex:none; height:8px; margin-right:3px; transform:rotate(45deg); transition:transform .18s ease; width:8px; }
.animal-nutrition-intake__warnings[open] summary::after { transform:rotate(225deg); }
.animal-nutrition-intake__warnings summary:hover,.animal-nutrition-intake__warnings summary:focus-visible { background:#fff0cf; border-color:#c49b4d; outline:2px solid #80540b; outline-offset:2px; }
.animal-nutrition-intake__warnings ul { color: var(--text-muted, #637170); display: grid; font-size: var(--font-size-table, .82rem); gap: 4px; margin: 9px 0 0; padding-left: 20px; }
.animal-nutrition-intake__note { color: var(--text-muted, #637170); font-size: var(--font-size-help, .78rem); line-height: 1.45; margin: 0; }
@media (max-width: 860px) { .animal-nutrition-intake__values { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .animal-nutrition-summary__entry { align-items: flex-start; flex-direction: column; gap: 8px; } .animal-nutrition-summary__quantity { align-items: flex-start; text-align: left; } }
@media (max-width: 560px) { .animal-nutrition-intake__heading { align-items: flex-start; flex-direction: column; gap: 8px; } .animal-nutrition-intake__values { grid-template-columns: minmax(0, 1fr); } }
.animal-history-intro {
  display: grid;
  align-items: flex-start;
  gap: 4px;
  margin: 0 0 18px;
  padding: 16px 18px;
  border-left: 4px solid var(--color-primary);
}
.animal-history-intro strong { color: var(--color-primary-strong); }
.animal-history-intro span {
  color: var(--color-text-soft);
  font-size: var(--font-size-table, .84rem);
  line-height: 1.45;
}
.animal-measurement-history { display:grid; gap:10px; }
.animal-measurement-history__item,.animal-history-table { border:1px solid var(--color-border, #d9e1de); border-radius:var(--radius-control,8px); overflow:hidden; }
.animal-measurement-history__item[open] { border-color:var(--ui-success-border,#92bea0); box-shadow:var(--ui-shadow-card,0 8px 24px rgb(var(--color-primary-rgb) / .08)); }
.animal-measurement-history__item summary,.animal-history-table summary { align-items:center; background:var(--color-surface,#fffdf9); cursor:pointer; display:grid; gap:10px; grid-template-columns:minmax(0,1fr) auto auto; list-style:none; min-height:44px; padding:9px 14px; }
.animal-measurement-history__item[open] summary { background:var(--ui-success-surface,#edf7f0); }
.animal-measurement-history__item summary::-webkit-details-marker,.animal-history-table summary::-webkit-details-marker { display:none; }
.animal-measurement-history__item summary span,.animal-history-table summary { color:var(--color-primary-strong); font-size:var(--font-size-control,.86rem); font-weight:var(--font-weight-label,750); }
.animal-measurement-history__item summary strong { color:var(--color-text,#21302f); font-size:var(--font-size-control,.86rem); }
.animal-measurement-history__item summary small { color:var(--color-text-soft); font-size:var(--font-size-help,.76rem); white-space:nowrap; }
.animal-measurement-history__visualization { background:var(--color-surface-muted,#f4f7f5); border-top:1px solid var(--ui-success-border,#92bea0); max-width:680px; padding:0 8px 8px; }
.animal-measurement-history__mode { align-items:center; display:flex; gap:0; justify-content:flex-end; padding:10px 6px 0; }
.animal-measurement-history__mode-button { background:var(--color-surface,#fff); border:1px solid var(--color-border,#d9e1de); border-radius:0; color:var(--color-text-soft,#5d6a68); cursor:pointer; font:inherit; font-size:var(--font-size-help,.76rem); font-weight:var(--font-weight-label,750); min-height:30px; padding:4px 10px; }
.animal-measurement-history__mode-button:first-child { border-radius:var(--radius-control,8px) 0 0 var(--radius-control,8px); }
.animal-measurement-history__mode-button:last-child { border-left:0; border-radius:0 var(--radius-control,8px) var(--radius-control,8px) 0; }
.animal-measurement-history__mode-button[aria-pressed="true"] { background:var(--color-primary,#2f777d); border-color:var(--color-primary,#2f777d); color:var(--color-on-primary,#fff); }
.animal-measurement-history__mode-button:focus-visible { outline:3px solid var(--color-focus-ring,rgba(47,119,125,.38)); outline-offset:2px; }
.animal-measurement-history__chart { height:270px; padding:0 4px 2px; }
.animal-history-table { margin-top:10px; }
.animal-history-table summary { display:block; min-height:auto; }
.animal-history-table .table-wrap { border-top:1px solid var(--color-border,#d9e1de); }
@media (max-width:560px) { .animal-measurement-history__item summary { grid-template-columns:minmax(0,1fr) auto; } .animal-measurement-history__item summary small { grid-column:1 / -1; } .animal-measurement-history__visualization { padding-inline:4px; } .animal-measurement-history__chart { height:220px; } }
.client-animal-sessions {
  min-width: 0;
}
.client-animal-sessions:not([hidden]) {
  display: grid;
  gap: 16px;
}
.client-animal-sessions__heading {
  align-items: end;
  display: flex;
  gap: 20px;
  justify-content: space-between;
}
.client-animal-sessions__heading small {
  color: var(--color-accent);
  font-size: var(--font-size-help, .72rem);
  font-weight: var(--font-weight-label, 850);
  letter-spacing: .07em;
  text-transform: uppercase;
}
.client-animal-sessions__heading h2 {
  color: var(--color-primary);
  font-size: var(--font-size-card-title, 1.55rem);
  margin: 3px 0 0;
}
.client-animal-sessions__heading p {
  color: var(--color-text-soft);
  margin: 0;
  max-width: 520px;
}
.animal-consultation-tabs button[data-client-portal-session-nav] {
  align-items: center;
  display: inline-flex;
  gap: 7px;
}
.animal-consultation-tab__notification {
  align-items: center;
  background: var(--color-accent);
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  font-size: var(--font-size-caption, .66rem);
  height: 20px;
  justify-content: center;
  min-width: 20px;
  padding: 0 6px;
}
@media (max-width: 720px) {
  .client-animal-sessions__heading {
    align-items: start;
    flex-direction: column;
    gap: 6px;
  }
}

/* The safety buffer is a short, related control: keep its value close to its explanation. */
.practitioner-opening-hours__safety {
  gap: 8px;
  width: min(100%, 760px);
}

/* The default intervention area needs enough vertical context for precise map placement. */
.practitioner-default-service-area-card .availability-map__canvas {
  height: 360px;
}

@media (max-width: 720px) {
  .practitioner-default-service-area-card .availability-map__canvas {
    height: 260px;
  }
}

@media (max-width: 760px) {
  .coat-review-item { grid-template-columns: 1fr; }
  .coat-review-item__actions { justify-content: flex-start; }
  .coat-review-item__actions [data-coat-merge-form] { width: 100%; flex-wrap: wrap; }
}

@media (max-width: 620px) {
  .animal-consultation-tabs,
  .detail-tabs { gap: 6px; }
  .animal-consultation-tabs button,
  .detail-tabs button {
    flex: 1 1 calc(50% - 6px);
    padding-inline: 10px;
  }
}
/* Client booking wizard: one focused question at a time, without mimicking a third-party interface. */
.client-portal-link-request__heading{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid var(--border-soft)}
.client-portal-link-request__heading h2{margin:0 0 .35rem}.client-portal-link-request__heading p{margin:0;max-width:44rem}.client-portal-form-actions--directory{align-items:center}.client-portal-link-button,.client-portal-booking-button{flex:0 0 auto;min-width:0;padding:.65rem .9rem;white-space:nowrap}
.client-portal-booking__summary{display:grid;gap:.3rem;min-width:15rem;padding:1rem 1.1rem;border:1px solid rgb(var(--color-secondary-rgb) / .3);border-left:4px solid var(--color-secondary);border-radius:.8rem;background:var(--color-current-day-soft);box-shadow:0 .45rem 1rem rgb(var(--color-secondary-rgb) / .1)}.client-portal-booking__summary strong{color:var(--color-secondary-deep)}.client-portal-booking__summary span{font-size:var(--font-size-body, .9rem);color:var(--color-text-soft)}
.client-portal-booking__progress{display:flex;gap:.55rem;list-style:none;padding:.65rem;margin:1.5rem 0;flex-wrap:wrap;border:1px solid rgb(var(--color-primary-rgb) / .18);border-radius:1rem;background:var(--color-primary-soft);box-shadow:0 .45rem 1rem rgb(var(--color-primary-rgb) / .08)}.client-portal-booking__progress li{display:flex;align-items:center;gap:.45rem;min-height:42px;padding:.45rem .7rem;border:1px solid rgb(var(--color-primary-rgb) / .12);border-radius:.75rem;color:var(--color-text-soft);background:var(--color-surface);font-size:var(--font-size-table, .86rem)}.client-portal-booking__progress span{display:grid;place-items:center;width:1.75rem;height:1.75rem;border:1px solid rgb(var(--color-primary-rgb) / .22);border-radius:50%;background:var(--color-surface);font-weight:var(--font-weight-label, 800)}.client-portal-booking__progress .is-complete{border-color:rgb(var(--color-identity-rgb) / .28);color:var(--color-identity-strong);background:#edf4ee}.client-portal-booking__progress .is-complete span{background:var(--color-identity);border-color:var(--color-identity);color:var(--color-surface)}.client-portal-booking__progress .is-current{border-color:rgb(var(--color-secondary-rgb) / .5);color:var(--color-secondary-deep);background:var(--color-current-day-soft);box-shadow:0 .35rem .8rem rgb(var(--color-secondary-rgb) / .14);font-weight:var(--font-weight-label, 800)}.client-portal-booking__progress .is-current span{background:var(--color-secondary);border-color:var(--color-secondary);color:var(--color-surface)}
.client-portal-booking__card{max-width:50rem;background:var(--color-surface);border:1px solid rgb(var(--color-primary-rgb) / .18);border-top:5px solid var(--color-secondary);border-radius:1rem;padding:clamp(1.25rem,3vw,2.25rem);box-shadow:0 .85rem 2rem rgb(var(--color-primary-rgb) / .1)}.client-portal-booking__card h2{color:var(--color-primary-strong);margin-top:0}.client-portal-booking__card>p{color:var(--color-text-soft)}.client-portal-booking__choices{display:grid;gap:.75rem;margin:1.5rem 0}.client-portal-booking__choices label{display:flex;align-items:center;gap:.85rem;min-height:56px;padding:1rem;border:1px solid rgb(var(--color-primary-rgb) / .2);border-left:4px solid var(--color-identity);border-radius:.75rem;cursor:pointer;background:#f7faf9;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}.client-portal-booking__choices label:hover{border-color:rgb(var(--color-primary-rgb) / .42);background:#edf5f0;transform:translateY(-1px)}.client-portal-booking__choices label:has(input:checked){border-color:var(--color-secondary);border-left-color:var(--color-secondary);background:var(--color-current-day-soft);box-shadow:0 0 0 3px rgb(var(--color-secondary-rgb) / .13)}.client-portal-booking__choices input{accent-color:var(--color-secondary);width:1.1rem;height:1.1rem}.client-portal-booking__choices span{display:grid;gap:.2rem;min-width:0}.client-portal-booking__choices strong{color:var(--color-primary-strong)}.client-portal-booking__choices small{color:var(--color-text-soft)}.client-portal-booking__datetime{display:grid;gap:.5rem;margin:1.5rem 0}.client-portal-booking__datetime input{max-width:22rem}.client-portal-booking__consent{display:flex;gap:.7rem;align-items:flex-start;font-size:var(--font-size-body, .92rem);line-height:1.45}.client-portal-booking__consent input{margin-top:.25rem;accent-color:var(--color-primary)}
.client-portal-booking__days{display:grid;gap:.65rem;margin:1.4rem 0 .85rem}.client-portal-booking__days details{background:#fff;border:1px solid var(--border-soft);border-radius:.75rem;box-shadow:0 .35rem .9rem rgba(37,75,73,.04)}.client-portal-booking__days details[open]{border-color:rgb(var(--color-primary-rgb) / .42);box-shadow:0 .5rem 1.1rem rgba(37,75,73,.09)}.client-portal-booking__days summary{align-items:center;color:var(--color-primary);cursor:pointer;display:flex;font-weight:var(--font-weight-label, 700);gap:1rem;justify-content:space-between;list-style:none;min-width:0;padding:.9rem 1rem}.client-portal-booking__days summary::-webkit-details-marker{display:none}.client-portal-booking__day-date{min-width:0}.client-portal-booking__day-meta{align-items:center;display:flex;flex:0 0 auto;gap:.7rem}.client-portal-booking__days summary small{color:var(--text-muted);font-weight:var(--font-weight-label, 500)}.client-portal-booking__day-meta i{border-bottom:2px solid currentColor;border-right:2px solid currentColor;display:block;height:.5rem;transform:rotate(45deg);transition:transform .18s ease;width:.5rem}.client-portal-booking__days details[open] .client-portal-booking__day-meta i{transform:rotate(225deg)}.client-portal-booking__days details>div{border-top:1px solid var(--border-soft);display:flex;flex-wrap:wrap;gap:.6rem;padding:.85rem 1rem}.client-portal-booking__days label{position:relative}.client-portal-booking__days input{opacity:0;position:absolute}.client-portal-booking__days label span{background:#fff;border:1px solid var(--border-soft);border-radius:.5rem;color:var(--color-primary);cursor:pointer;display:block;font-weight:var(--font-weight-label, 750);padding:.48rem .68rem}.client-portal-booking__days label span:hover{border-color:var(--color-primary)}.client-portal-booking__days input:focus-visible+span{outline:3px solid var(--color-focus);outline-offset:2px}.client-portal-booking__days input:checked+span{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.client-portal-booking__more-dates{background:transparent;border:0;color:var(--color-secondary-deep);cursor:pointer;font:inherit;font-weight:var(--font-weight-label, 800);margin:0 0 .5rem;padding:.55rem .2rem;text-align:left;width:max-content}.client-portal-booking__more-dates:hover,.client-portal-booking__more-dates:focus-visible{color:var(--color-primary);text-decoration:none}.client-portal-booking__more-dates:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.client-portal-booking__manual-note{color:var(--text-muted);font-size:var(--font-size-help, .92rem);margin-top:1.2rem}
.client-portal-booking__days label span{align-items:center;background:#f7faf9;border-color:rgb(var(--color-primary-rgb) / .28);border-radius:3px;display:flex;justify-content:center;min-height:42px;min-width:68px;padding:.55rem .75rem;text-align:center}
.client-portal-booking__layout--with-summary{align-items:start;display:grid;gap:1.25rem;grid-template-columns:minmax(0,42rem) minmax(15rem,17rem);max-width:60.25rem}.client-portal-booking__layout--with-summary .client-portal-booking__card{max-width:none;min-width:0;width:100%}.client-portal-booking__appointment-summary{aspect-ratio:1;background:var(--color-current-day-soft);border:1px solid rgb(var(--color-secondary-rgb) / .34);border-top:5px solid var(--color-secondary);border-radius:.65rem;box-shadow:0 .75rem 2rem rgb(var(--color-secondary-rgb) / .12);box-sizing:border-box;display:grid;gap:.8rem;min-width:0;padding:1.2rem;width:100%}.client-portal-booking__appointment-summary>span{color:var(--color-secondary-deep);font-size:var(--font-size-control, .72rem);font-weight:var(--font-weight-label, 850);letter-spacing:.08em;text-transform:uppercase}.client-portal-booking__appointment-summary h2{color:var(--color-primary);font-size:var(--font-size-card-title, 1.15rem);line-height:var(--line-height-title, 1.2);margin:0;overflow-wrap:anywhere}.client-portal-booking__appointment-summary dl{display:grid;gap:.65rem;margin:0;min-width:0}.client-portal-booking__appointment-summary dl>div{border-top:1px solid rgb(var(--color-secondary-rgb) / .2);display:grid;gap:.16rem;min-width:0;padding-top:.55rem}.client-portal-booking__appointment-summary dt{color:var(--color-secondary-deep);font-size:var(--font-size-control, .68rem);font-weight:var(--font-weight-label, 750);text-transform:uppercase}.client-portal-booking__appointment-summary dd{color:var(--color-text);font-size:var(--font-size-control, .86rem);font-weight:var(--font-weight-label, 750);line-height:1.3;margin:0;overflow-wrap:anywhere}.client-portal-booking__appointment-summary dd small{color:var(--color-text-soft);display:block;font-size:var(--font-size-control, .73rem);font-weight:var(--font-weight-label, 500);margin-top:.1rem}.client-portal-booking__days details[open]{border-color:rgb(var(--color-primary-rgb) / .34);background:var(--color-primary-soft);box-shadow:0 .45rem 1rem rgb(var(--color-primary-rgb) / .09)}.client-portal-booking__days details[open] summary{background:var(--color-primary-soft);border-radius:.7rem .7rem 0 0}.client-portal-booking__days details[open] label span{border-color:rgb(var(--color-primary-rgb) / .18)}.client-portal-booking__days label span{transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}.client-portal-booking__days label:hover span{border-color:rgb(var(--color-primary-rgb) / .38);box-shadow:0 .35rem .7rem rgba(37,75,73,.12);transform:translateY(-2px)}.client-portal-booking__days input:checked+span{background:var(--color-secondary);border-color:var(--color-secondary);color:var(--color-surface);box-shadow:0 .35rem .75rem rgb(var(--color-secondary-rgb) / .2)}.client-portal-booking__days label:active span{box-shadow:0 .16rem .35rem rgba(37,75,73,.1);transform:translateY(0)}
.client-portal-booking__layout--with-summary{grid-template-columns:minmax(0,1fr) minmax(17.5rem,18.75rem);margin-inline:auto;max-width:54.5rem;width:100%}.client-portal-booking__appointment-summary{gap:.55rem;padding:1rem}.client-portal-booking__appointment-summary dl{gap:.35rem}.client-portal-booking__appointment-summary dl>div{gap:.1rem;padding-top:.35rem}.client-portal-booking__days details{border:1px solid rgb(var(--color-primary-rgb) / .18)}.client-portal-booking__days details[open]{border:1px solid rgb(var(--color-primary-rgb) / .38);box-shadow:0 .45rem 1rem rgba(37,75,73,.065)}.client-portal-booking__days details[open]>div{border-top:0}
.client-portal-booking__more-dates{background:var(--color-current-day-soft);border:1px solid rgb(var(--color-secondary-rgb) / .34);border-radius:.75rem;box-shadow:0 .35rem .9rem rgb(var(--color-secondary-rgb) / .08);color:var(--color-secondary-deep);display:block;margin:0 0 .5rem;padding:.9rem 1rem;text-align:center;transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease;width:100%}.client-portal-booking__more-dates:hover{background:#ffe9dd;border-color:var(--color-secondary);box-shadow:0 .5rem 1rem rgb(var(--color-secondary-rgb) / .13);color:var(--color-secondary-deep);transform:translateY(-1px)}
@media(max-width:1100px){.client-portal-booking__layout--with-summary{grid-template-columns:minmax(0,1fr);margin-inline:auto;max-width:42rem;width:100%}.client-portal-booking__appointment-summary{aspect-ratio:auto;width:100%}}
@media (max-width:720px){.client-portal-link-request__heading{align-items:flex-start;flex-direction:column}.client-portal-booking__summary{min-width:0;width:100%}.client-portal-booking__progress{gap:.5rem}.client-portal-booking__progress li{font-size:var(--font-size-table, .78rem)}.client-portal-booking__card{padding:1.2rem}.client-portal-booking__datetime input{max-width:100%}}
.client-portal-booking__compatibility {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 20px 0;
}
.client-portal-booking__compatibility[hidden] { display: none; }
.client-portal-booking__mode-preview {
    min-width: 0;
    padding: 14px;
    border: 1px solid var(--color-border);
    border-top: 3px solid var(--color-primary);
    border-radius: 10px;
    background: var(--color-primary-soft);
    overflow-wrap: anywhere;
}
.client-portal-booking__mode-preview.has-warning,
.client-portal-booking__partial-confirmation {
    border-color: var(--color-secondary-muted);
    background: var(--color-secondary-faint);
}
.client-portal-booking__mode-preview h3,
.client-portal-booking__partial-confirmation h3 {
    margin: 0 0 8px;
    color: var(--color-primary-deep);
    font-size: var(--font-size-body);
}
.client-portal-booking__mode-preview p,
.client-portal-booking__mode-preview li,
.client-portal-booking__mode-summary,
.client-portal-booking__mode-warning,
.client-portal-booking__compatibility-note {
    font-size: var(--font-size-help);
    line-height: 1.5;
    color: var(--color-text);
}
.client-portal-booking__mode-preview p { margin: 0; }
.client-portal-booking__mode-preview ul { margin: 8px 0 0; padding-left: 18px; }
.client-portal-booking__mode-preview ul:empty { display: none; }
.client-portal-booking__compatibility-note { grid-column: 1 / -1; margin: 0; color: var(--color-text-soft); }
.client-portal-booking__location-choices label { align-items: flex-start; }
.client-portal-booking__location-choices input { flex: 0 0 1.1rem; margin-top: 4px; }
.client-portal-booking__location-choices label.is-unavailable { cursor: not-allowed; border-left-color: var(--color-border); background: var(--color-surface); transform: none; }
.client-portal-booking__location-choices .client-portal-booking__mode-warning { display: flex; gap: 8px; margin: 6px 0; padding: 8px 10px; border-radius: 6px; background: var(--color-secondary-faint); color: var(--color-secondary-deep); }
.client-portal-booking__mode-warning i { flex: 0 0 auto; font-style: normal; }
.client-portal-booking__partial-confirmation { padding: 16px; margin: 20px 0; border-width: 1px; border-style: solid; border-radius: 10px; }
@media (max-width: 600px) { .client-portal-booking__compatibility { grid-template-columns: minmax(0, 1fr); } }
.client-portal-shell--with-secondary-drawer > .client-portal-drawer { z-index: 11; }
.availability-agenda-card{padding:18px}.availability-calendar-help{color:var(--color-text-soft);font-size:var(--font-size-table, .84rem);margin:0 0 14px}.availability-month .agenda-month__weekday{background:#d6e9e6;border:1px solid #9fcac4;border-radius:7px;box-shadow:0 5px 8px -8px rgba(23,40,39,.5);color:#1f5553}.availability-month__cell{appearance:none;text-align:left;cursor:pointer}.availability-month__cell:hover,.availability-month__cell:focus-visible{border-color:#376d70;outline:2px solid rgba(55,109,112,.3);outline-offset:-2px}.availability-month__cell.is-selected{background:#dceceb;border-color:#376d70;box-shadow:inset 4px 0 0 #376d70}.availability-month__cell.agenda-month__cell--today{background:#fff2e9;border:2px solid #d8794e;box-shadow:inset 0 0 0 1px rgba(216,121,78,.2)}.availability-month__cell.agenda-month__cell--today .agenda-month__date>span{background:#d8794e;color:#fff}.availability-month__cell.agenda-month__cell--today.is-selected{box-shadow:inset 4px 0 0 #376d70,inset 0 0 0 1px rgba(216,121,78,.2)}.availability-month__cell .agenda-month__date{pointer-events:none}.availability-month__cell .agenda-month__date>span{background:transparent}.availability-month__cell.agenda-month__cell--today .agenda-month__date>span{background:#d8794e;color:#fff}.availability-year{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.availability-year__month{background:#fff;border:1px solid var(--color-border);border-radius:10px;color:var(--color-text);cursor:pointer;display:grid;gap:5px;min-height:92px;padding:14px;text-align:left}.availability-year__month strong{color:var(--color-primary);font-size:var(--font-size-body, 1rem)}.availability-year__month span{color:var(--color-text-soft);font-size:var(--font-size-table, .76rem)}.availability-year__month:hover,.availability-year__month:focus-visible{border-color:#376d70;outline:2px solid rgba(55,109,112,.3);outline-offset:-2px}.availability-year__month.is-current{box-shadow:inset 3px 0 0 #d8794e}.availability-year__month.is-selected{background:#dceceb;border-color:#376d70;box-shadow:inset 4px 0 0 #376d70}.availability-address-status{color:var(--color-text-soft);font-size:var(--font-size-caption, .78rem);font-weight:var(--font-weight-label, 500)}.availability-address-suggestions{display:grid;gap:4px;margin-top:4px;max-height:180px;overflow:auto}.availability-address-suggestion{background:#fff;border:1px solid var(--color-border);border-radius:7px;color:var(--color-text);cursor:pointer;font:inherit;font-size:var(--font-size-table, .83rem);padding:8px 10px;text-align:left}.availability-address-suggestion:hover,.availability-address-suggestion:focus-visible{background:#e8f3f1;border-color:#5e9a92;outline:0}.availability-radius-control{align-items:center;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto}.availability-radius-control input{accent-color:#376d70;min-height:auto;padding:0}.availability-radius-control output{background:#dceceb;border:1px solid #9fcac4;border-radius:999px;color:#1f5553;font-size:var(--font-size-table, .85rem);font-weight:var(--font-weight-label, 800);min-width:62px;padding:6px 9px;text-align:center}.availability-map{background:#f7faf9;border:1px solid #b7d5d0;border-radius:10px;margin-top:1rem;overflow:hidden;padding:8px}.availability-map__canvas{background:#eef4f2;height:280px;overflow:hidden;position:relative}.availability-map__canvas img{height:256px;max-width:none;position:absolute;width:256px}.availability-map__radius{background:rgba(55,109,112,.18);border:2px solid rgba(55,109,112,.72);border-radius:50%;position:absolute;transform:translate(-50%,-50%);z-index:2}.availability-map__marker{background:#d8794e;border:3px solid #fff;border-radius:50%;box-shadow:0 2px 7px rgba(23,40,39,.38);height:16px;position:absolute;transform:translate(-50%,-50%);width:16px;z-index:3}.availability-map p{color:var(--color-text-soft);font-size:var(--font-size-table, .68rem);margin:6px 2px 0}.availability-modal-actions .btn:disabled{cursor:not-allowed;opacity:.55}@media(max-width:720px){.availability-year{grid-template-columns:repeat(2,minmax(0,1fr))}.availability-map__canvas{height:220px}}
.availability-agenda-card { border:1px solid rgb(var(--color-secondary-rgb) / .28); border-top:5px solid var(--color-secondary-strong); box-shadow:var(--ui-shadow-card); }
.availability-period-list { border:1px solid rgb(var(--color-primary-rgb) / .24); border-top:5px solid var(--color-primary); box-shadow:var(--ui-shadow-card); }
.availability-period-list .section-kicker { color:var(--color-secondary-deep); }
.availability-period-list h2 { color:var(--color-primary-deep); }
.availability-calendar-help { background:var(--color-secondary-faint); border-left:3px solid var(--color-secondary-strong); border-radius:0 8px 8px 0; color:var(--color-primary-deep); line-height:1.5; padding:10px 12px; }
.availability-calendar-help kbd { background:#fff; border:1px solid rgb(var(--color-secondary-rgb) / .4); border-radius:4px; color:var(--color-secondary-deep); padding:1px 5px; }
.availability-year__month:nth-child(3n + 2) { border-top:3px solid var(--color-secondary-muted); }
.availability-year__month:nth-child(3n + 3) { border-top:3px solid var(--color-primary); }
.questionnaire-send-modal__panel {
    width: min(680px, 100%);
    max-height: min(820px, calc(100vh - 32px));
    overflow: auto;
}

.questionnaire-send-modal__panel .app-confirm-modal__header small,
.questionnaire-send-step > small {
    display: block;
    color: var(--color-accent, #985747);
    font-size: var(--font-size-help, .76rem);
    font-weight: var(--font-weight-label, 700);
    letter-spacing: .08em;
    text-transform: uppercase;
}

.questionnaire-send-steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin: 20px 0 24px;
    padding: 0;
    list-style: none;
}

.questionnaire-send-steps li {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    color: #777071;
    font-size: var(--font-size-table, .84rem);
}

.questionnaire-send-steps li span {
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    flex: 0 0 26px;
    border: 1px solid #d9d2ca;
    border-radius: 50%;
    background: #fff;
    font-weight: var(--font-weight-label, 700);
}

.questionnaire-send-steps li.is-active,
.questionnaire-send-steps li.is-complete {
    color: var(--color-primary, #2f6d6d);
    font-weight: var(--font-weight-label, 700);
}

.questionnaire-send-steps li.is-active span,
.questionnaire-send-steps li.is-complete span {
    border-color: var(--color-primary, #2f6d6d);
    background: var(--color-primary, #2f6d6d);
    color: #fff;
}

.questionnaire-send-step h3 {
    margin: 5px 0 16px;
    color: var(--color-primary-dark, #26595a);
    font-size: var(--font-size-card-title, 1.34rem);
}

.questionnaire-send-guidance,
.questionnaire-send-security {
    margin: -8px 0 16px;
    color: #615b5d;
    font-size: var(--font-size-body, .92rem);
}

.questionnaire-send-create-link {
    width: fit-content;
    max-width: 100%;
    margin-top: 14px;
    white-space: normal;
    text-align: left;
}

.questionnaire-send-selection,
.questionnaire-send-choices label {
    display: flex;
    align-items: center;
    gap: 12px;
    border: 1px solid #ddd7d0;
    border-radius: 10px;
    background: #fff;
    padding: 13px 15px;
}

.questionnaire-send-selection {
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}

.questionnaire-send-selection span,
.questionnaire-send-choices small {
    color: #665f61;
}

.questionnaire-send-choices {
    display: grid;
    gap: 9px;
}

.questionnaire-send-choices label {
    cursor: pointer;
    transition: border-color .16s ease, background-color .16s ease, transform .16s ease;
}

.questionnaire-send-choices label:hover,
.questionnaire-send-choices label:focus-within {
    border-color: var(--color-primary, #2f6d6d);
    background: #f6fbfa;
    transform: translateY(-1px);
}

.questionnaire-send-choices label span {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.questionnaire-send-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 0 0 18px;
}

.questionnaire-send-summary div {
    border: 1px solid #e2dcd5;
    border-radius: 8px;
    padding: 10px 12px;
}

.questionnaire-send-summary dt {
    color: #766f70;
    font-size: var(--font-size-control, .75rem);
    font-weight: var(--font-weight-label, 700);
    text-transform: uppercase;
}

.questionnaire-send-summary dd {
    margin: 3px 0 0;
    overflow-wrap: anywhere;
}

.questionnaire-send-modal__loading,
.questionnaire-send-success {
    padding: 28px 8px;
    text-align: center;
}

.questionnaire-send-success strong {
    display: block;
    color: var(--color-primary-dark, #26595a);
    font-size: var(--font-size-body, 1.35rem);
}

.questionnaire-public-body {
    min-height: 100vh;
    margin: 0;
    background: #f6f1e9;
}

.questionnaire-public-shell {
    width: min(1120px, calc(100% - 32px));
    margin: 0 auto;
    padding: 32px 0 60px;
}

.questionnaire-public-shell.questionnaire-test-page,
.questionnaire-public-body .questionnaire-test-page {
    width: min(1120px, calc(100% - 32px));
    margin: 0 auto;
    padding: 32px 0 60px;
}

.questionnaire-public-state {
    width: min(620px, 100%);
    margin: 10vh auto 0;
    padding: 34px;
    text-align: center;
}

.questionnaire-public-state h1 {
    margin: 14px 0 10px;
    color: var(--color-primary-dark, #26595a);
}

.aenima-public-body {
    min-height: 100vh;
    margin: 0;
    background: var(--color-bg);
}

.aenima-public-document {
    scroll-behavior: smooth;
    scroll-padding-top: 20px;
}

@media (prefers-reduced-motion: reduce) {
    .aenima-public-document {
        scroll-behavior: auto;
    }
}

.aenima-public-home {
    --aenima-public-shell-gutter: max(20px, calc((100% - 1240px) / 2));
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    padding: 20px 0 0;
}

.aenima-public-home__header,
.aenima-public-home__navigation,
.aenima-public-home__actions,
.aenima-public-home__closing,
.aenima-public-home__footer,
.aenima-public-home__footer nav {
    display: flex;
    align-items: center;
}

.aenima-public-home__header {
    position: relative;
    z-index: 5;
    justify-content: space-between;
    gap: 24px;
    min-height: 72px;
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto 18px;
    padding: 10px 14px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface);
    box-shadow: var(--shadow-xs);
}

.aenima-public-home__header-search {
    flex: 1 1 auto;
    min-width: 0;
    visibility: hidden;
    opacity: 0;
    transform: translateX(24px);
    pointer-events: none;
    transition: opacity var(--ui-motion-fast, .16s) ease, transform var(--ui-motion-fast, .16s) ease, visibility var(--ui-motion-fast, .16s);
}

.aenima-public-home__header-search.is-open {
    visibility: visible;
    opacity: 1;
    transform: translateX(0);
    pointer-events: auto;
}

.aenima-public-home__header-search .directory-search-bar {
    width: 100%;
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) auto;
    border: 1px solid var(--color-border);
}

.aenima-public-home__header-search .directory-search-bar__part { padding: 4px 8px; }
.aenima-public-home__header-search .directory-search-bar input[type=search] { font-size: var(--font-size-control); }
.aenima-public-home__header-search .directory-search-bar__locate { width: 30px; height: 36px; flex-basis: 30px; }
.aenima-public-home__header-search .directory-search-bar__submit { padding: 8px 12px; }

.aenima-public-home__directory-toggle {
    box-sizing: border-box;
    min-height: 44px;
    width: max-content;
    max-width: 100%;
    padding: 9px 16px;
    border: 1px solid var(--ui-back-icon-background, #f4ce55);
    border-radius: var(--ui-radius-pill, 999px);
    background: var(--ui-back-icon-background, #f4ce55);
    color: var(--ui-back-icon-foreground, #253130);
    font: inherit;
    font-size: var(--font-size-control);
    font-weight: var(--font-weight-label);
    white-space: nowrap;
    cursor: pointer;
}

.aenima-public-home__directory-toggle:hover,
.aenima-public-home__directory-toggle:focus-visible {
    border-color: var(--ui-back-icon-foreground, #253130);
    background: var(--ui-back-icon-background, #f4ce55);
    color: var(--ui-back-icon-foreground, #253130);
    outline: 2px solid var(--ui-back-icon-foreground, #253130);
    outline-offset: 2px;
}

.aenima-public-home__header:has(.aenima-public-home__directory-toggle) .aenima-public-home__navigation {
    flex: 0 0 auto;
    flex-wrap: nowrap;
}

@media (max-width: 960px) {
    .aenima-public-home__header { flex-wrap: wrap; gap: 12px; }
    .aenima-public-home__header-search {
        order: 3;
        flex: 1 0 100%;
        max-height: 0;
        margin-bottom: -12px;
        transition: max-height var(--ui-motion-fast, .16s) ease, margin-bottom var(--ui-motion-fast, .16s) ease, opacity var(--ui-motion-fast, .16s) ease, transform var(--ui-motion-fast, .16s) ease, visibility var(--ui-motion-fast, .16s);
    }
    .aenima-public-home__header-search.is-open { max-height: 190px; margin-bottom: 0; }
    .aenima-public-home__navigation { margin-left: auto; }
}

@media (max-width: 680px) {
    .aenima-public-home__header-search.is-open { max-height: 240px; }
    .aenima-public-home__header-search .directory-search-bar { grid-template-columns: minmax(0, 1fr); border-radius: var(--ui-space-5, 20px); }
    .aenima-public-home__header-search .directory-search-bar__location { border-left: 0; border-top: 1px solid var(--color-border); }
    .aenima-public-home__header-search .directory-search-bar__submit { border-radius: 0 0 var(--ui-space-5, 20px) var(--ui-space-5, 20px); }
}

@media (prefers-reduced-motion: reduce) {
    .aenima-public-home__header-search { transition: none; transform: none; }
}

.aenima-public-home__brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex: 0 0 auto;
    color: var(--color-primary-strong);
    text-decoration: none;
}

.aenima-public-home__brand-mark {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
}

.aenima-public-home__brand-mark img {
    display: block;
    width: 44px;
    height: 44px;
    object-fit: contain;
}

.aenima-public-home__brand strong {
    font-size: 1.16rem;
    font-weight: 850;
    letter-spacing: .06em;
}

.aenima-public-home__navigation,
.aenima-public-home__actions,
.aenima-public-home__footer nav {
    flex-wrap: wrap;
    gap: 10px;
}

.aenima-public-home__navigation > a:not(.aenima-public-home__audience-switch) {
    padding: 10px 9px;
    border-radius: 10px;
    color: var(--color-text-soft);
    font-size: .9rem;
    font-weight: 750;
}

.aenima-public-home__navigation > a:not(.aenima-public-home__audience-switch):hover,
.aenima-public-home__navigation > a:not(.aenima-public-home__audience-switch):focus-visible {
    background: var(--color-primary-soft);
    color: var(--color-primary-strong);
    outline: none;
}

.aenima-public-home__audience-switch {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-height: 44px;
    padding: 10px 15px;
    border: 1px solid var(--color-primary);
    border-radius: 999px;
    background: var(--color-primary);
    color: var(--color-surface);
    font-size: .9rem;
    font-weight: 800;
}

.aenima-public-home__audience-switch:hover,
.aenima-public-home__audience-switch:focus-visible {
    border-color: var(--color-primary-strong);
    background: var(--color-primary-strong);
    box-shadow: 0 0 0 4px var(--color-focus);
    outline: none;
}

.aenima-public-home__hero {
    --aenima-public-hero-padding: clamp(38px, 6vw, 78px);
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(250px, .65fr);
    gap: clamp(24px, 4vw, 56px);
    align-items: stretch;
    min-width: 0;
    padding-block: var(--aenima-public-hero-padding);
    padding-inline: calc(var(--aenima-public-shell-gutter) + var(--aenima-public-hero-padding));
    border-block: 1px solid rgb(var(--color-primary-rgb) / .18);
    border-inline: 0;
    border-top: 8px solid var(--color-primary);
    border-radius: 0;
    background: var(--color-surface);
    box-shadow: none;
}

.aenima-public-home--practitioner .aenima-public-home__hero {
    border-top-color: var(--color-secondary);
}

.aenima-public-home__hero--illustrated {
    position: relative;
    display: flex;
    align-items: center;
    min-height: clamp(560px, 48vw, 700px);
    overflow: hidden;
    isolation: isolate;
}

.aenima-public-home__hero-background {
    position: absolute;
    z-index: -1;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 48%;
    pointer-events: none;
}

.aenima-public-home__hero--illustrated .aenima-public-home__hero-copy {
    width: min(59%, 760px);
}

.aenima-public-home__hero-copy,
.aenima-public-home__hero-panel,
.aenima-public-home__feature,
.aenima-public-home__trust > *,
.aenima-public-home__closing > * {
    min-width: 0;
}

.aenima-public-home__hero h1 {
    max-width: 790px;
    margin: 12px 0 20px;
    color: var(--color-primary-strong);
    font-size: clamp(1.95rem, 3.6vw, 3rem);
    letter-spacing: -.035em;
    line-height: 1.06;
}

.aenima-public-home--practitioner .aenima-public-home__hero .aenima-public-home__eyebrow-label {
    position: relative;
    display: flex;
    width: max-content;
    max-width: 100%;
    margin-bottom: calc(38px + var(--ui-space-3, 12px) + var(--ui-space-4, 16px));
}

.aenima-public-home--practitioner .aenima-public-home__hero .aenima-public-home__eyebrow-label::after {
    position: absolute;
    top: calc(100% + var(--ui-space-3, 12px));
    left: 50%;
    width: 1px;
    height: 38px;
    background: var(--color-secondary-strong);
    content: '';
}

.aenima-public-home__title-accent {
    color: var(--color-secondary-strong);
    font-weight: 800;
}

.aenima-public-home__section-title-accent {
    color: var(--color-secondary-strong);
    font-weight: 900;
}

.aenima-public-home__eyebrow-label {
    align-items: center;
    display: inline-flex;
    gap: 9px;
    margin: 0 0 16px;
    padding: 8px 12px;
    border: 1px solid var(--aenima-public-eyebrow-border, rgb(var(--color-primary-rgb) / .18));
    border-radius: var(--ui-radius-pill, 999px);
    background: var(--aenima-public-eyebrow-bg, var(--color-primary-soft));
    color: var(--aenima-public-eyebrow-color, var(--color-primary-deep));
    font-size: var(--font-size-caption, .875rem);
    font-weight: var(--font-weight-label, 800);
    letter-spacing: .035em;
    line-height: 1.2;
    text-transform: uppercase;
}

.aenima-public-home__eyebrow-label svg {
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.aenima-public-home__eyebrow-label--rose {
    --aenima-public-eyebrow-bg: var(--color-secondary-faint);
    --aenima-public-eyebrow-border: rgb(var(--color-secondary-rgb) / .22);
    --aenima-public-eyebrow-color: var(--color-secondary-deep);
}

.aenima-public-home__eyebrow-label--teal {
    --aenima-public-eyebrow-bg: var(--color-primary-soft);
    --aenima-public-eyebrow-border: rgb(var(--color-primary-rgb) / .2);
    --aenima-public-eyebrow-color: var(--color-primary-deep);
}

.aenima-public-home__eyebrow-label--gold {
    --aenima-public-eyebrow-bg: rgb(244 206 85 / .22);
    --aenima-public-eyebrow-border: rgb(244 206 85 / .48);
    --aenima-public-eyebrow-color: #60470d;
}

.aenima-public-home__eyebrow-label--violet {
    --aenima-public-eyebrow-bg: var(--color-highlight-soft);
    --aenima-public-eyebrow-border: rgb(var(--color-highlight-rgb) / .24);
    --aenima-public-eyebrow-color: var(--color-highlight-strong);
}

.aenima-public-home__eyebrow-label--light {
    --aenima-public-eyebrow-bg: rgb(var(--color-white-rgb) / .12);
    --aenima-public-eyebrow-border: rgb(var(--color-white-rgb) / .24);
    --aenima-public-eyebrow-color: var(--color-surface);
}

.aenima-public-home__lead {
    max-width: 720px;
    margin: 0;
    color: var(--color-text-soft);
    font-size: clamp(1rem, 1.6vw, 1.15rem);
    line-height: 1.58;
}

.aenima-public-home__lead-opening,
.aenima-public-home__lead-accent {
    color: var(--color-primary-strong);
    font-weight: 800;
}

.aenima-public-home__lead-opening,
.aenima-public-home__lead-line {
    display: block;
}

.aenima-public-home__lead-opening {
    margin-bottom: 5px;
}

.aenima-public-home__actions {
    margin-top: 30px;
}

.aenima-public-home__hero-panel {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 26px;
    padding: 28px;
    border: 1px solid rgb(var(--color-primary-rgb) / .18);
    border-radius: var(--radius-lg);
    background: var(--color-primary-soft);
    color: var(--color-primary-strong);
}

.aenima-public-home--practitioner .aenima-public-home__hero-panel {
    border-color: rgb(var(--color-secondary-rgb) / .3);
    background: var(--color-secondary-faint);
}

.aenima-public-home__hero-panel--image {
    align-self: start;
    aspect-ratio: 2 / 3;
    display: block;
    position: relative;
    width: 100%;
    padding: 0;
    overflow: hidden;
}

.aenima-public-home__hero-slideshow {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow: hidden;
    border-radius: inherit;
    background: var(--color-secondary-faint);
}

.aenima-public-home__hero-slide {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    animation: aenima-public-hero-slide 15s ease-in-out infinite;
}

.aenima-public-home__hero-slide:nth-child(1) {
    animation-delay: 0s;
}

.aenima-public-home__hero-slide:nth-child(2) {
    animation-delay: 5s;
}

.aenima-public-home__hero-slide:nth-child(3) {
    animation-delay: 10s;
}

@keyframes aenima-public-hero-slide {
    0%, 30% { opacity: 1; }
    34%, 96% { opacity: 0; }
    100% { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .aenima-public-home__hero-slide {
        animation: none;
    }

    .aenima-public-home__hero-slide:first-child {
        opacity: 1;
    }
}

.aenima-public-home__hero-panel-image {
    display: block;
    width: 100%;
    max-width: 430px;
    height: auto;
    object-fit: contain;
}

.aenima-public-home__hero-mark {
    display: grid;
    place-items: center;
    width: 86px;
    height: 86px;
    border-radius: 24px;
    background: var(--color-surface);
    box-shadow: var(--shadow);
}

.aenima-public-home__hero-mark img {
    width: 66px;
    height: 66px;
    object-fit: contain;
}

.aenima-public-home__hero-panel strong {
    display: block;
    margin-bottom: 9px;
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    line-height: 1.15;
}

.aenima-public-home__hero-panel p {
    margin: 0;
    color: var(--color-text-soft);
    line-height: 1.55;
}

.aenima-public-home__benefits {
    padding: clamp(58px, 8vw, 96px) var(--aenima-public-shell-gutter);
    background: var(--color-surface);
    scroll-margin-top: 24px;
}

.aenima-public-home:not(.aenima-public-home--practitioner) .aenima-public-home__benefits {
    background: var(--color-primary-soft);
}

.aenima-public-home__professions {
    padding: clamp(56px, 7vw, 84px) var(--aenima-public-shell-gutter);
    border-bottom: 1px solid var(--color-border);
    background: var(--color-secondary-faint);
}

.aenima-public-home__professions-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 28px;
}

.aenima-public-home__professions-header .aenima-public-home__section-heading {
    margin-bottom: 0;
}

.aenima-public-home__carousel-controls {
    display: flex;
    flex: 0 0 auto;
    gap: 10px;
}

.aenima-public-home__carousel-control {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid rgb(var(--color-primary-rgb) / .35);
    border-radius: 50%;
    background: var(--color-surface);
    color: var(--color-primary-strong);
    cursor: pointer;
    box-shadow: var(--shadow-sm);
    transition: border-color .18s ease, background-color .18s ease, color .18s ease, transform .18s ease;
}

.aenima-public-home__carousel-control svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.aenima-public-home__carousel-control--next svg {
    transform: rotate(180deg);
}

.aenima-public-home__carousel-control:hover,
.aenima-public-home__carousel-control:focus-visible {
    border-color: var(--color-primary);
    background: var(--color-primary);
    color: var(--color-surface);
    transform: translateY(-1px);
}

.aenima-public-home__profession-grid {
    --aenima-profession-card-width: calc((100% - 36px) / 3);
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(var(--aenima-profession-card-width), var(--aenima-profession-card-width));
    gap: 18px;
    max-width: 100%;
    padding: 2px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
}

.aenima-public-home__profession-grid::-webkit-scrollbar {
    display: none;
}

.aenima-public-home__profession {
    min-width: 0;
    overflow: hidden;
    border: 1px solid rgb(var(--color-primary-rgb) / .2);
    border-radius: var(--radius-lg);
    background: var(--color-surface);
    box-shadow: var(--shadow);
}

.aenima-public-home__profession-visual {
    position: relative;
    aspect-ratio: 4 / 3;
    margin: 0;
    overflow: hidden;
    background: var(--color-primary-soft);
}

.aenima-public-home__profession-visual img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.aenima-public-home__profession-title {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    padding: 15px 20px 14px;
    background: linear-gradient(90deg, rgb(var(--color-primary-rgb) / .86) 0%, rgb(var(--color-primary-rgb) / .68) 72%, rgb(var(--color-primary-rgb) / .22) 100%);
}

.aenima-public-home__profession-title h3 {
    margin: 0;
    color: var(--color-surface);
    font-size: clamp(1.08rem, 1.7vw, 1.35rem);
    line-height: 1.25;
    text-shadow: 0 1px 2px rgb(0 0 0 / .28);
}

.aenima-public-home__section-heading {
    max-width: 760px;
    margin-bottom: 28px;
}

.aenima-public-home__section-heading h2,
.aenima-public-home__trust h2,
.aenima-public-home__closing h2 {
    margin: 8px 0 0;
    color: var(--color-primary-strong);
    font-size: clamp(1.5rem, 2.35vw, 2.1rem);
    letter-spacing: -.025em;
    line-height: 1.12;
}

.aenima-public-home__offers {
    padding: clamp(50px, 7vw, 82px) var(--aenima-public-shell-gutter);
    scroll-margin-top: 24px;
}

.aenima-public-home__section-heading > p:last-child {
    margin: var(--ui-space-3, 12px) 0 0;
    color: var(--color-text-soft);
    line-height: 1.55;
}

.aenima-public-home__section-heading > .aenima-public-home__section-text {
    margin-top: 0;
    padding-top: 10px;
}

.aenima-public-home__benefits .aenima-public-home__section-text {
    padding-top: 20px;
}

.aenima-public-home__product-showcase {
    display: grid;
    grid-template-columns: minmax(0, 1.9fr) minmax(250px, .9fr);
    gap: clamp(24px, 4vw, 56px);
    align-items: center;
    margin: 12px auto clamp(42px, 6vw, 68px);
    padding: clamp(20px, 3vw, 36px);
    border: 1px solid var(--color-border);
    border-radius: calc(var(--radius) + 8px);
    background: var(--color-secondary-faint);
    box-shadow: var(--shadow-sm);
}

.aenima-public-home__product-device {
    min-width: 0;
    margin: 0;
}

.aenima-public-home__product-device img {
    display: block;
    width: 100%;
    height: auto;
}

.aenima-public-home__product-device picture,
.aenima-public-home__client-booking-visual picture { display: block; min-width: 0; max-width: 100%; }

.aenima-public-home__product-device--desktop {
    align-self: center;
}

.aenima-public-home__product-device--mobile {
    width: min(100%, 430px);
    justify-self: center;
}

.aenima-public-home__workflow {
    --aenima-public-workflow-gutter: max(20px, calc((100vw - 1240px) / 2));
    padding: 0 var(--aenima-public-workflow-gutter) clamp(44px, 6vw, 68px);
    border-block: 1px solid rgb(var(--color-primary-rgb) / .16);
    background: var(--color-primary-soft);
    scroll-margin-top: 24px;
}

.aenima-public-home__workflow-intro {
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: flex-start;
    min-height: clamp(540px, 55vw, 700px);
    width: calc(100% + 2 * var(--aenima-public-workflow-gutter));
    margin-inline: calc(-1 * var(--aenima-public-workflow-gutter));
    padding-top: clamp(70px, 8vw, 110px);
    overflow: hidden;
}

.aenima-public-home__workflow-heading {
    position: relative;
    z-index: 1;
    min-width: 0;
    width: min(1160px, calc(100% - 2 * var(--aenima-public-workflow-gutter)));
    margin: 0 auto;
    text-align: left;
}

.aenima-public-home__workflow-heading h2 {
    max-width: 470px;
    margin: 8px 0 0;
    color: var(--color-primary-strong);
    font-size: clamp(1.7rem, 3vw, 2.5rem);
    font-weight: 900;
    letter-spacing: -.025em;
    line-height: 1.14;
}

.aenima-public-home__workflow-heading > p:last-child {
    max-width: 460px;
    margin: 14px 0 0;
    color: var(--color-text-soft);
    font-size: var(--font-size-hero-intro, clamp(.98rem, 1.5vw, 1.12rem));
    line-height: 1.6;
}

.aenima-public-home__workflow-visual {
    position: absolute;
    z-index: 0;
    inset: 0;
    margin: 0;
}

.aenima-public-home__workflow-visual picture {
    display: block;
    width: 100%;
    height: 100%;
}

.aenima-public-home__workflow-visual img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.aenima-public-home__workflow-list {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 32px 18px;
    width: min(1040px, 100%);
    margin: clamp(30px, 4vw, 42px) auto 0;
    padding: 0;
    list-style: none;
}

.aenima-public-home__workflow-list::before,
.aenima-public-home__workflow-list::after {
    position: absolute;
    right: 12.5%;
    left: 12.5%;
    height: 2px;
    background: rgb(var(--color-primary-rgb) / .34);
    content: "";
}

.aenima-public-home__workflow-list::before {
    top: 23px;
}

.aenima-public-home__workflow-list::after {
    top: calc(50% + 39px);
}

.aenima-public-home__workflow-step {
    position: relative;
    display: grid;
    grid-template-rows: 46px minmax(0, 1fr);
    align-items: start;
    min-width: 0;
}

.aenima-public-home__workflow-step:nth-child(5) { grid-column: 4; grid-row: 2; }
.aenima-public-home__workflow-step:nth-child(6) { grid-column: 3; grid-row: 2; }
.aenima-public-home__workflow-step:nth-child(7) { grid-column: 2; grid-row: 2; }
.aenima-public-home__workflow-step:nth-child(8) { grid-column: 1; grid-row: 2; }

.aenima-public-home__workflow-list--spotlight {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr));
    grid-template-rows: auto;
    width: min(1180px, 100%);
    margin-top: clamp(34px, 5vw, 54px);
}

.aenima-public-home__workflow-list--spotlight::before {
    display: block;
    right: 10%;
    left: 10%;
}

.aenima-public-home__workflow-list--spotlight::after,
.aenima-public-home__workflow-list--spotlight .aenima-public-home__workflow-step:nth-child(4)::before {
    display: none;
}

.aenima-public-home__workflow-list--spotlight .aenima-public-home__workflow-step:nth-child(5) {
    grid-column: auto;
    grid-row: auto;
}

.aenima-public-home__workflow-step:nth-child(4)::before {
    position: absolute;
    z-index: 0;
    top: 23px;
    left: 50%;
    width: 2px;
    height: calc(100% + 32px);
    background: rgb(var(--color-primary-rgb) / .34);
    content: "";
    transform: translateX(-50%);
}

.aenima-public-home__workflow-marker {
    position: relative;
    z-index: 2;
    display: grid;
    place-items: center;
    justify-self: center;
    width: 46px;
    height: 46px;
    border: 4px solid var(--color-primary-soft);
    border-radius: 50%;
    background: var(--color-primary);
    color: var(--color-surface);
    font-size: .9rem;
    font-weight: 950;
    box-shadow: 0 7px 18px rgb(var(--color-primary-rgb) / .22);
}

.aenima-public-home__workflow-card {
    display: grid;
    position: relative;
    z-index: 1;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 12px;
    min-width: 0;
    height: 100%;
    min-height: 154px;
    padding: 17px;
    border: 1px solid rgb(var(--color-primary-rgb) / .18);
    border-radius: 18px;
    background: var(--color-surface);
    box-shadow: 0 12px 28px rgb(var(--color-primary-rgb) / .09);
}

.aenima-public-home__workflow-icon {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 13px;
    background: var(--color-secondary-soft);
    color: var(--color-secondary-deep);
}

.aenima-public-home__workflow-icon svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.aenima-public-home__workflow-card h3 {
    margin: 1px 0 0;
    color: var(--color-primary-strong);
    font-size: .94rem;
    font-weight: 800;
    line-height: 1.3;
}

.aenima-public-home__workflow-card p {
    margin: 7px 0 0;
    color: var(--color-text-soft);
    font-size: .8rem;
    line-height: 1.5;
}

.aenima-public-home__workflow-controls {
    display: none;
}

.aenima-public-home__client-booking {
    padding: clamp(58px, 8vw, 96px) var(--aenima-public-shell-gutter);
    border-block: 1px solid rgb(var(--color-secondary-rgb) / .22);
    background: var(--color-highlight-soft);
    scroll-margin-top: 24px;
}

.aenima-public-home__client-booking-heading {
    max-width: 820px;
    margin: 0 auto clamp(42px, 6vw, 68px);
    text-align: center;
}

.aenima-public-home__client-booking-heading h2 {
    margin: 8px 0 0;
    color: var(--color-primary-strong);
    font-size: clamp(1.7rem, 3vw, 2.5rem);
    font-weight: 900;
    letter-spacing: -.025em;
    line-height: 1.14;
}

.aenima-public-home__client-booking-heading h2 + p {
    max-width: 720px;
    margin: clamp(24px, 2.6vw, 34px) auto 0;
    color: var(--color-text-soft);
    font-size: var(--font-size-hero-intro, clamp(.98rem, 1.5vw, 1.12rem));
    line-height: 1.6;
}

.aenima-public-home__client-booking-action {
    margin: 22px auto 0;
}

.aenima-public-home__client-booking-step {
    display: grid;
    grid-template-columns: minmax(0, 1.28fr) minmax(300px, .72fr);
    gap: clamp(34px, 6vw, 76px);
    align-items: center;
    width: min(1180px, 100%);
    margin: 0 auto;
}

.aenima-public-home__client-booking-step + .aenima-public-home__client-booking-step {
    margin-top: clamp(58px, 8vw, 100px);
}

.aenima-public-home__client-booking-step--reverse {
    grid-template-columns: minmax(300px, .72fr) minmax(0, 1.28fr);
}

.aenima-public-home__client-booking-visual {
    min-width: 0;
    margin: 0;
    padding: 10px;
    border: 1px solid rgb(var(--color-primary-rgb) / .18);
    border-radius: 22px;
    background: var(--color-surface);
    box-shadow: 0 18px 42px rgb(var(--color-primary-rgb) / .13);
}

.aenima-public-home__client-booking-visual img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 14px;
}

.aenima-public-home__client-booking-visual--duo {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.aenima-public-home__client-booking-visual--duo img {
    height: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: center;
}

.aenima-public-home__client-booking-copy {
    min-width: 0;
}

.aenima-public-home__client-booking-copy > span {
    display: inline-block;
    margin-bottom: 14px;
    color: var(--color-secondary-deep);
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .075em;
    text-transform: uppercase;
}

.aenima-public-home__client-booking-copy h3 {
    margin: 0;
    color: var(--color-primary-strong);
    font-size: clamp(1.45rem, 2.5vw, 2rem);
    font-weight: 900;
    letter-spacing: -.02em;
    line-height: 1.2;
}

.aenima-public-home__client-booking-copy p {
    margin: 18px 0 0;
    color: var(--color-text-soft);
    line-height: 1.65;
}

.aenima-public-home__client-booking-copy ul {
    display: grid;
    gap: 10px;
    margin: 22px 0 0;
    padding: 0;
    list-style: none;
}

.aenima-public-home__client-booking-copy li {
    position: relative;
    padding-left: 26px;
    color: var(--color-primary-strong);
    font-size: .9rem;
    font-weight: 750;
    line-height: 1.45;
}

.aenima-public-home__client-booking-copy li::before {
    position: absolute;
    top: .18em;
    left: 0;
    display: grid;
    place-items: center;
    width: 17px;
    height: 17px;
    border-radius: 50%;
    background: var(--color-primary);
    color: var(--color-surface);
    content: "✓";
    font-size: .68rem;
    font-weight: 900;
}

.aenima-public-home__spotlight-cta {
    box-sizing: border-box;
    display: grid;
    justify-items: center;
    gap: 14px;
    width: min(900px, 100%);
    margin: clamp(58px, 8vw, 92px) auto 0;
    padding: clamp(28px, 5vw, 46px);
    border: 1px solid rgb(var(--color-primary-rgb) / .26);
    border-radius: 22px;
    background: var(--color-surface);
    box-shadow: 0 16px 38px rgb(var(--color-primary-rgb) / .1);
    text-align: center;
}

.aenima-public-home__spotlight-cta h3 {
    margin: 0;
    color: var(--color-primary-strong);
    font-size: clamp(1.45rem, 2.6vw, 2rem);
    font-weight: 900;
    letter-spacing: -.02em;
    line-height: 1.2;
}

.aenima-public-home__spotlight-cta-image {
    display: block;
    height: auto;
    max-width: min(190px, 44vw);
    width: 100%;
}

.aenima-public-home__spotlight-cta p {
    max-width: 690px;
    margin: 0;
    color: var(--color-text-soft);
    line-height: 1.6;
}

.aenima-public-home__spotlight-cta .btn {
    width: fit-content;
    margin-top: 4px;
}

.aenima-public-home__health-record {
    box-sizing: border-box;
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
    align-items: center;
    gap: clamp(24px, 4vw, 56px);
    width: min(82%, 1180px);
    margin: clamp(44px, 7vw, 84px) auto;
    padding: clamp(26px, 4vw, 52px);
    border: 1px solid rgb(var(--color-primary-rgb) / .13);
    border-radius: 28px;
    background: #f8f4ec;
    box-shadow: 0 18px 44px rgb(var(--color-primary-rgb) / .08);
}

.aenima-public-home__health-record-copy {
    min-width: 0;
}

.aenima-public-home__health-record-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin: 0 0 23px;
    padding: 8px 12px;
    border-radius: var(--ui-radius-pill, 999px);
    background: var(--color-secondary-faint);
    color: var(--color-primary-strong);
    font-size: var(--font-size-caption, .875rem);
    font-weight: 800;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.aenima-public-home__health-record-eyebrow svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}

.aenima-public-home__health-record h2 {
    max-width: 15ch;
    margin: 0;
    color: var(--color-primary-strong);
    font-size: var(--font-size-page-title, clamp(2rem, 4vw, 3.25rem));
    font-weight: var(--font-weight-regular, 400);
    letter-spacing: -.035em;
    line-height: 1.12;
}

.aenima-public-home__health-record-intro {
    max-width: 56ch;
    margin: 21px 0 0;
    color: var(--color-text-soft);
    font-size: var(--font-size-body, 1rem);
    line-height: 1.6;
}

.aenima-public-home__health-record-intro-emphasis {
    color: var(--color-primary-strong);
    font-weight: var(--font-weight-title, 700);
}

.aenima-public-home__health-record-benefits {
    display: grid;
    gap: 15px;
    margin: 29px 0 0;
    padding: 0;
    list-style: none;
}

.aenima-public-home__health-record-benefits li {
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr);
    gap: 11px;
    align-items: start;
    color: var(--color-primary-strong);
    font-size: var(--font-size-body, 1rem);
    font-weight: 650;
    line-height: 1.45;
}

.aenima-public-home__health-record-benefits li span {
    display: grid;
    place-items: center;
    width: 25px;
    height: 25px;
    border-radius: 50%;
    background: #d8e9de;
    color: var(--color-primary-strong);
    font-size: var(--font-size-caption, .85rem);
    font-weight: 900;
}

.aenima-public-home__health-record-action.btn {
    width: fit-content;
    max-width: 100%;
    margin-top: 32px;
    border-radius: var(--ui-radius-pill, 999px);
}

.aenima-public-home__health-record-visual {
    position: relative;
    min-width: 0;
    height: clamp(390px, 43vw, 525px);
    margin: 0;
    border-radius: 24px;
    background: #e8e2d7;
}

.aenima-public-home__health-record-photo {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    object-fit: cover;
    object-position: center 29%;
}

@media (max-width: 850px) {
    .aenima-public-home__health-record {
        grid-template-columns: minmax(0, 1fr);
        width: calc(100% - 32px);
        padding: 28px 24px;
        border-radius: 22px;
    }

    .aenima-public-home__health-record h2 {
        max-width: 20ch;
    }

    .aenima-public-home__health-record-visual {
        height: clamp(360px, 75vw, 480px);
    }
}

.practitioner-reference-callout {
    position: relative;
    isolation: isolate;
    box-sizing: border-box;
    width: min(82%, 1180px);
    margin: clamp(44px, 7vw, 84px) auto;
    padding: clamp(34px, 4.5vw, 52px);
    overflow: clip;
    border: 1px solid rgb(var(--color-primary-rgb) / .15);
    border-radius: 28px;
    background: #edf4f1;
    box-shadow: 0 18px 44px rgb(var(--color-primary-rgb) / .1);
}

.practitioner-reference-callout--public {
    background: var(--color-surface);
}

.practitioner-reference-callout__paw {
    position: absolute;
    z-index: -1;
    top: -22%;
    right: 1%;
    display: block;
    width: min(31vw, 390px);
    height: auto;
    fill: none;
    stroke: var(--color-primary);
    stroke-width: 1.15;
    opacity: .09;
    pointer-events: none;
    transform: rotate(-13deg);
}

.practitioner-reference-callout__content {
    max-width: 780px;
}

.practitioner-reference-callout h2 {
    margin: 0;
    color: var(--color-primary-strong);
    font-size: var(--font-size-page-title, clamp(2rem, 4vw, 3.25rem));
    font-weight: 900;
    letter-spacing: -.035em;
    line-height: 1.08;
}

.practitioner-reference-callout__title-accent {
    color: var(--color-secondary-strong);
    font: inherit;
}

.practitioner-reference-callout p {
    max-width: 62ch;
    margin: 18px 0 0;
    color: var(--color-text-soft);
    font-size: var(--font-size-body, 1rem);
    line-height: 1.65;
}

.practitioner-reference-callout__action.btn {
    width: fit-content;
    margin-top: 30px;
    border-radius: var(--ui-radius-pill, 999px);
}

.practitioner-reference-modal {
    overflow-y: auto;
}

.practitioner-reference-modal__panel {
    width: min(640px, 100%);
    max-height: calc(100vh - 40px);
    overflow-y: auto;
}

.practitioner-reference-modal__header > div,
.practitioner-reference-step__heading,
.practitioner-reference-fields {
    display: grid;
    gap: 10px;
}

.practitioner-reference-modal__eyebrow,
.practitioner-reference-step__heading > span {
    color: var(--color-secondary-strong);
    font-size: var(--font-size-label, .76rem);
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.practitioner-reference-modal__progress {
    height: 4px;
    margin: 18px 0 24px;
    overflow: hidden;
    border-radius: var(--ui-radius-pill, 999px);
    background: rgb(var(--color-primary-rgb) / .1);
}

.practitioner-reference-modal__progress span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--color-secondary);
    transition: width var(--ui-motion-fast, .18s) ease;
}

.practitioner-reference-step__heading {
    padding-bottom: 18px;
    border-bottom: 1px solid var(--color-border);
}

.practitioner-reference-step__heading h3,
.practitioner-reference-modal__success h3 {
    margin: 0;
    color: var(--color-primary-strong);
    font-size: var(--font-size-section-title, 1.45rem);
}

.practitioner-reference-step__heading p {
    margin: 0;
    color: var(--color-text-soft);
    line-height: 1.55;
}

.practitioner-reference-fields {
    margin-top: 20px;
}

.practitioner-reference-fields--pair,
.practitioner-reference-fields--postal {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.practitioner-reference-fields--siret {
    width: min(100%, 340px);
    gap: 7px;
}

.practitioner-reference-fields--siret .input {
    width: min(100%, 22ch);
}

.practitioner-reference-siret-feedback {
    min-height: 1.4em;
    color: var(--color-text-soft);
    font-size: var(--font-size-help, .78rem);
    font-weight: var(--font-weight-label, 650);
    line-height: 1.4;
}

.practitioner-reference-siret-feedback[data-state="success"] { color: #246333; }
.practitioner-reference-siret-feedback[data-state="error"] { color: var(--color-danger, #a22b2b); }

.practitioner-reference-fields--official {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(120px, .55fr);
}

.practitioner-reference-official-value {
    display: block;
    min-height: 45px;
    padding: 11px 13px;
    border: 1px solid var(--color-border);
    border-radius: var(--ui-radius-control, 10px);
    background: var(--color-surface-muted);
    color: var(--color-primary-strong);
    font-size: var(--font-size-control, .9rem);
    font-weight: var(--font-weight-label, 700);
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.practitioner-reference-fields--postal {
    margin-top: 0;
}

.practitioner-reference-field--medium {
    max-width: 390px;
}

.ui-practice-combobox {
    position: relative;
    width: min(100%, 390px);
    min-width: 0;
}

.ui-practice-combobox > .field {
    margin: 0;
}

.ui-practice-combobox__options {
    position: relative;
    z-index: 1;
    width: min(100%, 390px);
    max-height: 230px;
    overflow-y: auto;
    box-sizing: border-box;
    margin-top: 6px;
    padding: var(--ui-space-2, 8px);
    border: 1px solid var(--color-border);
    border-radius: var(--ui-radius-card, 16px);
    background: var(--color-surface);
    box-shadow: var(--ui-shadow-card);
}

.ui-practice-combobox__options[hidden],
.ui-practice-combobox__options button[hidden] {
    display: none;
}

.ui-practice-combobox__options button {
    display: block;
    width: 100%;
    min-height: 42px;
    padding: 10px 12px;
    border: 0;
    border-radius: var(--ui-radius-control, 10px);
    background: transparent;
    color: var(--color-text);
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.ui-practice-combobox__options button:hover,
.ui-practice-combobox__options button[aria-selected="true"] {
    background: var(--color-primary-soft);
    color: var(--color-primary-strong);
}

.ui-practice-combobox__options button:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: -2px;
}

.practitioner-reference-practices {
    margin: 20px 0 0;
    padding: 0;
    border: 0;
}

.practitioner-reference-practices legend {
    margin-bottom: 10px;
    color: var(--color-text-soft);
    font-size: var(--font-size-label, .8rem);
    font-weight: 800;
}

.practitioner-reference-practices > div {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

.practitioner-reference-practices label {
    position: relative;
    cursor: pointer;
}

.practitioner-reference-practices input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.practitioner-reference-practices span {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 8px 13px;
    border: 1px solid var(--color-border);
    border-radius: var(--ui-radius-pill, 999px);
    background: var(--color-surface);
    color: var(--color-text);
    font-size: var(--font-size-control, .84rem);
    font-weight: 750;
}

.practitioner-reference-practices input:checked + span {
    border-color: var(--color-primary);
    background: rgb(var(--color-primary-rgb) / .1);
    color: var(--color-primary-strong);
}

.practitioner-reference-practices input:focus-visible + span {
    outline: 3px solid rgb(var(--color-secondary-rgb) / .28);
    outline-offset: 2px;
}

.practitioner-reference-phone {
    max-width: 520px;
}

.practitioner-reference-modal__actions {
    margin-top: 24px;
}

.practitioner-reference-modal__status {
    margin: 18px 0 0;
    padding: 10px 12px;
    border: 1px solid #d9aaa5;
    border-radius: 9px;
    background: #f9ecea;
    color: #873d37;
    font-weight: 750;
}

.practitioner-reference-modal__trap {
    position: absolute;
    left: -10000px;
}

.practitioner-reference-modal__success {
    display: grid;
    justify-items: start;
    gap: 12px;
    padding: 22px 0 4px;
}

.practitioner-reference-modal__success > span {
    color: #2d9d67;
    font-size: var(--font-size-page-title, 2.5rem);
    font-weight: 900;
}

.practitioner-reference-modal__success p { margin: 0 0 8px; color: var(--color-text-soft); line-height: 1.55; }

@media (max-width: 620px) {
    .practitioner-reference-fields--pair,
    .practitioner-reference-fields--postal,
    .practitioner-reference-fields--official { grid-template-columns: 1fr; }
    .practitioner-reference-modal { padding: 10px; }
    .practitioner-reference-modal__panel { max-height: calc(100vh - 20px); padding: 20px 18px; }
}

.aenima-public-home__section-heading--centered {
    margin-right: auto;
    margin-left: auto;
    text-align: center;
}

.aenima-public-home__section-heading--centered > p:last-child {
    margin-top: 12px;
}

.aenima-public-home__offers {
    border-top: 1px solid var(--color-border);
    background: var(--color-primary-soft);
}

.aenima-public-home__hero--text {
    grid-template-columns: minmax(0, 1fr);
}

.aenima-public-home__comparison-annual {
    display: block;
    margin-top: var(--ui-space-2);
    color: var(--color-text);
    font-size: var(--font-size-help);
    font-weight: var(--font-weight-body);
    white-space: normal;
}

.aenima-public-home__actions--centered {
    justify-content: center;
}

.aenima-public-home__actions--equal {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    width: fit-content;
    max-width: 100%;
}

@media (max-width: 640px) {
    .aenima-public-home__actions--equal {
        grid-auto-flow: row;
    }
}

.aenima-public-home__credit-packs {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
    gap: var(--ui-space-4);
    max-width: 1020px;
    margin: var(--ui-space-8) auto;
}

.aenima-public-home__credit-packs > div {
    min-width: 0;
    text-align: center;
}

.aenima-public-home__credit-packs dt {
    font-size: var(--font-size-card-title);
    font-weight: var(--font-weight-title);
}

.aenima-public-home__credit-packs dd {
    display: grid;
    gap: var(--ui-space-2);
    margin: var(--ui-space-4) 0 0;
}

.aenima-public-home__credit-packs dd strong {
    color: var(--color-primary-strong);
    font-size: var(--font-size-section-title);
}

.aenima-public-home__credit-packs dd span,
.aenima-public-home__credit-note {
    color: var(--color-text-soft);
    font-size: var(--font-size-help);
}

.aenima-public-home__credit-note {
    max-width: 1020px;
    margin: var(--ui-space-4) auto 0;
    text-align: center;
}

.aenima-public-home__offer-feature-brands {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 22px;
}

.aenima-public-home__offer-feature-brand {
    display: block;
    flex: 0 0 auto;
    width: auto;
}

.aenima-public-home__offer-feature-brand--apple {
    height: 20px;
}

.aenima-public-home__offer-feature-brand--google {
    height: 19px;
}

.aenima-public-home__offer-comparison {
    max-width: 1020px;
    margin: 38px auto 0;
}

.aenima-public-home__offer-comparison-heading {
    margin-bottom: calc(2 * var(--ui-space-8, 32px));
    text-align: center;
}

.aenima-public-home__offer-comparison-heading h3 {
    margin: 0;
    color: var(--color-primary-strong);
    font-size: clamp(1.7rem, 3vw, 2.35rem);
    font-weight: 850;
    letter-spacing: -.025em;
}

.aenima-public-home__offer-comparison-heading p {
    margin: 12px 0 0;
    color: var(--color-text-soft);
}

.aenima-public-home__offer-comparison-table {
    overflow: visible;
    border: 1px solid rgb(var(--color-primary-rgb) / .2);
    border-radius: 22px;
    background: var(--color-surface);
    box-shadow: 0 16px 40px rgb(var(--color-primary-rgb) / .11);
}

.aenima-public-home__offer-comparison table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    table-layout: fixed;
}

.aenima-public-home__offer-comparison thead {
    position: sticky;
    z-index: 30;
    top: 28px;
    box-shadow: 0 10px 22px rgb(var(--color-primary-rgb) / .14);
}

.aenima-public-home__offer-comparison th,
.aenima-public-home__offer-comparison td {
    min-width: 0;
    padding: 15px 18px;
    border-bottom: 1px solid var(--color-border);
    overflow-wrap: anywhere;
}

.aenima-public-home__offer-comparison thead th {
    position: relative;
    padding-top: 42px;
    background: var(--color-offer-comparison);
    color: rgb(var(--color-white-rgb));
    font-size: 1.12rem;
    font-weight: 900;
    text-align: center;
}

.zoodja-offer-icon img {
    mix-blend-mode: screen;
}

.aenima-public-home__comparison-offer-icon {
    position: absolute;
    z-index: 1;
    top: -26px;
    left: 50%;
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    border: 1px solid var(--color-secondary-strong);
    border-radius: 50%;
    background: var(--color-secondary-strong);
    transform: translateX(-50%);
}

.aenima-public-home__comparison-offer-icon img {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    object-fit: cover;
}

.aenima-public-home__offer-comparison thead th:first-child {
    width: 25%;
    text-align: left;
}

.aenima-public-home__offer-comparison thead th.is-premium {
    background: var(--color-offer-comparison);
}

@media (min-width: 681px) {
    .aenima-public-home__offer-comparison thead th:first-child {
        border-top-left-radius: 21px;
    }

    .aenima-public-home__offer-comparison thead th:last-child {
        border-top-right-radius: 21px;
    }
}

.aenima-public-home__comparison-offer-name {
    display: block;
}

.aenima-public-home__comparison-offer-name {
    font-size: 1.15rem;
    font-weight: 400;
    letter-spacing: -.015em;
    white-space: nowrap;
}

.aenima-public-home__comparison-no-commitment {
    display: block;
    margin-top: var(--ui-space-1, 4px);
    color: var(--color-surface);
    font-size: var(--font-size-caption, .75rem);
    font-weight: var(--font-weight-body, 400);
    font-style: italic;
    text-align: center;
}

@media (min-width: 681px) and (max-width: 900px) {
    .aenima-public-home__offer-comparison thead th {
        padding-inline: 5px;
    }

    .aenima-public-home__comparison-offer-name {
        font-size: .88rem;
    }
}

@media (max-width: 680px) {
    .aenima-public-home__comparison-offer-name {
        font-size: .84rem;
    }
}

.aenima-public-home__comparison-price {
    display: inline-flex;
    align-items: baseline;
    justify-content: center;
    gap: .32em;
    margin-top: 9px;
    white-space: nowrap;
}

.aenima-public-home__comparison-price strong {
    font-size: clamp(1.5rem, 2.4vw, 1.82rem);
    font-weight: 950;
    font-synthesis: weight;
    letter-spacing: -.035em;
    line-height: 1;
    -webkit-text-stroke: .35px currentcolor;
}

.aenima-public-home__comparison-price small {
    color: rgb(var(--color-white-rgb));
    font-size: .72rem;
    font-weight: 400;
    letter-spacing: .035em;
}

.aenima-public-home__offer-comparison tbody th {
    color: var(--color-text);
    font-size: .88rem;
    font-weight: 600;
    text-align: left;
}

.aenima-public-home__offer-comparison tbody td {
    text-align: center;
}

.aenima-public-home__offer-comparison tbody tr:nth-child(even) {
    background: rgb(var(--color-primary-rgb) / .035);
}

.aenima-public-home__offer-comparison tbody tr:last-child th,
.aenima-public-home__offer-comparison tbody tr:last-child td {
    border-bottom: 0;
}

.aenima-public-home__offer-comparison tbody th > span:first-child {
    display: block;
}

.aenima-public-home__offer-comparison tbody th .aenima-public-home__offer-feature-brands {
    margin-top: 7px;
}

.aenima-public-home__offer-comparison tfoot th,
.aenima-public-home__offer-comparison tfoot td {
    padding: 20px 12px;
    border-bottom: 0;
    background: var(--color-surface);
    text-align: center;
}

.aenima-public-home__offer-comparison tfoot .btn {
    width: min(100%, 172px);
    min-height: 44px;
}

.aenima-public-home__offer-comparison tfoot .btn:disabled {
    cursor: not-allowed;
    opacity: .72;
}

.aenima-public-home__comparison-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-width: 92px;
    color: var(--color-primary-strong);
}

.aenima-public-home__comparison-status > span {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: rgb(var(--color-primary-rgb) / .12);
    font-size: .72rem;
    font-weight: 900;
}

.aenima-public-home__comparison-status strong {
    font-size: .8rem;
}

.aenima-public-home__comparison-status.is-included > span {
    width: 26px;
    height: 26px;
    border-radius: 0;
    background: none;
    color: var(--color-offer-included);
    font-size: var(--font-size-comparison-check);
    line-height: 1;
}

.aenima-public-home__comparison-status.is-unavailable {
    color: var(--color-danger);
}

.aenima-public-home__comparison-status.is-unavailable > span {
    background: var(--color-danger-soft);
}

.aenima-public-home__comparison-note {
    display: block;
    margin-top: var(--ui-space-1);
    color: var(--color-text-soft);
    font-size: var(--font-size-help);
    font-weight: var(--font-weight-body);
    text-align: center;
}

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

.aenima-public-home__feature-grid--carousel {
    --aenima-feature-column-width: calc((100% - 28px) / 3);
    display: grid;
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: minmax(var(--aenima-feature-column-width), var(--aenima-feature-column-width));
    gap: 14px;
    max-width: 100%;
    padding: 2px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
}

.aenima-public-home__feature-carousel-shell {
    min-width: 0;
    padding: 16px;
    border: 1px solid rgb(var(--color-primary-rgb) / .14);
    border-radius: calc(var(--radius) + 8px);
    background: rgb(var(--color-primary-rgb) / .055);
    box-shadow: var(--shadow-xs);
}

.aenima-public-home__feature-carousel-toolbar {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 12px;
}

.aenima-public-home__feature-grid--carousel::-webkit-scrollbar {
    display: none;
}

.aenima-public-home__feature-column {
    display: grid;
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 14px;
    min-width: 0;
}

.aenima-public-home__feature-column .aenima-public-home__feature {
    height: 100%;
}

.aenima-public-home__feature {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    min-height: 118px;
    padding: 18px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface);
    box-shadow: var(--shadow-xs);
}

.aenima-public-home__feature-icon {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 14px;
    background: var(--color-primary-soft);
    color: var(--color-primary-strong);
}

.aenima-public-home--practitioner .aenima-public-home__feature-icon {
    background: var(--color-secondary-faint);
    color: var(--color-secondary-strong);
}

.aenima-public-home__feature-icon svg {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.aenima-public-home__feature h3 {
    margin: 0 0 6px;
    color: var(--color-primary-strong);
    font-size: 1.08rem;
    font-weight: 800;
    line-height: 1.3;
}

.aenima-public-home__feature-heading {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    align-items: center;
    min-width: 0;
}

.aenima-public-home__feature-heading h3 {
    min-width: 0;
}

.aenima-public-home__feature-brands {
    display: inline-flex;
    gap: 5px;
    align-items: center;
    margin: 0 0 6px;
}

.aenima-public-home__feature-brands img {
    display: block;
    width: auto;
    height: 1em;
    max-width: 3.8em;
    object-fit: contain;
}

.aenima-public-home__feature p,
.aenima-public-home__trust > p,
.aenima-public-home__closing p {
    margin: 0;
    color: var(--color-text-soft);
    line-height: 1.48;
}

.aenima-public-home__trust {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: clamp(28px, 6vw, 76px);
    align-items: center;
    padding-block: clamp(34px, 6vw, 64px);
    padding-inline: calc(var(--aenima-public-shell-gutter) + clamp(34px, 6vw, 64px));
    border-radius: 0;
    background: var(--color-primary-strong);
    color: var(--color-surface);
    scroll-margin-top: 24px;
}

.aenima-public-home__faq {
    padding: clamp(58px, 8vw, 92px) var(--aenima-public-shell-gutter);
    border-top: 1px solid rgb(var(--color-secondary-rgb) / .22);
    background: var(--color-secondary-faint);
    scroll-margin-top: 24px;
}

.aenima-public-home__faq-inner {
    width: min(980px, 100%);
    margin: 0 auto;
}

.aenima-public-home__faq-list {
    display: grid;
    gap: 12px;
}

.aenima-public-home__faq-item {
    box-sizing: border-box;
    min-width: 0;
    border: 1px solid rgb(var(--color-primary-rgb) / .16);
    border-radius: 16px;
    background: var(--color-surface);
    box-shadow: 0 7px 20px rgb(var(--color-primary-rgb) / .07);
    transition: border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}

.aenima-public-home__faq-item.is-animating {
    transition: height 280ms cubic-bezier(.2, .8, .2, 1), border-color 220ms ease, box-shadow 220ms ease;
    will-change: height;
}

.aenima-public-home__faq-item summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 42px;
    gap: 18px;
    align-items: center;
    min-height: 68px;
    padding: 13px 16px 13px 22px;
    color: var(--color-primary-strong);
    cursor: pointer;
    font-size: clamp(.98rem, 1.5vw, 1.08rem);
    font-weight: 900;
    line-height: 1.35;
    list-style: none;
}

.aenima-public-home__faq-item summary::-webkit-details-marker {
    display: none;
}

.aenima-public-home__faq-item summary:hover,
.aenima-public-home__faq-item summary:focus-visible {
    color: var(--color-secondary-strong);
    outline: 0;
}

.aenima-public-home__faq-item summary:focus-visible {
    border-radius: 15px;
    box-shadow: inset 0 0 0 3px rgb(var(--color-secondary-rgb) / .34);
}

.aenima-public-home__faq-toggle {
    position: relative;
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border: 1px solid rgb(var(--color-primary-rgb) / .22);
    border-radius: 50%;
    background: var(--color-primary-soft);
    color: var(--color-primary-strong);
    transition: border-color 220ms ease, background-color 220ms ease, color 220ms ease, transform 280ms cubic-bezier(.2, .8, .2, 1);
}

.aenima-public-home__faq-toggle::before,
.aenima-public-home__faq-toggle::after {
    position: absolute;
    width: 14px;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
    content: "";
    transition: transform 240ms cubic-bezier(.2, .8, .2, 1), opacity 180ms ease;
}

.aenima-public-home__faq-toggle::after {
    transform: rotate(90deg);
}

.aenima-public-home__faq-item[open] {
    border-color: rgb(var(--color-secondary-rgb) / .42);
    box-shadow: 0 12px 28px rgb(var(--color-primary-rgb) / .1);
}

.aenima-public-home__faq-item[open] .aenima-public-home__faq-toggle {
    border-color: var(--color-primary);
    background: var(--color-primary);
    color: var(--color-surface);
    transform: rotate(180deg);
}

.aenima-public-home__faq-item[open] .aenima-public-home__faq-toggle::after {
    opacity: 0;
    transform: rotate(90deg) scaleX(0);
}

.aenima-public-home__faq-answer {
    margin: 0 22px;
    padding: 18px 0 21px;
    border-top: 1px solid var(--color-border);
    transform-origin: top;
}

.aenima-public-home__faq-item.is-animating .aenima-public-home__faq-answer {
    transition: opacity 220ms ease, transform 280ms cubic-bezier(.2, .8, .2, 1);
}

.aenima-public-home__faq-item.is-opening .aenima-public-home__faq-answer {
    opacity: 0;
    transform: translateY(-8px);
}

.aenima-public-home__faq-item.is-opening.is-animation-active .aenima-public-home__faq-answer,
.aenima-public-home__faq-item.is-closing .aenima-public-home__faq-answer {
    opacity: 1;
    transform: translateY(0);
}

.aenima-public-home__faq-item.is-closing.is-animation-active .aenima-public-home__faq-answer {
    opacity: 0;
    transform: translateY(-6px);
}

.aenima-public-home__faq-answer p {
    max-width: 820px;
    margin: 0;
    color: var(--color-text-soft);
    line-height: 1.65;
}

.aenima-public-home__trust .eyebrow,
.aenima-public-home__trust h2,
.aenima-public-home__trust > p {
    color: var(--color-surface);
}

.aenima-public-home__trust > p {
    font-size: clamp(1rem, 1.8vw, 1.18rem);
}

.aenima-public-home__trust .aenima-public-home__section-title-accent {
    color: var(--color-secondary-muted);
}

.aenima-public-home__articles {
    padding: clamp(58px, 8vw, 92px) var(--aenima-public-shell-gutter);
    background: var(--color-bg);
}

.aenima-public-home__articles-inner {
    width: min(1180px, 100%);
    margin-inline: auto;
}

.aenima-public-home__articles-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 20px 32px;
    margin-bottom: clamp(24px, 4vw, 40px);
}

.aenima-public-home__articles .aenima-public-home__section-heading {
    max-width: none;
    margin-bottom: 0;
}

.aenima-public-home__articles .aenima-public-home__section-heading > p:last-child {
    margin: 12px 0 0;
    color: var(--color-text-soft);
}

.aenima-public-home__articles-empty {
    margin: 0;
    color: var(--color-text-soft);
}

.aenima-public-home__articles-link {
    flex: 0 0 auto;
}

.aenima-public-home__closing {
    justify-content: space-between;
    gap: 28px;
    padding-block: clamp(28px, 5vw, 50px);
    padding-inline: calc(var(--aenima-public-shell-gutter) + clamp(28px, 5vw, 50px));
    border-block: 1px solid rgb(var(--color-secondary-rgb) / .28);
    border-inline: 0;
    border-radius: 0;
    background: var(--color-secondary-faint);
}

.aenima-public-home__closing h2 {
    font-size: clamp(1.65rem, 3vw, 2.45rem);
}

.aenima-public-home__closing p {
    max-width: 720px;
    margin-top: 10px;
}

.aenima-public-home__closing .btn {
    flex: 0 0 auto;
}

.aenima-public-home--practitioner .aenima-public-home__closing {
    align-items: center;
    flex-direction: column;
    border-color: rgb(var(--color-white-rgb) / .16);
    background: var(--color-primary-strong);
    color: var(--color-surface);
    text-align: center;
}

.aenima-public-home--practitioner .aenima-public-home__closing > div {
    display: grid;
    justify-items: center;
}

.aenima-public-home--practitioner .aenima-public-home__closing h2,
.aenima-public-home--practitioner .aenima-public-home__closing p {
    color: var(--color-surface);
}

.aenima-public-home--practitioner .aenima-public-home__closing .aenima-public-home__section-title-accent {
    color: var(--color-secondary-muted);
}

.aenima-public-home--practitioner .aenima-public-home__closing .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border-color: var(--color-surface);
    background: var(--color-surface);
    color: var(--color-primary-strong);
}

.aenima-public-home__closing-action-icon {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.aenima-public-home--practitioner .aenima-public-home__closing .btn:hover,
.aenima-public-home--practitioner .aenima-public-home__closing .btn:focus-visible {
    border-color: var(--color-secondary-muted);
    background: var(--color-secondary-muted);
    color: var(--color-primary-strong);
}

.aenima-public-home__footer {
    display: block;
    margin-top: 0;
    padding: clamp(36px, 5vw, 60px) var(--aenima-public-shell-gutter);
    background: var(--color-primary-deep);
    color: var(--color-surface);
}

.aenima-public-home__footer-inner {
    display: grid;
    grid-template-columns: minmax(82px, .45fr) minmax(0, 4fr);
    gap: 0;
    width: min(1180px, 100%);
    margin: 0 auto;
}

.aenima-public-home__footer-introduction {
    min-width: 0;
}

.aenima-public-home__footer-brand {
    display: inline-flex;
    align-items: center;
    gap: 13px;
    color: var(--color-surface);
    text-decoration: none;
}

.aenima-public-home__footer-brand > span {
    display: grid;
    place-items: center;
    width: 64px;
    height: 64px;
    border-radius: var(--ui-radius-card, 18px);
    background: var(--color-surface);
}

.aenima-public-home__footer-brand img {
    display: block;
    width: 54px;
    height: 54px;
    object-fit: contain;
}

.aenima-public-home__footer-navigation {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    min-width: 0;
}

.aenima-public-home__footer-navigation section {
    min-width: 0;
    padding: 0 clamp(16px, 2vw, 30px);
    border-left: 1px solid rgb(var(--color-white-rgb) / .2);
}

.aenima-public-home__footer-navigation h2 {
    margin: 0 0 var(--ui-space-3, 12px);
    color: var(--color-secondary-muted);
    font-size: var(--font-size-body, .875rem);
    font-weight: var(--font-weight-body, 400);
    line-height: 1.4;
}

.aenima-public-home__footer-navigation nav {
    display: grid;
    align-items: start;
    gap: 3px;
}

.aenima-public-home__footer a:not(.aenima-public-home__footer-brand):where(:not(.footer-language__upgrade)) {
    width: fit-content;
    max-width: 100%;
    padding: 5px 0;
    color: var(--color-surface);
    font-size: var(--font-size-help, .8125rem);
    font-weight: var(--font-weight-label, 600);
    line-height: 1.4;
    text-decoration: none;
}

.aenima-public-home__footer a:not(.aenima-public-home__footer-brand):where(:not(.footer-language__upgrade)):hover {
    color: var(--color-secondary-muted);
}

.aenima-public-home__footer a:not(.aenima-public-home__footer-brand):where(:not(.footer-language__upgrade)):focus-visible {
    color: var(--color-secondary-muted);
    outline: 2px solid currentColor;
    outline-offset: 2px;
}
.aenima-public-home__footer .aenima-public-home__footer-actions { display: grid; justify-items: stretch; gap: var(--ui-space-6, 24px); width: max-content; max-width: 100%; }
.aenima-public-home__footer a.aenima-public-home__footer-action { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; gap: var(--ui-space-2, 8px); width: 100%; padding: var(--ui-space-3, 12px) var(--ui-space-4, 16px); border: 1px solid transparent; border-radius: var(--ui-radius-control, 12px); color: var(--color-primary-deep); font-size: var(--font-size-control); font-weight: var(--font-weight-label); text-align: center; }
.aenima-public-home__footer-action svg { display: block; flex: 0 0 19px; width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.aenima-public-home__footer .aenima-public-home__footer-action--premium { background: var(--ui-back-icon-background, #f4ce55); }
.aenima-public-home__footer .aenima-public-home__footer-action--signin,
.aenima-public-home__footer .aenima-public-home__footer-action--account { background: var(--color-surface); }
.aenima-public-home__footer a.aenima-public-home__footer-action:hover { border-color: var(--color-secondary-muted); color: var(--color-primary-deep); background: var(--color-secondary-muted); }
.aenima-public-home__footer a.aenima-public-home__footer-action--premium:hover,
.aenima-public-home__footer a.aenima-public-home__footer-action--premium:focus-visible { border-color: var(--color-primary); background: var(--ui-back-icon-background, #f4ce55); }
.aenima-public-home__footer a.aenima-public-home__footer-action:focus-visible { color: var(--color-primary-deep); outline-color: var(--color-secondary-muted); }
.aenima-public-home__footer-locale .footer-language { margin-top: var(--ui-space-5, 20px); }
.aenima-public-home__footer-locale .footer-language label { color: var(--color-secondary-muted); }
.aenima-public-home__footer-locale .footer-language__choice,.aenima-public-home__footer-locale .footer-language__choice .ui-select__trigger.input { color: var(--color-surface); }

/* The public story uses one editorial quote on both landing audiences. */
.aenima-story-quote {
    padding: clamp(32px, 5vw, 64px) var(--aenima-public-shell-gutter);
    background: var(--color-surface);
}

.aenima-story-quote__inner {
    display: grid;
    grid-template-columns: minmax(0, 640px) minmax(180px, 220px);
    align-items: start;
    justify-content: center;
    gap: clamp(24px, 3vw, 40px);
    width: min(1180px, 100%);
    margin-inline: auto;
    padding: clamp(28px, 3.5vw, 44px);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface);
    box-shadow: var(--shadow-sm);
}

.aenima-story-quote__content { min-width: 0; }
.aenima-story-quote__eyebrow,
.aenima-story-page__eyebrow {
    margin: 0 0 14px;
    color: var(--color-primary);
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase;
}
.aenima-story-quote__body { max-width: 68ch; color: var(--color-text); }
.aenima-story-quote__body > p {
    margin: 0 0 12px;
    font-size: var(--font-size-body, .875rem);
    font-weight: 400;
    line-height: 1.6;
}
.aenima-story-quote__body > :last-child { margin-bottom: 0; }
.aenima-story-quote__words {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 18px;
    align-items: start;
    margin: 0 0 20px;
    color: var(--color-primary-deep);
}
.aenima-story-quote__words p {
    margin: 4px 0 0;
    font-size: var(--font-size-story-quote);
    font-weight: 400;
    line-height: 1.38;
}
.aenima-story-quote__words em { color: var(--color-primary-strong); }
.aenima-story-quote__mark {
    color: var(--color-secondary);
    font-family: Georgia, 'Times New Roman', serif;
    font-weight: 400;
    font-size: var(--font-size-story-quote-mark);
    line-height: 1;
}
.aenima-story-quote__words .aenima-story-quote__mark {
    transform: scale(1.8);
    transform-origin: center;
}
.aenima-story-quote__mark--end { align-self: end; }
.aenima-story-portrait { margin: 0; text-align: center; }
.aenima-story-portrait__frame {
    display: block;
    width: min(100%, 212px);
    aspect-ratio: 1;
    margin: 0 auto 18px;
    border: 5px solid var(--color-surface);
    border-radius: 50%;
    overflow: hidden;
    box-shadow: var(--shadow-sm);
}
.aenima-story-portrait__frame img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 12%; transform: scale(1.55); transform-origin: 33% 78%; }
.aenima-story-portrait figcaption { display: grid; gap: 3px; color: var(--color-text-soft); }
.aenima-story-portrait figcaption strong { color: var(--color-primary-deep); font-size: var(--font-size-card-title, 1.05rem); }

.aenima-story-page__hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(180px, 240px);
    align-items: center;
    gap: clamp(24px, 3vw, 40px);
    box-sizing: border-box;
    width: min(100%, 1180px);
    margin-inline: auto;
    padding: clamp(44px, 6vw, 72px) clamp(36px, 6vw, 80px);
    background: var(--color-surface);
}
.aenima-story-page__hero-copy { min-width: 0; width: min(750px, 100%); }
.aenima-story-page__eyebrow { display: inline-block; margin-bottom: 14px; padding: 7px 12px; border-radius: 999px; background: var(--color-secondary-soft); color: var(--color-secondary-deep); }
.aenima-story-page__hero h1 {
    margin: 0;
    color: var(--color-primary-deep);
    font-size: var(--font-size-page-title-fluid, clamp(2.6rem, 6vw, 5rem));
    line-height: 1.05;
}
.aenima-story-page__hero h1 strong { color: var(--color-secondary-deep); }
.aenima-story-page__hero-copy > p { max-width: 58ch; color: var(--color-primary-strong); font-size: var(--font-size-input, 1.16rem); line-height: 1.6; }
.aenima-story-page__hero .aenima-story-portrait { width: min(100%, 240px); }
.aenima-story-page__hero .aenima-story-portrait__frame { width: 100%; margin-bottom: 14px; box-shadow: var(--shadow); }
.aenima-story-page__body { width: min(900px, calc(100% - 40px)); margin: clamp(52px, 7vw, 96px) auto; }
.aenima-story-page__body > p { margin: 0 0 1.1em; color: var(--color-text); font-size: var(--font-size-input, 1.08rem); line-height: 1.85; }
.aenima-story-page__body > p:first-child::first-letter { color: var(--color-primary); font-size: var(--font-size-page-title, 2.6em); font-weight: 700; line-height: 1; }
.aenima-story-page__body strong { color: var(--color-primary-deep); }
.aenima-story-page__body .aenima-story-page__statement {
    margin: 1.1em 0 .65em;
    padding: 8px 0 8px 18px;
    border-left: 3px solid var(--color-secondary);
    font-size: var(--font-size-section-title, clamp(1.35rem, 2.5vw, 1.9rem));
    line-height: 1.4;
}
.aenima-story-page__cadence { padding-left: 24px; border-left: 1px solid var(--color-border); }
.aenima-story-page__pullquote {
    display: flex;
    gap: 20px;
    margin: 3em 0;
    padding: clamp(24px, 5vw, 48px);
    border-radius: var(--radius-lg);
    background: var(--color-secondary-faint);
    color: var(--color-primary-deep);
}
.aenima-story-page__pullquote > span { color: var(--color-primary); font-size: var(--font-size-story-quote-mark); font-weight: 400; line-height: 1; }
.aenima-story-page__pullquote > .aenima-story-quote__mark { transform: scale(1.7); transform-origin: left top; }
.aenima-story-page__pullquote > .aenima-story-quote__mark--end { margin-left: 20px; transform-origin: right bottom; }
.aenima-story-page__pullquote p { margin: 0; font-size: var(--font-size-page-title-fluid, clamp(1.3rem, 2.7vw, 2rem)); line-height: 1.45; }
.aenima-story-page__ending { margin-top: 4em; padding: clamp(28px, 5vw, 48px); border-radius: var(--radius-lg); background: var(--color-secondary-soft); }
.aenima-story-page__ending span { color: var(--color-primary-strong); font-weight: 700; text-transform: uppercase; letter-spacing: .1em; }
.aenima-story-page__ending p { color: var(--color-primary-deep); font-size: var(--font-size-card-title, 1.35rem); font-weight: 600; line-height: 1.4; }

.practitioner-support-page__hero { margin-bottom: var(--ui-space-6, 24px); }
.practitioner-support-page__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(270px, .85fr);
    align-items: start;
    gap: var(--ui-space-6, 24px);
}
.practitioner-support-page__form { width: 100%; min-width: 0; margin: 0; }
.practitioner-support-page__form > p { margin: 10px 0 24px; }
.practitioner-support-page__form select.input { width: 100%; justify-self: stretch; }
.practitioner-support-page__form .field-error { color: var(--color-danger, #a32840); }
.practitioner-support-page__help { min-width: 0; padding: var(--ui-space-6, 24px); }
.practitioner-support-page__help h2 { margin: 16px 0 12px; color: var(--color-primary-deep); }
.practitioner-support-page__help > p { color: var(--color-text-soft); line-height: 1.6; }
.practitioner-support-page__help nav { display: grid; gap: 8px; margin: 24px 0; }
.practitioner-support-page__help nav a { display: flex; justify-content: space-between; gap: 10px; padding: 12px 0; border-bottom: 1px solid var(--color-border); color: var(--color-primary-strong); font-weight: 600; text-decoration: none; }
.practitioner-support-page__help nav a:hover,
.practitioner-support-page__help nav a:focus-visible { color: var(--color-primary-deep); }
.practitioner-support-page__help .practitioner-support-page__privacy { margin: 0; padding: 16px; border-radius: var(--radius); background: var(--color-primary-soft); color: var(--color-primary-deep); }

@media (max-width: 760px) {
    .aenima-story-quote__inner,
    .aenima-story-page__hero,
    .practitioner-support-page__layout { grid-template-columns: minmax(0, 1fr); }
    .aenima-story-quote .aenima-story-portrait { display: flex; align-items: center; gap: 18px; text-align: left; }
    .aenima-story-quote .aenima-story-portrait__frame { width: 88px; margin: 0; flex: 0 0 88px; }
    .aenima-story-page__hero .aenima-story-portrait { width: 160px; }
}

@media (max-width: 960px) {
    .aenima-public-home__navigation > a:not(.aenima-public-home__audience-switch) {
        display: none;
    }

    .aenima-public-home__hero {
        grid-template-columns: minmax(0, 1fr);
    }

    .aenima-public-home__hero--illustrated .aenima-public-home__hero-copy {
        width: min(64%, 630px);
    }

    .aenima-public-home__hero-panel {
        flex-direction: row;
        align-items: center;
    }

    .aenima-public-home__hero-panel--image {
        aspect-ratio: 16 / 10;
    }

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

    .aenima-public-home__feature-grid--carousel {
        --aenima-feature-column-width: calc((100% - 14px) / 2);
        grid-template-columns: none;
    }

    .aenima-public-home__product-showcase {
        grid-template-columns: minmax(0, 1.55fr) minmax(210px, .8fr);
        gap: 20px;
        padding: 20px;
    }

    .aenima-public-home__workflow-list {
        gap: 28px 12px;
    }

    .aenima-public-home__workflow-intro {
        min-height: 600px;
        padding-top: 32px;
    }

    .aenima-public-home__workflow-heading {
        width: calc(100% - 2 * var(--aenima-public-shell-gutter));
        margin-left: var(--aenima-public-shell-gutter);
    }

    .aenima-public-home__workflow-heading > p:last-child {
        margin-right: 0;
        margin-left: 0;
    }

    .aenima-public-home__workflow-list::after {
        top: calc(50% + 37px);
    }

    .aenima-public-home__workflow-step:nth-child(4)::before {
        height: calc(100% + 28px);
    }

    .aenima-public-home__workflow-card {
        grid-template-columns: minmax(0, 1fr);
        align-content: start;
        min-height: 184px;
    }

    .aenima-public-home__client-booking-step,
    .aenima-public-home__client-booking-step--reverse {
        grid-template-columns: minmax(0, 1fr);
        gap: 30px;
    }

    .aenima-public-home__profession-grid {
        --aenima-profession-card-width: calc((100% - 18px) / 2);
    }

    .aenima-public-home__footer-inner {
        grid-template-columns: minmax(0, 1fr);
        gap: 40px;
    }

    .aenima-public-home__footer-navigation {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: var(--ui-space-6, 24px) 0;
    }

    .aenima-public-home__footer-navigation section:nth-child(odd) { padding-left: 0; border-left: 0; }
}

@media (max-width: 680px) {
    .aenima-public-home {
        --aenima-public-shell-gutter: 10px;
        padding-top: 10px;
    }

    .aenima-public-home__header {
        min-height: 64px;
        padding: 8px 10px;
    }

    .aenima-public-home__brand {
        gap: 7px;
    }

    .aenima-public-home__brand-mark {
        width: 40px;
        height: 40px;
    }

    .aenima-public-home__brand-mark img {
        width: 38px;
        height: 38px;
    }

    .aenima-public-home__brand strong {
        font-size: 1rem;
    }

    .aenima-public-home__audience-switch {
        min-height: 42px;
        padding: 8px 11px;
        font-size: .8rem;
    }

    .aenima-public-home__hero {
        --aenima-public-hero-padding: 20px;
        gap: 24px;
        padding-block: 32px;
        padding-inline: calc(var(--aenima-public-shell-gutter) + var(--aenima-public-hero-padding));
    }

    .aenima-public-home__hero--illustrated {
        --aenima-hero-mobile-image-height: clamp(270px, 76vw, 330px);
        display: block;
        min-height: 0;
        padding-bottom: var(--aenima-hero-mobile-image-height);
    }

    .aenima-public-home__hero--illustrated .aenima-public-home__hero-copy {
        width: 100%;
    }

    .aenima-public-home__hero--illustrated .aenima-public-home__hero-background {
        top: auto;
        height: var(--aenima-hero-mobile-image-height);
        object-position: right center;
    }

    .aenima-public-home__hero h1 {
        font-size: clamp(1.9rem, 8.5vw, 2.4rem);
    }

    .aenima-public-home__hero-panel {
        align-items: flex-start;
        flex-direction: column;
        padding: 22px;
    }

    .aenima-public-home__hero-panel--image {
        aspect-ratio: 4 / 5;
        padding: 0;
    }

    .aenima-public-home__feature-grid,
    .aenima-public-home__trust {
        grid-template-columns: minmax(0, 1fr);
    }

    .aenima-public-home__feature-grid--carousel {
        --aenima-feature-column-width: calc(100% - 34px);
        grid-template-columns: none;
    }

    .aenima-public-home__feature-carousel-shell {
        padding: 12px;
    }

    .aenima-public-home__product-showcase {
        grid-template-columns: minmax(0, 1fr);
        gap: 22px;
        margin-bottom: 38px;
        padding: 16px 12px 20px;
    }

    .aenima-public-home__product-device--mobile {
        width: min(78%, 380px);
    }

    .aenima-public-home__client-booking {
        padding: 48px 16px;
    }

    .aenima-public-home__workflow {
        padding: 0 16px 48px;
    }

    .aenima-public-home__workflow-intro {
        min-height: max(640px, 133vw);
        width: calc(100% + 32px);
        margin-inline: -16px;
        padding-top: 22px;
    }

    .aenima-public-home__workflow-heading {
        width: calc(100% - 32px);
        margin-left: 16px;
        text-align: left;
    }

    .aenima-public-home__workflow-heading > p:last-child {
        margin-right: 0;
        margin-left: 0;
    }

    .aenima-public-home__workflow-visual img {
        object-position: center top;
    }

    .aenima-public-home__workflow-controls {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 14px;
        margin-top: 28px;
    }

    .aenima-public-home__workflow-controls strong {
        color: var(--color-primary-strong);
        font-size: .86rem;
        font-weight: 900;
    }

    .aenima-public-home__workflow-list {
        display: flex;
        gap: 14px;
        width: 100%;
        margin-top: 18px;
        padding: 2px 0 8px;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scroll-behavior: smooth;
        scroll-padding-inline: 0;
        scroll-snap-type: inline mandatory;
        scrollbar-width: none;
    }

    .aenima-public-home__workflow-list::-webkit-scrollbar {
        display: none;
    }

    .aenima-public-home__workflow-list::before,
    .aenima-public-home__workflow-list::after,
    .aenima-public-home__workflow-step:nth-child(4)::before {
        display: none;
    }

    .aenima-public-home__workflow-step,
    .aenima-public-home__workflow-step:nth-child(5),
    .aenima-public-home__workflow-step:nth-child(6),
    .aenima-public-home__workflow-step:nth-child(7),
    .aenima-public-home__workflow-step:nth-child(8) {
        display: grid;
        flex: 0 0 calc(100% - 28px);
        grid-template-rows: 42px minmax(0, 1fr);
        scroll-snap-align: start;
    }

    .aenima-public-home__workflow-marker {
        width: 44px;
        height: 44px;
        border-width: 4px;
        font-size: .88rem;
    }

    .aenima-public-home__workflow-card {
        grid-template-columns: 38px minmax(0, 1fr);
        gap: 12px;
        min-height: 178px;
        padding: 15px;
    }

    .aenima-public-home__workflow-icon {
        width: 38px;
        height: 38px;
        border-radius: 12px;
    }

    .aenima-public-home__workflow-icon svg {
        width: 21px;
        height: 21px;
    }

    .aenima-public-home__client-booking-heading {
        margin-bottom: 38px;
        text-align: left;
    }

    .aenima-public-home__client-booking-action {
        margin-inline: 0 auto;
    }

    .aenima-public-home__client-booking-step + .aenima-public-home__client-booking-step {
        margin-top: 58px;
    }

    .aenima-public-home__client-booking-visual {
        padding: 6px;
        border-radius: 16px;
    }

    .aenima-public-home__client-booking-visual img {
        border-radius: 10px;
    }

    .aenima-public-home__client-booking-visual--duo {
        grid-template-columns: minmax(0, 1fr);
    }

    .aenima-public-home__spotlight-cta {
        justify-items: start;
        padding: 24px 20px;
        border-radius: 16px;
        text-align: left;
    }

    .practitioner-reference-callout {
        width: calc(100% - 32px);
        margin-block: 36px;
        padding: 28px 24px;
        border-radius: 22px;
    }

    .practitioner-reference-callout__paw {
        top: -5%;
        right: -20%;
        width: 68vw;
    }

    .aenima-public-home__professions-header {
        align-items: center;
        gap: 14px;
    }

    .aenima-public-home__profession-grid {
        --aenima-profession-card-width: calc(100% - 34px);
    }

    .aenima-public-home__offer-comparison {
        margin-top: 38px;
    }

    .aenima-public-home__offer-comparison-table {
        overflow: visible;
        padding-top: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    .aenima-public-home__offer-comparison table,
    .aenima-public-home__offer-comparison thead,
    .aenima-public-home__offer-comparison tbody,
    .aenima-public-home__offer-comparison tfoot {
        display: block;
        width: 100%;
    }

    .aenima-public-home__offer-comparison thead {
        position: static;
        z-index: auto;
        top: auto;
        box-shadow: none;
    }

    .aenima-public-home__offer-comparison thead tr,
    .aenima-public-home__offer-comparison tbody tr,
    .aenima-public-home__offer-comparison tfoot tr {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
        min-width: 0;
    }

    .aenima-public-home__offer-comparison thead tr {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        background: var(--color-offer-comparison);
        border-radius: 16px;
        box-shadow: 0 10px 24px rgb(var(--color-primary-rgb) / .1);
    }

    .aenima-public-home__offer-comparison thead th:first-child {
        display: none;
    }

    .aenima-public-home__offer-comparison thead th {
        display: block;
        width: auto;
        padding: 42px 5px 14px;
        border: 0;
        background: transparent;
    }

    .aenima-public-home__offer-comparison thead th.is-premium {
        background: transparent;
    }

    .aenima-public-home__comparison-offer-name {
        min-height: 2.4em;
        white-space: normal;
    }

    .aenima-public-home__comparison-price {
        display: grid;
        gap: 2px;
    }

    .aenima-public-home__comparison-price strong {
        font-size: var(--font-size-card-title);
    }

    .aenima-public-home__comparison-price small {
        font-size: .66rem;
    }

    .aenima-public-home__offer-comparison tbody {
        margin-top: 14px;
    }

    .aenima-public-home__offer-comparison tbody tr {
        overflow: hidden;
        margin-top: 12px;
        border: 1px solid rgb(var(--color-primary-rgb) / .16);
        border-radius: 14px;
        background: var(--color-surface);
    }

    .aenima-public-home__offer-comparison tbody tr:nth-child(even) {
        background: var(--color-surface);
    }

    .aenima-public-home__offer-comparison tbody th {
        grid-column: 1 / -1;
        padding: 13px 14px;
        border-bottom: 1px solid var(--color-border);
        background: rgb(var(--color-primary-rgb) / .055);
    }

    .aenima-public-home__offer-comparison tbody td {
        display: grid;
        justify-items: center;
        gap: 7px;
        padding: 12px 8px;
        border-bottom: 0;
        border-left: 1px solid var(--color-border);
    }

    .aenima-public-home__offer-comparison tbody td:first-of-type {
        border-left: 0;
    }

    .aenima-public-home__offer-comparison tbody td::before {
        content: attr(data-offer);
        color: var(--color-text-soft);
        font-size: .7rem;
        font-weight: 850;
        letter-spacing: .04em;
        text-transform: uppercase;
    }

    .aenima-public-home__offer-comparison tfoot {
        margin-top: 14px;
    }

    .aenima-public-home__offer-comparison tfoot tr {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
    }

    .aenima-public-home__offer-comparison tfoot th {
        display: none;
    }

    .aenima-public-home__offer-comparison tfoot td {
        display: grid;
        place-items: center;
        padding: 0;
        background: transparent;
    }

    .aenima-public-home__offer-comparison tfoot .btn {
        width: min(100%, 220px);
    }

    .aenima-public-home__comparison-status {
        min-width: 0;
    }

    .aenima-public-home__feature {
        min-height: 0;
        padding: 18px;
    }

    .aenima-public-home__trust,
    .aenima-public-home__closing {
        padding: 30px 22px;
    }

    .aenima-public-home__closing {
        align-items: flex-start;
        flex-direction: column;
    }

    .aenima-public-home__footer {
        padding: 42px 22px 22px;
    }

    .aenima-public-home__footer-navigation {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--ui-space-5, 20px);
    }
    .aenima-public-home__footer-navigation section,.aenima-public-home__footer-navigation section:nth-child(odd) { padding: var(--ui-space-5, 20px) 0 0; border-left: 0; border-top: 1px solid rgb(var(--color-primary-rgb) / .16); }
}

@media (prefers-reduced-motion: reduce) {
    .aenima-public-home__carousel-control,
    .aenima-public-home__faq-item,
    .aenima-public-home__faq-item.is-animating,
    .aenima-public-home__faq-item.is-animating .aenima-public-home__faq-answer,
    .aenima-public-home__faq-toggle,
    .aenima-public-home__faq-toggle::before,
    .aenima-public-home__faq-toggle::after {
        transition: none;
    }
}

/* Champ fichier canonique des questionnaires publics : conserve le bouton natif lisible. */
.client-questionnaire-photo {
    box-sizing: border-box;
    gap: 5px;
    min-width: 0;
}

.client-questionnaire-photo input[type="file"] {
    box-sizing: border-box;
    color: transparent;
    display: block;
    font: inherit;
    font-size: .76rem;
    max-width: 100%;
    min-width: 0;
    width: 100%;
}

.client-questionnaire-photo input[type="file"]::file-selector-button {
    background: #fff;
    border: 1px solid #b9a9be;
    border-radius: 7px;
    color: #58475f;
    cursor: pointer;
    font: inherit;
    font-weight: 850;
    margin: 0;
    max-width: 100%;
    padding: 7px 9px;
    white-space: normal;
    width: 100%;
}

.client-questionnaire-photo input[type="file"]:focus-visible {
    outline: 2px solid #654c70;
    outline-offset: 3px;
}

.client-questionnaire-photo--existing > img {
    aspect-ratio: 1;
    border: 3px solid #fff;
    border-radius: 12px;
    box-shadow: 0 3px 10px rgba(50, 41, 54, .14);
    display: block;
    object-fit: cover;
    width: 88px;
}

.client-questionnaire-photo__status {
    display: grid;
    gap: 2px;
    justify-items: center;
    min-width: 0;
    text-align: center;
}

.client-questionnaire-photo__status strong,
.client-questionnaire-photo__status small {
    overflow-wrap: anywhere;
}

@media (max-width: 640px) {
    .questionnaire-send-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .questionnaire-send-summary {
        grid-template-columns: 1fr;
    }
}

.photo-library-card__classification {
    align-items: end;
    border-top: 1px solid #ece5ed;
    display: grid !important;
    gap: 7px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding-top: 10px;
}

.photo-library-card__classification label {
    color: #5c525f;
    display: grid;
    font-size: var(--font-size-label, .7rem);
    font-weight: var(--font-weight-label, 850);
    gap: 4px;
    min-width: 0;
}

.photo-library-card__classification select {
    background: #fff;
    border: 1px solid #cec4d0;
    border-radius: 8px;
    color: #373039;
    font: inherit;
    min-height: 38px;
    min-width: 0;
    padding: 7px 8px;
    width: 100%;
}

.photo-library-card {
    position: relative;
}

.photo-library-observation {
    display: grid;
    gap: 4px;
}

.photo-library-observation p {
    max-height: 20rem;
    overflow-wrap: anywhere;
    transition: max-height .28s ease;
}

.photo-library-observation.is-collapsed p {
    max-height: 2.2rem;
    overflow: hidden;
}

.photo-library-observation button {
    background: transparent;
    border: 0;
    color: var(--color-primary);
    cursor: pointer;
    font: inherit;
    font-size: var(--font-size-control, .69rem);
    font-weight: var(--font-weight-label, 800);
    justify-self: start;
    padding: 0;
}

.photo-library-observation button:focus-visible {
    outline: 2px solid var(--color-identity);
    outline-offset: 3px;
}

.photo-library-card form[action^="/animals/photos/delete"] {
    bottom: 8px;
    position: absolute;
    right: 8px;
    z-index: 2;
}

.photo-library-tools {
    align-items: end;
    display: flex;
    flex-wrap: wrap;
}

.photo-library-tools > label {
    flex: 0 1 auto;
}

.photo-library-tools__search {
    flex: 1 1 250px !important;
}

.photo-library-tools select,
.photo-library-tools input[type="date"] {
    box-sizing: border-box;
    field-sizing: content;
    max-width: 100%;
    width: auto;
}

.photo-library-tools__search input {
    width: 100%;
}

.photo-library-tools > .btn {
    flex: 0 0 auto;
}

@media (max-width: 590px) {
    .photo-library-tools > label,
    .photo-library-tools > .btn {
        flex: 1 1 100%;
    }

    .photo-library-tools select,
    .photo-library-tools input[type="date"] {
        width: 100%;
    }

    .photo-library-grid {
        padding-bottom: 94px;
    }

}

/* Catalogue canonique des préparations du praticien. */
.practitioner-preparation-page {
    display: grid;
    gap: 18px;
}

.practitioner-preparation-hero h1 { color: var(--color-primary); }
.practitioner-preparation-hero p { max-width: 720px; }
.practitioner-preparation-hero__actions { align-items: stretch; }
.practitioner-preparation-hero__actions .btn { justify-content: center; }

.practitioner-preparation-summary {
    align-items: baseline;
    background: #fffdf8;
    border: 1px solid #ddd7ca;
    border-left: 5px solid var(--color-secondary);
    border-radius: 13px;
    box-shadow: 0 7px 17px rgb(var(--color-primary-rgb) / .07);
    display: flex;
    gap: 9px;
    padding: 12px 16px;
}

.practitioner-preparation-summary strong {
    color: var(--color-primary);
    font-size: var(--font-size-control, 1.35rem);
}

.practitioner-preparation-summary span { color: var(--color-text-soft); }

.practitioner-preparation-grid {
    align-items: start;
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.practitioner-preparation-library {
    --preparation-accent: #705878;
    --preparation-accent-soft: #f0eaf2;
    container-type: inline-size;
    min-width: 0;
    overflow: hidden;
    padding: 0;
}

.practitioner-preparation-library--home {
    --preparation-accent: var(--color-primary);
    --preparation-accent-soft: #e8f0ef;
}

.practitioner-preparation-library > .aenima-numbered-section-header {
    background: var(--preparation-accent-soft);
    border-bottom: 1px solid #ddd7ca;
    margin: 0;
    padding: 14px 16px;
}

.practitioner-preparation-library > .aenima-numbered-section-header > span {
    background: var(--preparation-accent);
    color: #fff;
}

.practitioner-preparation-library > .aenima-numbered-section-header small,
.practitioner-preparation-library > .aenima-numbered-section-header h2 {
    color: var(--preparation-accent);
}

.practitioner-preparation-list {
    display: grid;
    gap: 10px;
    min-width: 0;
    padding: 14px;
}

.practitioner-preparation-card {
    align-items: center;
    background: #fbfaf6;
    border: 1px solid #e0dacd;
    border-left: 5px solid var(--preparation-accent);
    border-radius: 11px;
    display: flex;
    gap: 14px;
    min-width: 0;
    padding: 13px 14px;
}

.practitioner-preparation-card__main {
    color: inherit;
    flex: 1;
    min-width: 0;
    text-decoration: none;
}

.practitioner-preparation-card__main:hover { text-decoration: none; }

.practitioner-preparation-card__type {
    background: var(--preparation-accent);
    border-radius: 7px;
    color: #fff;
    display: inline-block;
    font-size: var(--font-size-caption, .7rem);
    font-weight: var(--font-weight-label, 850);
    padding: 4px 7px;
}

.practitioner-preparation-card h3 {
    color: var(--color-text);
    font-size: var(--font-size-card-title, 1rem);
    margin: 7px 0 4px;
    overflow-wrap: anywhere;
}

.practitioner-preparation-card p,
.practitioner-preparation-card small {
    color: var(--color-text-soft);
    display: block;
    font-size: var(--font-size-help, .8rem);
    margin: 0;
    overflow-wrap: anywhere;
}

.practitioner-preparation-card small { margin-top: 6px; }
.practitioner-preparation-card__actions { align-items: center; display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: 7px; }

.practitioner-preparation-empty {
    background: var(--preparation-accent-soft);
    border: 1px dashed var(--preparation-accent);
    border-radius: 11px;
    display: grid;
    gap: 9px;
    min-width: 0;
    padding: 15px;
}

.practitioner-preparation-empty strong { color: var(--preparation-accent); }
.practitioner-preparation-empty p { margin: 0; }
.practitioner-preparation-empty .btn { justify-self: start; }

.preparation-detail-page { display: grid; gap: 20px; }
.preparation-detail-hero__monogram { background: rgb(var(--color-secondary-rgb) / .18); color: var(--color-secondary-deep); }
.preparation-detail-composition { display: grid; gap: 18px; }
.preparation-detail-list { display: grid; gap: 9px; min-width: 0; }
.preparation-detail-list h3,
.preparation-detail-panels h3 { color: var(--color-primary); font-size: var(--font-size-card-title, 1.03rem); margin: 0; }
.preparation-detail-content { display: grid; gap: 12px; min-width: 0; padding: 16px 18px 18px; }
.preparation-detail-text { color: var(--color-text); line-height: 1.6; margin: 0; overflow-wrap: anywhere; }
.preparation-detail-notes { grid-column: 1 / -1; }

.session-preparations {
    --session-section-color: #82678f;
    --session-section-tint: rgba(130, 103, 143, .10);
    background: #fcf9fc;
    container-type: inline-size;
}

.session-preparation-form {
    background: #fff;
    border: 1px solid #ded5e2;
    border-radius: 13px;
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    margin: 16px 0;
    padding: 15px;
}

.session-preparation-form .field { margin: 0; min-width: 0; }
.session-preparation-form .field > span {
    color: var(--color-primary-strong);
    font-size: var(--font-size-label, .78rem);
    font-weight: var(--font-weight-label, 800);
}
.session-preparation-form .input {
    box-sizing: border-box;
    max-width: 100%;
    min-height: 44px;
}
.session-preparation-form__source { grid-column: 1 / -1; }
.session-preparation-form__source .input {
    field-sizing: content;
    width: auto;
}
.session-preparation-form__metric {
    width: fit-content;
    max-width: 100%;
}
.session-preparation-form__quantity { grid-column: 1; }
.session-preparation-form__unit { grid-column: 2; }
.session-preparation-form__usage-route { grid-column: 3 / span 2; width: fit-content; max-width: 100%; }
.session-preparation-form__usage-route .input { field-sizing: content; width: auto; }
.session-preparation-form__frequency { border: 0; grid-column: 5 / span 2; margin: 0; min-width: 0; padding: 0; }
.session-preparation-form__frequency legend {
    color: var(--color-primary-strong);
    font-size: var(--font-size-label, .78rem);
    font-weight: var(--font-weight-label, 800);
    margin-bottom: 6px;
    padding: 0;
}
.session-preparation-form__frequency-fields { align-items: end; display: flex; flex-wrap: wrap; column-gap: 20px; row-gap: 12px; }
.session-preparation-form__frequency-fields .field { min-width: 0; }
.session-preparation-form__frequency-fields input { width: min(10ch, 100%); }
.session-preparation-form__frequency-fields select { field-sizing: content; width: auto; }
.session-preparation-form__timing { grid-column: 1 / -1; }
.session-preparation-form__timing .input { width: min(100%, 50ch); }
.session-preparation-form__quantity .input { width: min(12ch, 100%); }
.session-preparation-form__unit .input {
    field-sizing: content;
    width: auto;
}
.session-preparation-form__wide { grid-column: 1 / span 2; }
.session-preparation-form__note--client { grid-column: 3 / span 2; }
.session-preparation-form__note--private { grid-column: 5 / span 2; }
.session-preparation-form textarea.input {
    min-height: 82px;
    resize: vertical;
    width: 100%;
}
.session-preparation-form__actions {
    align-items: end;
    display: flex;
    grid-column: 1 / -1;
    justify-content: flex-end;
}
.session-preparation-list {
    background: var(--session-section-tint);
    border: 1px solid rgb(130 103 143 / .28);
    border-radius: 14px;
    display: grid;
    gap: 14px;
    margin-top: 28px;
    min-width: 0;
    padding: 16px;
}
.session-preparation-list__header {
    align-items: center;
    display: flex;
    justify-content: space-between;
}
.session-preparation-list__header h3 {
    color: var(--color-primary-strong);
    font-size: var(--font-size-card-title, 1.05rem);
    margin: 7px 0 0;
}
.session-preparation-list__table {
    background: #fff;
    border: 1px solid rgb(130 103 143 / .2);
    border-radius: 11px;
    margin: 0;
}
.session-preparations__empty {
    margin: 0;
    padding: 12px 14px;
    border: 1px dashed rgb(130 103 143 / .42);
    border-radius: 11px;
    background: rgb(130 103 143 / .07);
    color: var(--color-text-soft);
}
.session-preparation-legacy {
    color: var(--color-text-soft);
    font-size: var(--font-size-table, .75rem);
    font-weight: var(--font-weight-label, 750);
}

@container (max-width: 760px) {
    .session-preparation-form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .session-preparation-form__source,
    .session-preparation-form__timing,
    .session-preparation-form__wide,
    .session-preparation-form__note { grid-column: 1 / -1; }
    .session-preparation-form__quantity,
    .session-preparation-form__unit,
    .session-preparation-form__usage-route { grid-column: auto; }
    .session-preparation-form__frequency { grid-column: 1 / -1; }
}

@media (max-width: 980px) {
    .practitioner-preparation-grid { grid-template-columns: minmax(0, 1fr); }
}

@container (max-width: 520px) {
    .session-preparation-form { grid-template-columns: minmax(0, 1fr); padding: 12px; }
    .session-preparation-form__source,
    .session-preparation-form__metric,
    .session-preparation-form__usage-route,
    .session-preparation-form__frequency,
    .session-preparation-form__timing,
    .session-preparation-form__wide,
    .session-preparation-form__note { grid-column: 1; }
    .session-preparation-form__actions { justify-content: flex-start; }
    .session-preparation-form__actions .btn { width: auto; }
    .session-preparation-list { margin-top: 22px; padding: 12px; }
}

@media (max-width: 620px) {
    .practitioner-preparation-card { align-items: stretch; flex-direction: column; }
    .practitioner-preparation-card > .btn,
    .practitioner-preparation-card__actions { align-self: flex-start; }
}

/* Animal documents — shared practitioner/client component */
.animal-documents {
    container-type: inline-size;
    grid-column: 1 / -1;
    padding: 18px;
}

.animal-documents__heading > span svg,
.animal-document svg,
.animal-documents__submit svg {
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.animal-documents__heading > span svg { height: 20px; width: 20px; }

.animal-documents__upload {
    align-items: end;
    background: #f5f8f6;
    border: 1px solid #cadbd3;
    border-radius: 12px;
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(260px, 520px) auto auto;
    margin-top: 15px;
    padding: 13px;
    width: min(100%, 860px);
}

.animal-documents__file {
    display: grid;
    gap: 5px;
    margin: 0;
    min-width: 0;
}

.animal-documents__file > span {
    color: var(--color-primary-strong);
    font-size: var(--font-size-table, .76rem);
    font-weight: var(--font-weight-label, 850);
}

.animal-documents__file input[type="file"] {
    background: #fff;
    border: 1px solid #c7d2cd;
    border-radius: 9px;
    box-sizing: border-box;
    color: var(--color-text);
    font: inherit;
    font-size: var(--font-size-input, .78rem);
    min-height: 42px;
    padding: 6px;
    width: 100%;
}

.animal-documents__file input[type="file"]::file-selector-button {
    background: #e5efea;
    border: 1px solid #b6cdc2;
    border-radius: 7px;
    color: #315f50;
    cursor: pointer;
    font: inherit;
    font-weight: var(--font-weight-label, 800);
    margin-right: 9px;
    padding: 6px 9px;
}

.animal-documents__file small { color: var(--color-text-soft); font-size: var(--font-size-help, .68rem); }
.animal-documents__share-choice { align-items: center; color: #465b52; display: flex; font-size: var(--font-size-table, .76rem); font-weight: var(--font-weight-label, 750); gap: 7px; padding-bottom: 10px; white-space: nowrap; }
.animal-documents__share-choice input { height: 18px; margin: 0; width: 18px; }
.animal-documents__submit { gap: 6px; margin-bottom: 2px; white-space: nowrap; width: auto; }
.animal-documents__submit svg { height: 17px; width: 17px; }

.animal-documents__empty {
    background: #faf9f7;
    border: 1px dashed #cfc7bf;
    border-radius: 10px;
    color: var(--color-text-soft);
    font-size: var(--font-size-table, .78rem);
    margin: 13px 0 0;
    padding: 14px;
}

.animal-documents__list { display: grid; gap: 8px; list-style: none; margin: 14px 0 0; padding: 0; }
.animal-document { align-items: center; background: #fff; border: 1px solid #d9dedb; border-left: 4px solid #4d7e70; border-radius: 10px; display: grid; gap: 11px; grid-template-columns: 38px minmax(0, 1fr) auto auto; min-width: 0; padding: 10px 11px; }
.animal-document__icon { align-items: center; background: #e7f0ec; border-radius: 9px; color: #386656; display: flex; height: 36px; justify-content: center; width: 36px; }
.animal-document__icon svg { height: 19px; width: 19px; }
.animal-document__identity { display: grid; gap: 2px; min-width: 0; }
.animal-document__identity strong { color: #2f3e38; font-size: var(--font-size-table, .84rem); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.animal-document__identity small { color: var(--color-text-soft); font-size: var(--font-size-help, .68rem); }
.animal-document__origin { color: #527063; font-size: var(--font-size-caption, .67rem); font-weight: var(--font-weight-label, 800); }
.animal-document__context { color: #8d5139; font-size: var(--font-size-caption, .67rem); font-weight: var(--font-weight-label, 800); }
.animal-document__sharing { background: #f1ede9; border: 1px solid #ddd2c8; border-radius: 999px; color: #75685e; font-size: var(--font-size-caption, .66rem); font-weight: var(--font-weight-label, 850); padding: 5px 8px; white-space: nowrap; }
.animal-document__sharing.is-shared { background: #e6f1eb; border-color: #bad2c5; color: #32614f; }
.animal-document__actions { align-items: center; display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.animal-document__actions form { margin: 0; }
.animal-document__actions .table-action { font-size: var(--font-size-control, .7rem); min-height: 32px; }
.animal-document__preview { align-items: center; display: inline-flex; height: 32px; justify-content: center; min-width: 32px; padding: 5px; width: 32px; }
.animal-document__preview svg { fill: none; height: 17px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 17px; }
.animal-document__download { gap: 5px; }
.animal-document__download svg { height: 15px; width: 15px; }
.animal-document__delete { align-items: center; display: inline-flex; height: 32px; justify-content: center; min-width: 32px; padding: 5px; width: 32px; }
.animal-document__delete svg { height: 17px; width: 17px; }

@container (max-width: 760px) {
    .animal-documents__upload { align-items: stretch; grid-template-columns: minmax(0, 1fr); }
    .animal-documents__share-choice { padding-bottom: 0; white-space: normal; }
    .animal-documents__submit { justify-self: start; }
    .animal-document { grid-template-columns: 38px minmax(0, 1fr); }
    .animal-document__sharing,
    .animal-document__actions { grid-column: 2; justify-self: start; }
    .animal-document__actions { justify-content: flex-start; }
}

@container (max-width: 430px) {
    .animal-documents { padding: 14px; }
    .animal-document { grid-template-columns: minmax(0, 1fr); }
    .animal-document__icon { display: none; }
    .animal-document__sharing,
    .animal-document__actions { grid-column: 1; }
    .animal-document__identity strong { white-space: normal; word-break: break-word; }
}

/* Canonical animal-document explorer — practitioner and client */
.document-library-page { container-name: document-library; container-type: inline-size; display: grid; gap: 18px; }
.storage-quota-alert { align-items: center; background: #fff4ed; border: 1px solid #dfaa8d; border-left: 5px solid #b85f3d; border-radius: 14px; display: flex; gap: 18px; justify-content: space-between; padding: 16px 18px; }
.storage-quota-alert strong { color: #813c27; display: block; font-size: var(--font-size-body, .94rem); }
.storage-quota-alert p { color: #69574f; font-size: var(--font-size-table, .78rem); margin: 4px 0 0; }
.storage-quota-alert > div:last-child { display: flex; flex: none; flex-wrap: wrap; gap: 8px; }
.storage-settings-page { display: grid; gap: 18px; margin-inline: auto; max-width: 980px; width: 100%; }
.subscription-settings-page { display: grid; gap: var(--ui-space-6, 24px); margin-inline: auto; max-width: none; width: 100%; }
.subscription-settings-page > .page-header.aenima-page-hero.practitioner-page-hero { margin-bottom: 0; }
.app-content--settings > .page > :is(.hero-card, .page-header.aenima-page-hero):has(h1) {
  align-items: center;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 14rem;
  padding: clamp(1.9rem, 4vw, 3.1rem) clamp(2rem, 5vw, 4.5rem);
  border: 0;
  background: var(--color-settings-hero);
  color: var(--color-surface);
  box-shadow: 0 18px 42px rgb(var(--color-text-rgb) / 0.18);
}
.app-content--settings > .page > :is(.hero-card, .page-header.aenima-page-hero):not(.practitioner-page-hero):has(h1)::before {
  content: "";
  position: absolute;
  top: -45%;
  right: -26%;
  bottom: auto;
  left: -20%;
  z-index: 0;
  width: auto;
  height: 183%;
  border: 0;
  background: var(--color-secondary-muted);
  opacity: .1;
  transform: none;
  pointer-events: none;
  mask: url("/assets/images/client-home-cat-paw-trail.png") center / auto 100% no-repeat;
  -webkit-mask: url("/assets/images/client-home-cat-paw-trail.png") center / auto 100% no-repeat;
}
.app-content--settings > .page > :is(.hero-card, .page-header.aenima-page-hero):has(h1) > * {
  position: relative;
  z-index: 1;
}
.app-content--settings > .page > :is(.hero-card, .page-header.aenima-page-hero):has(h1) .badge {
  border: 1px solid rgb(var(--color-white-rgb) / .28);
  background: rgb(var(--color-white-rgb) / .09);
  color: var(--color-surface);
}
.app-content--settings > .page > :is(.hero-card, .page-header.aenima-page-hero):has(h1) h1 {
  color: var(--color-surface);
  font-size: var(--font-size-page-title-fluid, var(--font-size-page-title, 1.875rem));
  font-weight: var(--font-weight-body, 400);
  line-height: var(--line-height-title, 1.04);
}
.app-content--settings > .page > :is(.hero-card, .page-header.aenima-page-hero):has(h1) h1 strong {
  color: var(--color-secondary-muted);
  font-weight: var(--font-weight-title, 700);
}
.app-content--settings > .page > :is(.hero-card, .page-header.aenima-page-hero):has(h1) > div > p {
  color: rgb(var(--color-white-rgb) / .9);
}
.app-content--settings > .page > :is(.hero-card, .page-header.aenima-page-hero):has(h1) > form label > span {
  color: var(--color-surface);
}
.app-content--settings > .page > :is(.hero-card, .page-header.aenima-page-hero):has(h1) :is(.btn-primary, .btn-secondary, .btn-ghost) {
  border-color: var(--color-surface);
  background: var(--color-surface);
  color: var(--color-primary-deep);
}
.app-content--settings > .page > :is(.hero-card, .page-header.aenima-page-hero):has(h1) :is(.btn-primary, .btn-secondary, .btn-ghost):is(:hover, :focus-visible) {
  border-color: var(--color-secondary-muted);
  background: var(--color-secondary-muted);
  color: var(--color-primary-deep);
}
.app-content--settings > .page > :is(.hero-card, .page-header.aenima-page-hero):has(h1) .btn-back,
.app-content--settings > .page > :is(.hero-card, .page-header.aenima-page-hero):has(h1) .btn-back:is(:hover, :focus-visible) {
  color: var(--color-surface);
}
.subscription-settings-page > .practitioner-page-hero-intro { margin-block: 0; }
.subscription-upgrade-notice { align-items: center; background: var(--color-secondary-faint); border: 1px solid var(--color-secondary-muted); border-left: 5px solid var(--color-secondary-strong); border-radius: 14px; display: grid; gap: 14px; grid-template-columns: 44px minmax(0, 1fr) auto; margin-block-end: var(--ui-space-6); padding: 16px 18px; scroll-margin-top: 110px; }
.subscription-upgrade-notice__icon { align-items: center; background: var(--color-secondary-deep); border-radius: 12px; color: #fff; display: flex; font-size: var(--font-size-card-title); height: 44px; justify-content: center; width: 44px; }
.subscription-upgrade-notice__copy { min-width: 0; }
.subscription-upgrade-notice__copy strong { color: var(--color-secondary-deep); display: block; font-size: var(--font-size-body); }
.subscription-upgrade-notice__copy p { color: var(--color-primary-deep); font-size: var(--font-size-body); line-height: 1.5; margin: 4px 0 0; }
.subscription-upgrade-notice__action { justify-self: end; white-space: normal; }
.subscription-gated-action { box-sizing: border-box; display: inline-flex; margin-bottom: var(--ui-space-3, 12px); max-width: 100%; min-width: 0; position: relative; width: fit-content; }
.subscription-gated-action--setting { display: block; margin-bottom: var(--ui-space-4, 16px); width: 100%; }
.subscription-gated-action--setting .practitioner-opening-hours__holiday { margin-bottom: 0; }
.subscription-upgrade-label { background: var(--ui-back-icon-background); border: 1px solid var(--ui-back-icon-background); border-radius: 999px; bottom: -13px; color: var(--ui-back-icon-foreground); display: inline-flex; font-size: var(--font-size-caption); font-weight: var(--font-weight-label, 700); line-height: 1.15; padding: 2px 7px; position: absolute; right: 8px; text-decoration: none; white-space: nowrap; z-index: 2; }
.subscription-upgrade-label:hover, .subscription-upgrade-label:focus-visible { background: color-mix(in srgb, var(--ui-back-icon-background) 82%, var(--color-surface)); border-color: var(--ui-back-icon-foreground); color: var(--ui-back-icon-foreground); }
@media (max-width: 640px) {
  .detail-hero:has(> .subscription-gated-action) { align-items: flex-start; flex-direction: column; }
  .subscription-gated-action { max-width: 100%; }
}
.article-workspace--unavailable .article-workspace__layout { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 740px) { .subscription-upgrade-notice { grid-template-columns: 44px minmax(0, 1fr); } .subscription-upgrade-notice__action { grid-column: 2; justify-self: start; } }
.subscription-current-card, .subscription-usage-card { display: grid; gap: 18px; }
.subscription-current-card > header, .subscription-usage-card > header, .subscription-plan-section > .section-heading { align-items: center; border-bottom: 1px solid var(--color-border); display: grid; gap: 12px; grid-template-columns: minmax(0, 1fr); padding-bottom: 14px; }
.subscription-current-card header small, .subscription-usage-card header small, .subscription-plan-section small { color: var(--color-secondary-deep); font-size: var(--font-size-help, .68rem); font-weight: var(--font-weight-label, 850); letter-spacing: .08em; text-transform: uppercase; }
.subscription-current-card header h2, .subscription-usage-card header h2, .subscription-plan-section h2 { margin: 2px 0 0; }
.subscription-current-card__meta { align-items: center; display: flex; flex-wrap: wrap; gap: 12px 18px; }
.subscription-current-card__meta p { margin: 0; }
.subscription-current-card__cancellation { flex-basis: 100%; margin: 0; }
.ui-checkbox-control { appearance:none; display:grid; place-items:center; flex:0 0 20px; width:20px; height:20px; min-height:0; margin:0; padding:0; border:1.5px solid var(--color-text-soft); border-radius:4px; background:var(--color-surface); cursor:pointer; box-sizing:border-box; }
.ui-checkbox-control::before { content:''; width:5px; height:10px; border:solid var(--color-surface); border-width:0 2px 2px 0; transform:translateY(-1px) rotate(45deg) scale(0); }
.ui-checkbox-control:checked { background:var(--color-primary-strong); border-color:var(--color-primary-strong); }
.ui-checkbox-control:checked::before { transform:translateY(-1px) rotate(45deg) scale(1); }
.ui-checkbox-control:hover { border-color:var(--color-primary); }
.ui-checkbox-control:focus-visible { outline:3px solid var(--color-focus); outline-offset:3px; }
.ui-checkbox-control:disabled { opacity:.5; cursor:not-allowed; }
@media(forced-colors:active) { .ui-checkbox-control:checked::before { border-color:CanvasText; } }
.ui-radio-control { appearance: none; display: grid; place-items: center; flex: 0 0 22px; width: 22px; height: 22px; margin: 0; border: 1.5px solid var(--color-text-soft); border-radius: 50%; background: rgb(var(--color-white-rgb)); cursor: pointer; box-sizing: border-box; }
.ui-radio-control::before { content: ''; width: 10px; height: 10px; border-radius: 50%; background: var(--color-secondary-strong); transform: scale(0); }
.ui-radio-control:checked { border-color: var(--color-secondary-strong); }
.ui-radio-control:checked::before { transform: scale(1); }
.ui-radio-control:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; }
@media (forced-colors: active) { .ui-radio-control:checked::before { background: CanvasText; } }
.subscription-plan-section { display: grid; gap: var(--ui-space-7, 28px); min-width: 0; }
.subscription-plan-grid { display: grid; gap: var(--ui-space-7, 28px) var(--ui-space-4, 16px); grid-template-columns: repeat(3, minmax(0, 1fr)); min-width: 0; }
.subscription-evaluation-action { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: var(--ui-space-3); padding: var(--ui-space-4); border: 1px solid var(--color-border); border-radius: var(--ui-radius-card); background: var(--color-secondary-faint); }
.subscription-evaluation-action p, .subscription-evaluation-action form { margin: 0; }
.subscription-native-set-section { container-type: inline-size; }
.subscription-native-set-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--ui-space-4); min-width: 0; padding-top: var(--ui-space-5); }
.practitioner-onboarding-journey__offer-card.subscription-native-set-card { grid-row: span 2; grid-template-rows: subgrid; align-self: stretch; margin-top: var(--ui-space-4); }
.subscription-native-set-card .subscription-native-set-card__icon { width: 3rem; height: 3rem; border-color: var(--color-secondary-strong); background: var(--color-secondary-faint); }
.subscription-native-set-card .subscription-native-set-card__icon img { width: 100%; height: 100%; object-fit: contain; }
.subscription-native-set-card .subscription-native-set-card__icon--group { display: flex; align-items: center; justify-content: center; width: 4.5rem; gap: 0; padding-inline: var(--ui-space-1); }
.subscription-native-set-card .subscription-native-set-card__icon--group img { width: 1.55rem; height: 1.55rem; flex: 0 0 1.55rem; margin-inline: -.15rem; object-fit: contain; }
.subscription-native-set-card .subscription-native-set-card__content { gap: var(--ui-space-2, 8px); padding: calc(var(--ui-space-7, 28px) + 12px) var(--ui-space-3, 12px) var(--ui-space-4, 16px); }
.subscription-native-set-card__content p { color: var(--color-text-soft); font-size: var(--font-size-body); }
.subscription-native-set-card__details { width: 100%; margin-top: var(--ui-space-2); text-align: left; }
.subscription-native-set-card__details > summary { display: table; margin-inline: auto; padding: .3rem .7rem; border: 1px solid var(--color-secondary-strong); border-radius: var(--ui-radius-badge); background: var(--color-secondary-faint); color: var(--color-secondary-deep); font-size: var(--font-size-help); font-weight: var(--font-weight-label); cursor: pointer; list-style: none; }
.subscription-native-set-card__details > summary::-webkit-details-marker { display: none; }
.subscription-native-set-card__details > summary:hover, .subscription-native-set-card__details > summary:focus-visible { background: var(--color-secondary-soft); }
.subscription-native-set-card__details > summary:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; }
.subscription-native-set-card__details-content { margin-top: var(--ui-space-3); padding-top: var(--ui-space-3); border-top: 1px solid var(--color-border); color: var(--color-text-soft); font-size: var(--font-size-help); line-height: 1.45; }
.subscription-native-set-card__details-content > strong { display: block; color: var(--color-primary-deep); }
.subscription-native-set-card__previews { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ui-space-2); margin-bottom: var(--ui-space-3); }
.subscription-native-set-card__previews figure { min-width: 0; margin: 0; }
.subscription-native-set-card__previews img { display: block; width: 100%; max-height: 8rem; object-fit: contain; border: 1px solid var(--color-border); border-radius: var(--ui-radius-control); background: var(--color-surface); }
.subscription-native-set-card__details-content ul { display: grid; gap: var(--ui-space-1); margin: var(--ui-space-2) 0 0; padding-left: 1.2rem; }
.subscription-native-set-card__details-content p { margin-top: var(--ui-space-2); font-size: inherit; }
.subscription-native-set-card__footer { gap: var(--ui-space-2); padding: var(--ui-space-3); }
.subscription-native-set-card__price { display: flex; align-items: baseline; justify-content: center; flex-wrap: wrap; gap: var(--ui-space-1); margin: 0; color: var(--color-primary-deep); }
.subscription-native-set-card__price strong { font-size: var(--font-size-card-title); }
.subscription-native-set-card__price span { color: var(--color-text-soft); font-size: var(--font-size-help); }
.subscription-native-set-card__coming-soon { color: var(--color-text-soft); }
@container (max-width: 760px) { .subscription-native-set-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: var(--ui-space-7); } }
@container (max-width: 540px) { .subscription-native-set-grid { grid-template-columns: minmax(0, 1fr); } }
.subscription-settings-page { scroll-behavior: smooth; }
.subscription-settings-page #subscription-formulas, .subscription-settings-page #shiatsu-sets, .subscription-settings-page #ai-credits { scroll-margin-top: var(--ui-space-8); }
.subscription-ai-credits { container-type: inline-size; }
.subscription-ai-credits .section-heading h2 { font-weight: var(--font-weight-body); }
.subscription-ai-credits .section-heading h2 strong { color: var(--color-secondary-deep); font-weight: var(--font-weight-title); }
.subscription-ai-credits__balance { display: grid; gap: var(--ui-space-4); padding: var(--ui-space-5); min-width: 0; }
.subscription-ai-credits__available { display: flex; align-items: center; gap: var(--ui-space-3); min-width: 0; }
.subscription-ai-credits__available img { flex: 0 0 4rem; width: 4rem; height: 4rem; object-fit: contain; }
.subscription-ai-credits__available > div { display: grid; gap: var(--ui-space-1); min-width: 0; }
.subscription-ai-credits__available strong { color: var(--color-primary-deep); font-size: var(--font-size-section-title); }
.subscription-ai-credits__details { display: flex; flex-wrap: wrap; gap: var(--ui-space-4) var(--ui-space-7); margin: 0; }
.subscription-ai-credits__details > div { display: grid; gap: var(--ui-space-1); min-width: 0; }
.subscription-ai-credits__details dt { color: var(--color-text-soft); font-size: var(--font-size-help); }
.subscription-ai-credits__details dd { margin: 0; color: var(--color-primary-deep); font-weight: var(--font-weight-label); overflow-wrap: anywhere; }
.subscription-ai-credits__details dd span { color: var(--color-text-soft); font-weight: var(--font-weight-body); }
.subscription-ai-credits__balance > p, .subscription-ai-credits__intro { margin: 0; color: var(--color-text-soft); }
.subscription-ai-credits__balance--sms { gap: var(--ui-space-4); padding: 0; width: min(100%, 44rem); margin-inline: auto; }
.subscription-ai-credits__counters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ui-space-4); margin: 0; }
.subscription-ai-credits__counter { min-width: 0; aspect-ratio: auto; overflow: visible; grid-row: span 2; grid-template-rows: subgrid; justify-items: center; text-align: center; padding: var(--ui-space-4); }
.subscription-ai-credits__counter dt { align-self: center; }
.subscription-ai-credits__counter .dashboard-kpi__value { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--ui-space-1); box-sizing: border-box; width: 7rem; max-width: 100%; aspect-ratio: 1; margin: 0; padding: var(--ui-space-2); border: var(--ui-space-1) solid var(--color-primary-soft); border-radius: 50%; color: var(--color-primary-deep); font-size: var(--font-size-section-title); font-weight: var(--font-weight-title); line-height: var(--line-height-title); overflow-wrap: anywhere; }
.subscription-ai-credits__counter .dashboard-kpi__value span { font-size: var(--font-size-help); font-weight: var(--font-weight-body); }
.subscription-ai-credits__counter--total .dashboard-kpi__value { background: var(--color-primary-soft); border-color: var(--color-primary); }
.subscription-ai-credits__renewal { margin: 0; padding: var(--ui-space-3) var(--ui-space-4); border: 1px solid var(--color-border); border-radius: var(--ui-radius-control); background: var(--color-surface); }
.subscription-ai-credits__renewal > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--ui-space-2) var(--ui-space-4); }
.subscription-ai-credits__renewal dt { color: var(--color-text-soft); }
.subscription-ai-credits__renewal dd { margin: 0; color: var(--color-primary-deep); font-weight: var(--font-weight-label); }
.subscription-ai-credits__guidance { display: grid; gap: var(--ui-space-4); min-width: 0; }
.subscription-ai-credits__guidance > div { display: grid; align-content: start; gap: var(--ui-space-2); min-width: 0; }
.subscription-ai-credits__guidance h3 { margin: 0; font-size: var(--font-size-label); font-weight: var(--font-weight-label); color: var(--color-text); }
.subscription-ai-credits__guidance ul { display: grid; gap: var(--ui-space-1); margin: 0; padding-left: var(--ui-space-4); font-size: var(--font-size-help); }
.subscription-ai-credits__unit-price { margin: 0; color: var(--color-text); font-weight: var(--font-weight-label); }
.subscription-ai-credits__access { display: grid; justify-items: start; gap: var(--ui-space-3); }
.subscription-ai-credits__access p { margin: 0; color: var(--color-text-soft); }
@container (max-width: 540px) {
  .subscription-ai-credits__counters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .subscription-ai-credits__counter--total { grid-column: 1 / -1; }
}
.subscription-ai-credits__recharge-title { margin: 0 0 var(--ui-space-2); color: var(--color-primary-deep); font-size: var(--font-size-card-title); }
.subscription-ai-credits__offers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ui-space-4); width: min(100%, 44rem); padding-top: var(--ui-space-5); }
.subscription-ai-credits__offers--sms { grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; }
.subscription-ai-credit-card .btn { max-width: 100%; white-space: normal; }
.subscription-ai-credit-card .practitioner-onboarding-journey__offer-name { font-size: var(--font-size-card-title); line-height: var(--line-height-title); }
.subscription-ai-credits__history ol { display: grid; gap: 0; padding: 0; margin: var(--ui-space-4) 0 0; list-style: none; }
.subscription-ai-credits__history li { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--ui-space-2) var(--ui-space-4); padding-block: var(--ui-space-3); border-top: 1px solid var(--color-border); }
.subscription-ai-credits__history time { color: var(--color-text-soft); font-size: var(--font-size-help); }
.subscription-ai-credits__history li > span { flex: 1 1 15rem; min-width: 0; }
.subscription-ai-credits__history strong { color: var(--color-primary-deep); }
@container (max-width: 540px) { .subscription-ai-credits__offers { grid-template-columns: minmax(0, 1fr); row-gap: var(--ui-space-7); } }
.subscription-settings-page .subscription-hero-shortcuts { display: flex; flex-wrap: wrap; gap: var(--ui-space-2); }
.subscription-settings-page .subscription-hero-total { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ui-space-2) var(--ui-space-4); width: min(100%, 44rem); padding: var(--ui-space-2) var(--ui-space-3); border: 1px solid rgb(var(--color-secondary-rgb) / .6); border-radius: var(--ui-radius-control); background: rgb(var(--color-secondary-rgb) / .18); color: var(--color-surface); font-size: var(--font-size-help); }
.subscription-hero-total > span { display: inline-flex; flex-wrap: wrap; gap: var(--ui-space-1); }
.subscription-hero-total__sum { margin-left: auto; color: var(--color-hero-highlight); font-weight: var(--font-weight-label); }
.subscription-hero-total small { flex-basis: 100%; color: var(--color-surface); }
.subscription-settings-page .subscription-section-shortcut { min-height: 2.1rem; padding: var(--ui-space-1) var(--ui-space-3); border: 1px solid var(--color-highlight-strong); background: var(--color-highlight-strong); color: #fff; font-size: var(--font-size-help); font-weight: var(--font-weight-label); text-decoration: none; white-space: nowrap; }
.subscription-settings-page .subscription-section-shortcut:hover, .subscription-settings-page .subscription-section-shortcut:focus-visible { border-color: var(--color-secondary-deep); background: var(--color-secondary-deep); color: #fff; }
@media (prefers-reduced-motion: no-preference) { html:has(.subscription-settings-page) { scroll-behavior: smooth; } }
@media (max-width: 1000px) { .subscription-plan-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.subscription-plan-card { min-width: 0; position: relative; }
.practitioner-onboarding-journey__offer-card.subscription-plan-card { grid-row: span 2; grid-template-rows: subgrid; align-self: stretch; }
.subscription-plan-card .practitioner-onboarding-journey__offer-content { display: flex; flex-direction: column; align-items: center; }
.subscription-plan-card .practitioner-onboarding-journey__offer-benefits { margin-top: auto; padding-top: var(--ui-space-2); }
.subscription-plan-card .subscription-plan-card__menu { position: absolute; right: var(--ui-space-4, 16px); top: var(--ui-space-4, 16px); }
.subscription-plan-card__menu > summary { box-shadow: var(--shadow); }
.subscription-settings-page .subscription-plan-card--current { border: 2px solid var(--color-primary); box-shadow: 9px 11px 0 var(--color-primary-soft), var(--shadow); }
.subscription-plan-card h3 { margin: 0; font-size: var(--font-size-card-title); }
.subscription-plan-card__heading { display: grid; justify-items: center; gap: var(--ui-space-1); min-width: 0; }
.subscription-plan-card__no-commitment { color: var(--color-text-soft); font-size: var(--font-size-help); font-style: italic; font-weight: var(--font-weight-body); text-align: center; }
.subscription-plan-card__price-note { margin: 0; color: var(--color-text-soft); font-size: var(--font-size-help); font-style: italic; text-align: center; }
.subscription-plan-card__no-commitment a { color: inherit; text-decoration: none; }
.subscription-plan-card__no-commitment a:hover, .subscription-plan-card__no-commitment a:focus-visible { color: var(--color-primary-deep); }
.subscription-plan-card__no-commitment a:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 3px; }
.subscription-plan-card__prices { display: flex; align-items: baseline; justify-content: center; flex-wrap: wrap; gap: var(--ui-space-2, 8px) var(--ui-space-5, 20px); }
.subscription-plan-card__prices p { display: flex; align-items: baseline; gap: var(--ui-space-1, 4px); margin: 0; color: var(--color-primary-deep); white-space: nowrap; }
.subscription-plan-card__prices strong { font-size: var(--font-size-section-title); }
.subscription-plan-card__prices span { color: var(--color-text-soft); }
.subscription-plan-card .subscription-plan-card__promotion { display: grid; justify-items: center; gap: var(--ui-space-1); max-width: 100%; color: var(--color-primary-deep); text-align: center; white-space: normal; }
.subscription-plan-card__promotion del { color: var(--color-text-soft); font-size: var(--font-size-body); font-weight: var(--font-weight-body); }
.subscription-plan-card__promotion > strong { color: var(--color-accent-strong); font-size: var(--font-size-section-title); line-height: 1.1; }
.subscription-plan-card__promotion > span { color: var(--color-accent-strong); font-weight: var(--font-weight-label); }
.subscription-plan-card__promotion small { color: var(--color-text-soft); font-size: var(--font-size-help); font-weight: var(--font-weight-body); }
.subscription-plan-features { display: grid; gap: 0; list-style: none; margin: 0; padding: 0; }
.subscription-plan-features li { align-items: center; border-top: 1px solid var(--color-border); display: flex; gap: 16px; justify-content: space-between; padding: 10px 0; }
.subscription-plan-features li.is-disabled { color: var(--color-text-muted); opacity: .65; }
.subscription-plan-features strong { text-align: right; }
.subscription-plan-card__status { margin-top: 0; }
.subscription-plan-card__choice { display: grid; justify-items: center; gap: var(--ui-space-3); width: 100%; min-width: 0; margin: 0; }
.subscription-plan-card__choice fieldset { min-width: 0; max-width: 100%; margin: 0; }
.subscription-plan-card:not(:has(input[name="interval"]:checked)) .practitioner-onboarding-journey__offer-price--year { display: block; }
.subscription-plan-card__current-label { align-self: center; margin-bottom: 0; border-color: var(--ui-back-icon-background); background: var(--ui-back-icon-background); box-shadow: 0 5px 0 var(--color-primary-soft); color: var(--ui-back-icon-foreground); }
.subscription-plan-card--current-month:has(input[name="interval"][value="month"]:checked) .subscription-plan-card__change-button,
.subscription-plan-card--current-year:has(input[name="interval"][value="year"]:checked) .subscription-plan-card__change-button { display: none; }
.subscription-cancellation-notice, .subscription-information-notice { box-sizing: border-box; display: grid; grid-template-columns: 24px minmax(0, 1fr); align-items: start; gap: var(--ui-space-3, 12px); width: min(100%, 620px); margin: var(--ui-space-5, 20px) auto; padding: var(--ui-space-4, 16px); border: 1px solid var(--color-border); border-radius: var(--ui-radius-control, 12px); background: rgb(var(--color-text-rgb) / .055); color: var(--color-text-soft); font-size: var(--font-size-body); line-height: 1.5; scroll-margin-top: calc(2 * var(--ui-space-8)); }
.subscription-cancellation-notice:target { border-color: var(--color-primary); }
.subscription-cancellation-notice__icon, .subscription-information-notice__icon { display: grid; place-items: center; width: 22px; height: 22px; border: 1.5px solid currentColor; border-radius: 50%; color: var(--color-primary); font-size: var(--font-size-label); font-weight: var(--font-weight-label); line-height: 1; }
.subscription-cancellation-notice p, .subscription-information-notice p { margin: 0; }
.subscription-cancellation-notice strong, .subscription-information-notice strong { color: var(--color-text); font-weight: var(--font-weight-label); }
.subscription-cancellation-notice small, .subscription-information-notice small { display: block; margin-top: var(--ui-space-2, 8px); color: var(--color-text-subtle); font-size: var(--font-size-help); font-weight: var(--font-weight-body, 400); letter-spacing: normal; text-transform: none; }
.subscription-plan-card__checkout { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--ui-space-2, 8px); }
.subscription-plan-card__checkout form { margin: 0; }
.subscription-plan-card__checkout .btn { max-width: 100%; white-space: normal; }
.subscription-plan-card__details { min-width: 0; }
.subscription-plan-card__comparison { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.subscription-plan-card__comparison li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--ui-space-1) var(--ui-space-2); align-items: baseline; padding: var(--ui-space-2) 0; border-bottom: 1px solid var(--color-border); }
.subscription-plan-card__comparison li:last-child { border-bottom: 0; }
.subscription-plan-card__comparison strong { color: var(--color-primary-deep); text-align: right; white-space: nowrap; }
.subscription-plan-card__comparison .is-unavailable strong { color: var(--color-text-soft); }
.subscription-plan-card__comparison em { grid-column: 1 / -1; color: var(--color-text-soft); font-size: var(--font-size-help); }
.subscription-plan-card__period-end { margin: 0; color: var(--color-text-soft); font-size: var(--font-size-help); line-height: 1.5; text-align: center; }
.subscription-plan-card__period-end strong { color: var(--color-primary-deep); font-weight: var(--font-weight-label); }
.subscription-usage-grid { display: grid; gap: var(--ui-space-3); grid-template-columns: repeat(5, minmax(0, 1fr)); }
.dashboard-page .subscription-usage-grid { display: flex; flex-wrap: wrap; justify-content: center; max-width: calc(4 * 155px + 3 * var(--ui-space-3)); margin-inline: auto; overflow-x: visible; }
.dashboard-page .subscription-usage-card__item { flex: 0 0 155px; }
.subscription-usage-grid .subscription-usage-card__item { min-width: 0; padding: var(--ui-space-3); aspect-ratio: auto; overflow: visible; grid-template-columns: minmax(0, 1fr); grid-template-rows: subgrid; grid-row: span 3; align-content: start; }
.subscription-usage-card__item .dashboard-kpi__label { grid-column: 1 / -1; overflow-wrap: anywhere; hyphens: auto; }
.subscription-usage-card__item .dashboard-kpi__value { max-width: 100%; min-width: 0; grid-column: 1; grid-row: 2; align-self: end; color: var(--color-text); overflow-wrap: anywhere; }
.subscription-usage-card__item .dashboard-kpi__icon { position: static; grid-column: 1; grid-row: 3; align-self: end; justify-self: end; }
.subscription-usage-card__item .dashboard-kpi__icon--credit { background: none; object-fit: contain; color: var(--color-secondary-deep); }
.subscription-usage-card__item svg.dashboard-kpi__icon--credit { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; background: var(--color-secondary-muted); padding: var(--ui-space-2); }
.subscription-usage-card__item--storage .dashboard-kpi__value { max-width: 100%; font-size: var(--font-size-help); white-space: normal; }
.subscription-usage-card__item--storage .dashboard-kpi__value { grid-column: 1 / -1; }
.subscription-usage-card__item--storage .dashboard-kpi__icon { grid-row: 3; }
@media (max-width: 900px) { .subscription-usage-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .dashboard-page .subscription-usage-grid { max-width: calc(2 * 155px + var(--ui-space-3)); } }
@media (max-width: 400px) { .dashboard-page .subscription-usage-grid { max-width: 155px; } }
@media (max-width: 700px) { .subscription-plan-grid { grid-template-columns: 1fr; } }
@media (max-width: 520px) {
  .subscription-usage-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: calc(320px + var(--ui-space-4)); }
}
.storage-settings-card { display: grid; gap: 18px; }
.storage-settings-hero { align-items: center; flex-wrap: wrap; }
.storage-settings-hero__intro { flex: 1 1 300px; min-width: 0; }
.storage-settings-hero__summary { --storage-meter-fill: var(--ui-success-border); display: grid; flex: 0 1 300px; gap: 8px; width: min(100%, 300px); padding: 14px 16px; border: 1px solid rgb(255 255 255 / .38); border-radius: var(--ui-radius-control, 12px); background: rgb(255 255 255 / .12); color: #fff; box-shadow: 0 8px 20px rgb(0 0 0 / .12); }
.storage-settings-hero__summary--warning { --storage-meter-fill: var(--ui-warning-border); }
.storage-settings-hero__summary--critical { --storage-meter-fill: var(--ui-danger-on-dark); }
.storage-settings-hero__summary > strong { color: #fff; font-size: var(--font-size-label); }
.storage-settings-hero__usage { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 3px 12px; font-size: var(--font-size-help); }
.storage-settings-hero__usage span:first-child { font-weight: var(--font-weight-label); }
.storage-settings-hero__remaining { font-size: var(--font-size-help); }
.storage-settings-hero__summary .storage-meter__track { box-sizing: border-box; height: 9px; border: 0; background: rgb(255 255 255 / .28); }
.storage-settings-hero__summary .storage-meter__track::-webkit-progress-bar { background: rgb(255 255 255 / .28); }
.storage-settings-hero__summary .storage-meter__track::-webkit-progress-value { background: var(--storage-meter-fill); }
.storage-settings-hero__summary .storage-meter__track::-moz-progress-bar { background: var(--storage-meter-fill); }
.storage-settings-hero__summary a { justify-self: start; padding: 4px 6px; border-radius: var(--ui-radius-control, 12px); color: var(--color-surface); font-size: var(--font-size-help); font-weight: var(--font-weight-label); text-decoration: none; }
.storage-settings-hero__summary a:hover, .storage-settings-hero__summary a:focus-visible { background: rgb(255 255 255 / .16); color: var(--color-hero-highlight); }
.storage-settings-hero__summary a:focus-visible { outline: 2px solid var(--color-hero-highlight); outline-offset: 2px; }
.storage-settings-card > header { border-bottom: 1px solid var(--color-border); padding-bottom: 14px; }
.storage-settings-card > header small { color: var(--color-secondary-deep); font-size: var(--font-size-help, .68rem); font-weight: var(--font-weight-label, 850); letter-spacing: .08em; text-transform: uppercase; }
.storage-settings-card > header h2 { margin: 2px 0 0; }
.storage-meter { background: #f4f7f5; border: 1px solid #d4dfd9; border-radius: 14px; display: grid; gap: 10px; padding: 16px; }
.storage-meter > div:first-child { align-items: baseline; display: flex; flex-wrap: wrap; gap: 8px; justify-content: space-between; }
.storage-meter > div:first-child strong { color: var(--color-primary-strong); }
.storage-meter > div:first-child span, .storage-meter p { color: var(--color-text-soft); font-size: var(--font-size-table, .74rem); margin: 0; }
.storage-meter__track { appearance: none; background: #dce7e1; border: 0; border-radius: 999px; height: 12px; overflow: hidden; width: 100%; }
.storage-meter__track::-webkit-progress-bar { background: #dce7e1; border-radius: 999px; }
.storage-meter__track::-webkit-progress-value { background: var(--color-primary); border-radius: 999px; }
.storage-meter__track::-moz-progress-bar { background: var(--color-primary); border-radius: 999px; }
.storage-extension-empty { background: #f7f4ef; border: 1px dashed #ccbfae; border-radius: 13px; display: grid; gap: 4px; padding: 16px; }
.storage-extension-empty strong { color: var(--color-primary-strong); }
.storage-extension-empty span { color: var(--color-text-soft); font-size: var(--font-size-table, .76rem); }
.storage-extension-list { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--ui-space-4); padding-top: var(--ui-space-5); }
.storage-extension-card.practitioner-onboarding-journey__offer-card { position: relative; display: grid; grid-row: auto; grid-template-rows: minmax(0, 1fr) auto; flex: 0 0 calc((100% - 3 * var(--ui-space-4)) / 4); align-self: stretch; min-width: 0; margin-top: var(--ui-space-4); padding: 0; border: 1px solid var(--color-border); border-radius: var(--ui-radius-card); background: var(--color-surface); box-shadow: var(--ui-shadow-card-crisp); text-align: center; }
.storage-settings-page .storage-extension-card--current { border: 2px solid var(--color-primary); box-shadow: 9px 11px 0 var(--color-primary-soft), var(--shadow); }
.storage-settings-page .storage-extension-card--scheduled { border-color: var(--color-secondary-strong); }
.storage-extension-card .storage-extension-card__icon { position: absolute; z-index: 1; top: 0; left: 50%; display: grid; place-items: center; width: 4rem; height: 4rem; border: 1px solid var(--color-secondary-strong); border-radius: 50%; background: var(--color-surface); box-shadow: 0 0 0 8px var(--color-surface); transform: translate(-50%, -50%); }
.storage-extension-card__icon img { display: block; width: 100%; height: 100%; object-fit: contain; }
.storage-extension-card .storage-extension-card__content { display: grid; place-items: center; min-width: 0; padding: calc(var(--ui-space-7) + 8px) var(--ui-space-3) var(--ui-space-4); }
.storage-extension-card__content h3 { margin: 0; color: var(--color-primary-deep); font-size: var(--font-size-card-title); }
.storage-extension-card .storage-extension-card__footer { display: grid; justify-items: center; align-content: end; gap: var(--ui-space-2); min-width: 0; padding: var(--ui-space-3); border-top: 1px solid var(--color-border); border-radius: 0 0 var(--ui-radius-card) var(--ui-radius-card); background: var(--color-secondary-faint); }
.storage-extension-card__footer .subscription-native-set-card__price { margin: 0; }
.storage-extension-card__footer .btn { white-space: nowrap; }
.storage-extension-card__footer .badge { justify-self: center; }
.storage-extension-card__date { margin: 0; color: var(--color-text-soft); font-size: var(--font-size-help); line-height: 1.5; }
.storage-extension-card__date strong { color: var(--color-primary-deep); font-weight: var(--font-weight-label); }
.storage-extension-card__scheduled-label { border-color: var(--color-secondary-strong); background: var(--color-secondary-faint); color: var(--color-primary-deep); }
.storage-addon-renewal { display: flex; justify-content: center; margin: var(--ui-space-4) 0 0; }
.storage-extension-card__footer .storage-addon-renewal { margin: var(--ui-space-1) 0 0; }
.storage-extension-card__renewal-link { border: 0; padding: var(--ui-space-1) var(--ui-space-2); background: transparent; color: var(--color-primary-deep); font: inherit; font-size: var(--font-size-help); font-style: italic; cursor: pointer; }
.storage-extension-card__renewal-link:hover, .storage-extension-card__renewal-link:focus-visible { color: var(--color-secondary-strong); text-decoration: underline; }
@media (max-width: 1050px) { .storage-extension-list { row-gap: var(--ui-space-7); } .storage-extension-card.practitioner-onboarding-journey__offer-card { flex-basis: calc((100% - var(--ui-space-4)) / 2); } }
@media (max-width: 560px) { .storage-extension-card.practitioner-onboarding-journey__offer-card { flex-basis: 100%; } }
@media (max-width: 620px) { .storage-settings-hero__summary { flex-basis: 100%; width: min(100%, 300px); } }
.subscription-usage-card > .btn { justify-self: start; margin-top: 14px; }
@media (max-width: 700px) { .storage-quota-alert { align-items: flex-start; flex-direction: column; } .storage-quota-alert > div:last-child { width: 100%; } }
.document-library-hero { align-items: center; display: flex; justify-content: space-between; }
.document-library-hero__count { align-items: center; background: #fff; border: 1px solid #cbdad3; border-radius: var(--ui-radius-control, 14px); display: grid; flex: none; justify-items: center; min-width: 92px; padding: var(--ui-space-3, 12px) var(--ui-space-4, 16px); }
.document-library-hero__count strong { color: var(--color-primary-strong); font-size: var(--font-size-help, 1.4rem); line-height: 1; }
.document-library-hero__count small { color: var(--color-text-soft); font-size: var(--font-size-help, .69rem); margin-top: var(--ui-space-1, 4px); }
.document-drive { background: #fff; border: 1px solid #d8ded9; border-radius: 18px; box-shadow: 0 12px 28px rgba(45, 68, 59, .09); display: grid; grid-template-columns: minmax(250px, 1fr) minmax(0, 2fr); min-height: 640px; min-width: 0; }
.document-drive__tree { background: #f2f5f2; border-radius: 18px 0 0 18px; border-right: 1px solid #d5dfd9; box-sizing: border-box; min-width: 0; padding: 20px 16px; position: relative; }
.document-drive__tree::before { background: #d38159; border-radius: 0 0 18px 0; content: ""; height: 68px; left: 0; opacity: .1; position: absolute; top: 0; width: 68px; }
.document-drive__tree > header { border-bottom: 1px solid #d6dfda; margin-bottom: 14px; padding: 0 5px 15px; position: relative; }
.document-drive__eyebrow { color: #a05e45; display: block; font-size: var(--font-size-caption, .66rem); font-weight: var(--font-weight-label, 900); letter-spacing: .08em; }
.document-drive h2 { color: var(--color-primary-strong); font-size: var(--font-size-section-title, 1.2rem); margin: 3px 0 0; }
.document-tree-recent { align-items: center; border: 1px solid transparent; border-radius: 11px; color: #345a4e; display: grid; gap: 10px; grid-template-columns: 34px minmax(0, 1fr); margin-bottom: 10px; min-height: 52px; padding: 8px 10px; text-decoration: none; }
.document-tree-recent:hover,
.document-tree-recent:focus-visible,
.document-tree-recent.is-active { background: #fff; border-color: #bfcfc7; box-shadow: 0 5px 14px rgba(48, 76, 65, .08); }
.document-tree-recent svg { fill: none; height: 22px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 22px; }
.document-tree-recent span,
.document-tree-client summary > span,
.document-tree-animal summary > span:not(.document-tree-animal__icon) { display: grid; min-width: 0; }
.document-tree-recent strong,
.document-tree-client summary strong,
.document-tree-animal summary strong { overflow-wrap: anywhere; }
.document-tree-recent small,
.document-tree-client summary small,
.document-tree-animal summary small { color: var(--color-text-soft); font-size: var(--font-size-control, .66rem); font-weight: var(--font-weight-label, 700); }
.document-tree { display: grid; gap: 11px; }
.document-tree details > summary { cursor: pointer; list-style: none; }
.document-tree details > summary::-webkit-details-marker { display: none; }
.document-tree-client { background: #fff; border: 1px solid #d6e0db; border-left: 4px solid #d38159; border-radius: 14px; box-shadow: 0 6px 16px rgba(44, 68, 58, .06); min-width: 0; }
.document-tree-client > summary { align-items: center; color: #344f45; display: grid; gap: 10px; grid-template-columns: 38px minmax(0, 1fr) 14px; min-height: 58px; padding: 8px 11px 8px 9px; }
.document-tree-client__icon { align-items: center; background: #f6e9e1; border-radius: 12px; color: #a25336; display: flex; height: 38px; justify-content: center; width: 38px; }
.document-tree-client__icon svg { fill: none; height: 21px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; width: 21px; }
.document-tree-client[open] > summary { border-bottom: 1px solid #e2e8e4; }
.document-tree-client summary i,
.document-tree-animal summary i { border-bottom: 2px solid currentColor; border-right: 2px solid currentColor; display: block; height: 7px; rotate: 45deg; transition: rotate .16s ease; width: 7px; }
.document-tree-client[open] > summary i,
.document-tree-animal[open] > summary i { rotate: 225deg; }
.document-tree-client__animals { display: grid; gap: 7px; padding: 9px; }
.document-tree-animal { min-width: 0; }
.document-tree-animal > summary { align-items: center; background: #f7f8f5; border: 1px solid #e0e5e1; border-radius: 11px; color: #31564a; display: grid; gap: 9px; grid-template-columns: 34px minmax(0, 1fr) 14px; min-height: 50px; padding: 4px 8px 4px 5px; }
.document-tree-animal.is-active > summary { background: #e5f0eb; border-color: #a9c5b7; box-shadow: inset 3px 0 #477765; }
.document-tree-animal > summary:hover strong,
.document-tree-animal > summary:focus-visible strong { color: #b05c36; }
.document-tree-animal__icon { align-items: center; background: #dfece6; border-radius: 50%; color: #3d705d; display: flex; height: 34px; justify-content: center; width: 34px; }
.document-tree-animal__icon svg { fill: none; height: 19px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.65; width: 19px; }
.document-tree-animal.is-active .document-tree-animal__icon { background: #477765; color: #fff; }
.document-tree-animal__open { color: #3b6d5b; display: inline-flex; font-size: var(--font-size-control, .68rem); font-weight: var(--font-weight-label, 800); margin: 7px 10px 1px 44px; min-height: 28px; padding: 5px 0; text-decoration: none; width: fit-content; }
.document-tree-animal__open:hover,
.document-tree-animal__open:focus-visible { color: #a34f31; }
.document-tree-animal__open[aria-current="page"] { color: #294f42; }
.document-tree-animal__open[aria-busy="true"] { opacity: .58; pointer-events: none; }
.document-tree-animal > p { color: var(--color-text-soft); font-size: var(--font-size-table, .68rem); margin: 7px 10px 5px 44px; }
.document-tree-animal ul { display: grid; gap: 4px; list-style: none; margin: 7px 0 2px 13px; padding: 0 0 0 11px; }
.document-tree-animal li.is-movable { cursor: grab; }
.document-tree-animal li.is-movable:active { cursor: grabbing; }
.document-tree-animal li.is-dragging { opacity: .46; }
.document-tree-animal li a { align-items: center; border-left: 2px solid #cfddd5; border-radius: 0 8px 8px 0; color: #536861; display: grid; font-size: var(--font-size-control, .68rem); gap: 7px; grid-template-columns: 16px minmax(0, 1fr); min-height: 34px; padding: 5px 8px; text-decoration: none; }
.document-tree-animal li a:hover,
.document-tree-animal li a:focus-visible { background: #fff; color: #315f50; }
.document-tree-animal li svg { fill: none; height: 14px; stroke: currentColor; stroke-linejoin: round; stroke-width: 1.5; width: 14px; }
.document-tree-animal li span { overflow-wrap: anywhere; }
.document-drive__content { box-sizing: border-box; min-width: 0; padding: 22px; }
.document-library-page[aria-busy="true"] .document-drive__content { opacity: .62; pointer-events: none; transition: opacity .12s ease; }
.document-drive__content-header { align-items: center; border-bottom: 1px solid #e1e5e2; display: flex; gap: 16px; justify-content: space-between; margin-bottom: 14px; min-width: 0; padding-bottom: 16px; }
.document-drive-upload { flex: none; position: relative; }
.document-drive-upload > summary { cursor: pointer; list-style: none; width: auto; }
.document-drive-upload > summary::-webkit-details-marker { display: none; }
.document-drive-upload > form { background: #fff; border: 1px solid #c7d3cd; border-radius: 13px; box-shadow: 0 16px 34px rgba(39, 61, 52, .2); box-sizing: border-box; display: grid; gap: 11px; padding: 15px; position: absolute; right: 0; top: calc(100% + 8px); width: min(540px, calc(100vw - 48px)); z-index: 40; }
.document-drive-upload .field { display: grid; gap: 5px; margin: 0; min-width: 0; width: auto; }
.document-drive-upload .field > span,
.document-drive-filters .field > span { color: var(--color-primary-strong); font-size: var(--font-size-label, .74rem); font-weight: var(--font-weight-label, 850); }
.document-drive-upload select,
.document-drive-filters select { appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'%3E%3Cpath d='m1 1 6 6 6-6' fill='none' stroke='%233b6255' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 13px center; border: 1px solid #bdccc4; border-radius: 10px; box-shadow: 0 2px 7px rgba(45, 67, 58, .05) inset; box-sizing: border-box; color: #30453d; field-sizing: content; font: inherit; max-width: 100%; min-height: 43px; padding: 9px 40px 9px 12px; width: auto; }
.document-drive-upload select:focus,
.document-drive-filters select:focus,
.document-drive-filters input[type="search"]:focus,
.document-drive-upload input[type="file"]:focus { border-color: #4e7b6b; box-shadow: 0 0 0 3px rgba(78, 123, 107, .16); outline: 0; }
.document-drive-upload input[type="file"] { background: #f8faf8; border: 1px solid #bdccc4; border-radius: 10px; box-sizing: border-box; color: #51635c; font: inherit; font-size: var(--font-size-input, .76rem); max-width: 100%; min-height: 45px; padding: 5px; width: 100%; }
.document-drive-upload input[type="file"]::file-selector-button { background: #e1ece7; border: 1px solid #b5c9bf; border-radius: 7px; color: #315d4e; cursor: pointer; font: inherit; font-weight: var(--font-weight-label, 800); margin-right: 10px; min-height: 33px; padding: 6px 10px; }
.document-drive-upload input[type="file"]::file-selector-button:hover { background: #d4e5dd; border-color: #91b0a1; }
.document-drive-upload small { color: var(--color-text-soft); font-size: var(--font-size-help, .68rem); }
.document-drive-upload__share { align-items: center; display: flex; font-size: var(--font-size-table, .75rem); font-weight: var(--font-weight-label, 750); gap: 7px; min-height: 42px; }
.document-drive-upload__share input { height: 18px; margin: 0; width: 18px; }
.document-drive-upload__share input { accent-color: var(--color-primary); }
.document-drive-upload form .btn { justify-self: start; width: auto; }
.document-drive-filters { align-items: end; background: #f5f7f5; border: 1px solid #d7e0db; border-radius: 12px; display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 15px; padding: 11px; }
.document-drive-filters .field { display: grid; gap: 5px; margin: 0; min-width: 0; width: auto; }
.document-drive-filters__search { flex: 1 1 250px; }
.document-drive-filters__search input { background: #fff; border: 1px solid #bdccc4; border-radius: 10px; box-shadow: 0 2px 7px rgba(45, 67, 58, .05) inset; box-sizing: border-box; color: #30453d; font: inherit; max-width: 100%; min-height: 43px; padding: 9px 12px; width: 100%; }
.document-drive-filters__search input::placeholder { color: #7b8983; opacity: 1; }
.document-drive-filters .btn { width: auto; }
.document-drive-files { display: grid; gap: 8px; list-style: none; margin: 0; padding: 0; }
.document-drive-file { align-items: center; background: #fff; border: 1px solid #d9e0dc; border-radius: 11px; display: grid; gap: 9px; grid-template-columns: 40px minmax(0, 1fr) 42px 42px; min-width: 0; padding: 10px 10px 10px 12px; }
.document-drive-file:hover { border-color: #b8cbc1; box-shadow: 0 5px 14px rgba(51, 77, 66, .07); }
.document-drive-file.is-movable { cursor: grab; }
.document-drive-file.is-movable:active { cursor: grabbing; }
.document-drive-file.is-dragging { opacity: .46; }
.document-tree-animal[data-document-drop-animal-id] { transition: background-color .16s ease, box-shadow .16s ease; }
.document-tree-animal.is-document-drop-target { background: #e2f1e9; box-shadow: inset 0 0 0 2px #43806a; }
.document-tree-animal.is-document-drop-target > summary { color: #205744; }
.document-drive-file__icon { align-items: center; background: #e7f0ec; border-radius: 9px; color: #386656; display: flex; height: 38px; justify-content: center; width: 38px; }
.document-drive-file__icon svg,
.document-file-menu svg { fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.document-drive-file__icon svg { height: 20px; width: 20px; }
.document-drive-file__identity { display: grid; gap: 2px; min-width: 0; }
.document-drive-file__identity strong { color: #2f3e38; font-size: var(--font-size-table, .84rem); overflow-wrap: anywhere; }
.document-drive-file__identity span { color: #48665a; font-size: var(--font-size-table, .72rem); font-weight: var(--font-weight-label, 800); }
.document-drive-file__identity small { color: var(--color-text-soft); font-size: var(--font-size-help, .68rem); }
.document-drive-file__labels { display: flex; flex-wrap: wrap; gap: 5px; grid-column: 2 / -1; grid-row: 2; min-width: 0; }
.document-drive-file > .document-drive-file__preview { grid-column: 3; grid-row: 1; }
.document-drive-file > .document-file-menu { grid-column: 4; grid-row: 1; }
.document-drive-file__labels span { background: #f1ede9; border: 1px solid #ddd2c8; border-radius: 999px; color: #75685e; font-size: var(--font-size-label, .64rem); font-weight: var(--font-weight-label, 800); padding: 4px 7px; white-space: nowrap; }
.document-drive-file__labels span.is-shared { background: #e6f1eb; border-color: #bad2c5; color: #32614f; }
.document-drive-file__labels span.is-practitioner-owned { background: #fff0ee; border-color: #e6aaa4; color: #a13e35; }
.document-drive-file__preview { align-items: center; border: 1px solid #b9cec4; border-radius: 10px; color: #356251; display: flex; height: 42px; justify-content: center; text-decoration: none; width: 42px; }
.document-drive-file.is-unread { background:var(--ui-success-surface); border-color:var(--ui-success-border); }
.document-drive-file.is-unread .document-drive-file__identity strong,
.document-tree-file.is-unread > a { color:var(--ui-success-text); }
.document-tree-file.is-unread > a { background:var(--ui-success-surface); border-radius:var(--ui-radius-control); }
.document-drive-file__name { color:inherit; text-decoration:none; }
.document-drive-file__name:hover,
.document-drive-file__name:focus-visible { color:var(--color-primary-strong); }
.document-drive-file__labels [data-client-document-new-label] { background:var(--ui-success-surface); border:1px solid var(--ui-success-border); color:var(--ui-success-text); }
.document-drive-file__labels [data-client-document-new-label][hidden] { display:none; }
.document-drive-file__preview:hover,
.document-drive-file__preview:focus-visible { background: #356251; border-color: #356251; color: #fff; outline: 0; }
.document-drive-file__preview svg { fill: none; height: 20px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 20px; }
.document-preview-modal { padding: clamp(10px, 2.5vw, 28px); }
.document-preview-modal__panel { display: grid; grid-template-rows: auto minmax(0, 1fr); height: min(90vh, 900px); max-width: min(1120px, 100%); overflow: hidden; padding: 0; width: 100%; }
.document-preview-modal__header { background: #fff; border-bottom: 1px solid var(--color-border); padding: 14px 18px; }
.document-preview-modal__header > div { display: grid; gap: 3px; min-width: 0; }
.document-preview-modal__header small { color: var(--color-secondary-deep); font-size: var(--font-size-help, .68rem); font-weight: var(--font-weight-label, 850); letter-spacing: .08em; }
.document-preview-modal__header h2 { overflow-wrap: anywhere; }
.document-preview-modal__content { background: #edf1ef; display: grid; min-height: 0; position: relative; }
.document-preview-modal__content > p { align-self: center; color: var(--color-text-soft); font-size: var(--font-size-table, .86rem); grid-area: 1 / 1; justify-self: center; margin: 0; }
.document-preview-modal__content > .document-preview-modal__error { color: #8d3d36; font-weight: var(--font-weight-label, 750); }
.document-preview-modal__content iframe { background: #fff; border: 0; grid-area: 1 / 1; height: 100%; min-height: 0; opacity: 0; width: 100%; }
.document-preview-modal__content.is-ready > p { display: none; }
.document-preview-modal__content.is-ready iframe { opacity: 1; }
.document-preview-modal__pdf { position: absolute; inset: 0; overflow: auto; opacity: 0; }
.document-preview-modal__pdf-shell { grid-area: 1 / 1; display: grid; grid-template-rows: auto minmax(0, 1fr); min-height: 0; }
.document-preview-modal__pdf-viewport { position: relative; min-height: 0; }
.document-preview-modal__pdf-tools { display: flex; flex-wrap: wrap; gap: var(--ui-space-2, 8px); padding: var(--ui-space-2, 8px); }
.document-preview-modal__content.is-ready .document-preview-modal__pdf { opacity: 1; }
.document-preview-modal__pdf .pdfViewer { --page-margin: var(--ui-space-3, 12px) auto; }
.document-preview-modal__content.has-error > [data-document-preview-loading] { display: none; }
@media (max-width: 680px) {
    .document-preview-modal { padding: 0; }
    .document-preview-modal__panel { border-radius: 0; height: 100dvh; max-height: none; max-width: none; }
    .document-preview-modal__header { padding: var(--ui-space-3, 12px) 14px; }
}
.document-file-menu { height: 42px; position: relative; width: 42px; }
.document-file-menu > summary { align-items: center; border: 1px solid var(--ui-border-control, #c8d4ce); border-radius: var(--ui-radius-control, 10px); color: var(--color-primary); cursor: pointer; display: flex; font-size: var(--font-size-control, .85rem); font-weight: var(--font-weight-label, 900); height: 42px; justify-content: center; letter-spacing: .05em; list-style: none; width: 42px; }
.document-file-menu > summary::-webkit-details-marker { display: none; }
.document-file-menu > summary:hover,
.document-file-menu > summary:focus-visible,
.document-file-menu[open] > summary { background: #e8f0ec; border-color: #96b3a6; }
.document-file-menu > div { background: var(--color-surface); border: 1px solid var(--ui-border-control, #c8d4ce); border-radius: var(--ui-radius-control, 10px); box-shadow: var(--ui-shadow-menu, 0 12px 26px rgba(41, 61, 53, .2)); display: grid; min-width: 170px; padding: 6px; position: absolute; right: 0; top: calc(100% + 6px); z-index: var(--ui-layer-menu, 35); }
.document-file-menu.is-context-positioned > div { left: var(--document-menu-x); position: fixed; right: auto; top: var(--document-menu-y); z-index: var(--ui-layer-context-menu, 1200); }
.document-file-menu a,
.document-file-menu button { align-items: center; background: transparent; border: 0; border-radius: 7px; color: #345a4d; cursor: pointer; display: flex; font: inherit; font-size: var(--font-size-control, .76rem); font-weight: var(--font-weight-label, 800); gap: 8px; min-height: 40px; padding: 8px 9px; text-align: left; text-decoration: none; width: 100%; }
.document-file-menu a:hover,
.document-file-menu a:focus-visible,
.document-file-menu button:hover,
.document-file-menu button:focus-visible { background: #eef3f0; }
.document-file-menu button { color: #a13e35; }
.document-file-menu button.document-file-menu__neutral { color: #345a4d; }
.document-file-menu form { margin: 0; }
.document-file-menu__readonly { border-bottom: 1px solid #eadfd9; color: #a13e35; font-size: var(--font-size-control, .72rem); font-weight: var(--font-weight-label, 750); line-height: 1.35; margin: 0 3px 4px; padding: 7px 6px 9px; }
.account-profile-menu { flex: 0 0 auto; margin-left: auto; z-index: var(--ui-layer-menu, 35); }
.account-profile-menu > summary { background: var(--color-surface); color: var(--color-primary-strong); font-size: var(--font-size-card-title); }
.account-profile-menu > div { color: var(--color-text); }
.account-closure-dialog { max-height: calc(100dvh - 2rem); overflow: auto; }
.account-closure-dialog__form { min-width: 0; }
.account-closure-dialog__heading { display: flex; align-items: start; justify-content: space-between; gap: var(--ui-space-3, 12px); }
.account-closure-dialog__heading h2 { min-width: 0; }
.account-closure-dialog__close { background: transparent; border: 0; color: var(--color-primary-strong); cursor: pointer; font-size: var(--font-size-card-title); min-height: 42px; min-width: 42px; }
.account-closure-dialog .field { display: grid; gap: var(--ui-space-2, 8px); max-width: 100%; }
.account-closure-dialog .input { box-sizing: border-box; max-width: 100%; width: min(100%, 24rem); }
.account-closure-dialog__actions { display: flex; flex-wrap: wrap; gap: var(--ui-space-3, 12px); justify-content: flex-end; }
.account-closure-dialog__actions .btn { white-space: normal; }
.document-file-menu svg { height: 17px; width: 17px; }
.document-drive-empty { align-items: center; color: var(--color-text-soft); display: grid; justify-items: center; min-height: 310px; padding: 36px 18px; text-align: center; }
.document-drive-empty svg { fill: #f0d49e; height: 58px; stroke: #a8793c; stroke-linejoin: round; stroke-width: 1.1; width: 58px; }
.document-drive-empty strong { color: var(--color-primary-strong); font-size: var(--font-size-body, 1.05rem); margin-top: 10px; }
.document-drive-empty p { margin: 5px 0 0; }
.document-library-notice { background: #285d4d; border: 1px solid #1f4c3f; border-radius: var(--ui-radius-control, 11px); bottom: 22px; box-shadow: 0 12px 30px rgba(32, 54, 46, .24); color: #fff; font-size: var(--font-size-help, .82rem); font-weight: var(--font-weight-label, 800); max-width: min(390px, calc(100vw - 28px)); opacity: 0; padding: var(--ui-space-3, 12px) var(--ui-space-4, 16px); pointer-events: none; position: fixed; right: 22px; transform: translateY(10px); transition: opacity var(--ui-motion-fast, .16s) ease, transform var(--ui-motion-fast, .16s) ease; z-index: 1300; }
.document-library-notice.is-visible { opacity: 1; transform: translateY(0); }
.document-library-notice.is-error { background: #8b3c35; border-color: #743029; }

@container document-library (max-width: 860px) {
    .document-drive { grid-template-columns: minmax(0, 1fr); }
    .document-drive__tree { border-bottom: 1px solid #d9dfda; border-radius: 18px 18px 0 0; border-right: 0; max-height: 430px; overflow: auto; }
    .document-drive__content { padding: 18px; }
}
@container document-library (max-width: 560px) {
    .document-library-hero { align-items: flex-start; flex-direction: column; }
    .document-library-hero__count { align-items: baseline; display: flex; gap: 6px; min-width: 0; }
    .document-drive__tree,
    .document-drive__content { padding: 14px; }
    .document-drive__content-header { align-items: flex-start; flex-direction: column; }
    .document-drive-upload { width: 100%; }
    .document-drive-upload > summary { justify-content: center; width: 100%; }
    .document-drive-upload > form { left: 0; right: auto; width: 100%; }
    .document-drive-filters { align-items: stretch; display: grid; grid-template-columns: minmax(0, 1fr); }
    .document-drive-filters select { width: 100%; }
    .document-drive-file { align-items: start; grid-template-columns: 36px minmax(0, 1fr) 42px 42px; }
    .document-drive-file__icon { height: 34px; width: 34px; }
    .document-drive-file__labels { grid-column: 2 / -1; }
    .document-drive-file__preview { grid-column: 3; grid-row: 1; }
    .document-file-menu { grid-column: 4; grid-row: 1; }
    .document-library-notice { bottom: 14px; right: 14px; }
}

/* Practitioner-owned files: private workspace, distinct from animal/client records. */
.practitioner-file-tabs { align-items: center; background: #fff; border: 1px solid #d5dfda; border-radius: 14px; display: flex; gap: 6px; justify-self: start; padding: 5px; }
.practitioner-file-tabs__link { border: 1px solid transparent; border-radius: 10px; color: #4a6259; font-size: var(--font-size-control, .8rem); font-weight: var(--font-weight-label, 700); min-height: 42px; padding: 10px 15px; text-decoration: none; }
.practitioner-file-tabs__link:hover,
.practitioner-file-tabs__link:focus-visible { background: #f1f6f3; color: var(--color-primary-strong); outline: 0; }
.practitioner-file-tabs__link.is-active { background: #e6f0eb; border-color: #b8cec3; color: #285748; box-shadow: inset 0 -3px #4c806d; }
.personal-library-shell { background: #fff; border: 1px solid #d8ded9; border-radius: 18px; box-shadow: 0 12px 28px rgba(45, 68, 59, .09); display: grid; grid-template-columns: minmax(210px, .72fr) minmax(0, 2.28fr); min-height: 590px; min-width: 0; overflow: visible; }
.document-tree-search { display: grid; gap: 5px; margin-top: 12px; }
.document-tree-search span { font-size: var(--font-size-label, .74rem); font-weight: var(--font-weight-label, 800); }
.document-tree-search input { border: 1px solid #bdccc4; border-radius: var(--ui-radius-control, 8px); box-sizing: border-box; min-height: 38px; padding: 7px 10px; width: 100%; }
.document-tree-client.is-document-tree-deferred { display: none; }
.document-tree-show-more { background: transparent; border: 0; color: var(--color-secondary-strong, #9b2f61); cursor: pointer; font: inherit; font-weight: 800; margin: 10px 0; padding: 6px 0; text-align: left; }
.personal-library-categories { background: #f3f6f3; border-right: 1px solid #d5dfd9; min-width: 0; padding: 22px 17px; }
.personal-library-categories h2,
.personal-library-content h2 { color: var(--color-primary-strong); font-size: var(--font-size-section-title, 1.2rem); margin: 3px 0 16px; }
.personal-library-categories__header { align-items: center; display: flex; gap: 8px; justify-content: space-between; margin-bottom: 16px; }
.personal-library-categories__header h2 { margin: 3px 0; }
.personal-library-folder-create { position: relative; }
.personal-library-folder-create > summary { align-items: center; background: var(--color-secondary, #c54f88); border: 1px solid var(--color-secondary-strong, #9b2f61); border-radius: 50%; color: #fff; cursor: pointer; display: flex; font-size: var(--font-size-section-title); font-weight: 700; height: 32px; justify-content: center; list-style: none; width: 32px; }
.personal-library-folder-create > summary:hover, .personal-library-folder-create > summary:focus-visible, .personal-library-folder-create[open] > summary { background: var(--color-secondary-strong, #9b2f61); box-shadow: 0 0 0 3px rgba(197, 79, 136, .2); outline: 0; }
.personal-library-folder-create > summary::-webkit-details-marker { display: none; }
.personal-library-folder-create > form { background: #fff; border: 1px solid #c7d3cd; border-radius: var(--ui-radius-control, 10px); box-shadow: var(--ui-shadow-menu, 0 12px 26px rgba(41,61,53,.2)); display: grid; gap: 10px; padding: 12px; position: absolute; right: 0; top: calc(100% + 8px); width: min(280px, calc(100vw - 44px)); z-index: var(--ui-layer-menu, 35); }
.personal-library-categories nav { display: grid; gap: 6px; }
.personal-library-folder-row { align-items: center; display: flex; gap: 2px; min-width: 0; }
.personal-library-folder-row > a { flex: 1; min-width: 0; }
.personal-library-folder-menu { flex: none; position: relative; }
.personal-library-folder-menu > summary { font-size: var(--font-size-card-title); line-height: 1; }
.personal-library-folder-menu > div { left: auto; min-width: 160px; right: 0; }
.personal-library-categories nav a { align-items: center; border: 1px solid transparent; border-radius: 10px; color: #466057; display: flex; font-size: var(--font-size-control, .78rem); gap: 9px; justify-content: space-between; min-height: 43px; padding: 8px 10px; text-decoration: none; }
.personal-library-categories nav a:hover,
.personal-library-categories nav a:focus-visible { background: #fff; border-color: #cbd9d2; outline: 0; }
.personal-library-categories nav a.is-active { background: #fff; border-color: #afc8bc; box-shadow: inset 3px 0 #4c806d, 0 4px 12px rgba(50, 76, 65, .06); color: #285748; }
.personal-library-categories nav a.is-personal-library-drop-target { background: #e8f2eb; border-color: #4c806d; box-shadow: inset 3px 0 #4c806d, 0 0 0 2px rgba(76, 128, 109, .16); color: #285748; }
.personal-library-categories nav a strong { align-items: center; background: #e2ebe7; border-radius: 999px; display: flex; font-size: var(--font-size-control, .66rem); height: 25px; justify-content: center; min-width: 25px; padding: 0 6px; }
.personal-library-content { box-sizing: border-box; min-width: 0; padding: 22px; }
.personal-library-content__header { align-items: center; border-bottom: 1px solid #e1e5e2; display: flex; gap: 16px; justify-content: space-between; margin-bottom: 14px; min-width: 0; padding-bottom: 16px; }
.personal-library-content__header h2 { margin-bottom: 0; }
.personal-library-upload { flex: none; position: relative; }
.personal-library-upload > summary { cursor: pointer; list-style: none; width: auto; }
.personal-library-upload > summary::-webkit-details-marker { display: none; }
.personal-library-upload > form { background: #fff; border: 1px solid #c7d3cd; border-radius: 13px; box-shadow: 0 16px 34px rgba(39, 61, 52, .2); box-sizing: border-box; display: grid; gap: 12px; padding: 16px; position: absolute; right: 0; top: calc(100% + 8px); width: min(520px, calc(100vw - 48px)); z-index: 40; }
.personal-library-upload .field,
.personal-library-filters .field { display: grid; gap: 5px; margin: 0; min-width: 0; width: auto; }
.personal-library-upload .field > span,
.personal-library-filters .field > span { color: var(--color-primary-strong); font-size: var(--font-size-label, .74rem); font-weight: var(--font-weight-label, 800); }
.personal-library-upload select,
.personal-library-upload input[type="file"],
.personal-library-filters input[type="search"] { background: #fff; border: 1px solid #bdccc4; border-radius: 10px; box-sizing: border-box; color: #30453d; font: inherit; max-width: 100%; min-height: 43px; padding: 9px 12px; width: 100%; }
.personal-library-upload select { appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'%3E%3Cpath d='m1 1 6 6 6-6' fill='none' stroke='%233b6255' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 13px center; padding-right: 40px; }
.personal-library-upload input[type="file"] { background: #f8faf8; font-size: var(--font-size-input, .76rem); padding: 5px; }
.personal-library-upload input[type="file"]::file-selector-button { background: #e1ece7; border: 1px solid #b5c9bf; border-radius: 7px; color: #315d4e; cursor: pointer; font: inherit; font-weight: var(--font-weight-label, 800); margin-right: 10px; min-height: 33px; padding: 6px 10px; }
.personal-library-upload small { color: var(--color-text-soft); font-size: var(--font-size-help, .68rem); }
.personal-library-upload form .btn { justify-self: start; width: auto; }
.personal-library-filters { align-items: end; background: #f5f7f5; border: 1px solid #d7e0db; border-radius: 12px; display: grid; gap: 9px; grid-template-columns: minmax(170px, 1fr) auto auto auto; margin-bottom: 16px; padding: 11px; }
.personal-library-types { align-items: center; display: flex; flex-wrap: wrap; gap: 5px; min-height: 43px; }
.personal-library-types label { cursor: pointer; }
.personal-library-types input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.personal-library-types span { align-items: center; border: 1px solid #cbd7d1; border-radius: 999px; color: #4a6259; display: flex; font-size: var(--font-size-table, .72rem); font-weight: var(--font-weight-label, 700); min-height: 36px; padding: 6px 11px; }
.personal-library-types input:checked + span { background: #3c6d5b; border-color: #3c6d5b; color: #fff; }
.personal-library-types input:focus-visible + span { box-shadow: 0 0 0 3px rgba(60, 109, 91, .18); outline: 2px solid transparent; }
.personal-library-filters .btn { width: auto; }
.personal-library-grid { display: grid; gap: 13px; grid-template-columns: repeat(3, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; }
.personal-library-file { background: #fff; border: 1px solid #d8e0dc; border-radius: 13px; box-shadow: 0 5px 15px rgba(46, 69, 60, .05); display: grid; grid-template-rows: auto minmax(0, 1fr) 62px; min-width: 0; overflow: visible; position: relative; }
.personal-library-file:hover { border-color: #afc5ba; box-shadow: 0 8px 20px rgba(46, 69, 60, .1); }
.personal-library-file[draggable="true"] { cursor: grab; }
.personal-library-file.is-dragging { cursor: grabbing; opacity: .55; }
.personal-library-file__media { align-items: center; aspect-ratio: 4 / 3; background: #edf2ef; color: #3c6b5a; display: flex; justify-content: center; overflow: hidden; text-decoration: none; }
.personal-library-file__media img { height: 100%; object-fit: cover; width: 100%; }
.personal-library-file__media--document { flex-direction: column; gap: 9px; }
.personal-library-file__media--document svg { fill: none; height: 50px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.25; width: 50px; }
.personal-library-file__media--document span { font-size: var(--font-size-table, .68rem); font-weight: var(--font-weight-label, 850); letter-spacing: .05em; text-transform: uppercase; }
.personal-library-file__media:hover,
.personal-library-file__media:focus-visible { background: #e2ece7; outline: 0; }
.personal-library-file__body { display: grid; gap: 4px; min-width: 0; padding: 13px 13px 10px; }
.personal-library-file__body > span { color: #a05e45; font-size: var(--font-size-table, .64rem); font-weight: var(--font-weight-label, 850); letter-spacing: .04em; text-transform: uppercase; }
.personal-library-file__body strong { color: #2e453c; font-size: var(--font-size-table, .8rem); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.personal-library-file__body small { color: var(--color-text-soft); font-size: var(--font-size-help, .66rem); }
.personal-library-file__actions { align-items: center; border-top: 1px solid #e3e8e5; display: flex; flex-wrap: wrap; gap: 6px; padding: 10px 12px; }
.personal-library-file__menu { bottom: 10px; position: absolute; right: 10px; z-index: 3; }
.personal-library-file__menu > summary { font-size: var(--font-size-section-title); letter-spacing: 0; line-height: 1; }
.personal-library-file__menu > div { bottom: calc(100% + 6px); min-width: 208px; top: auto; }
.personal-library-file__menu form > label { display: grid; gap: 5px; padding: 8px 10px; }
.personal-library-file__menu form > label span { color: var(--color-text-soft); font-size: var(--font-size-help, .68rem); font-weight: var(--font-weight-label, 700); }
.personal-library-file__menu select { box-sizing: border-box; max-width: 100%; min-height: 38px; width: 100%; }
.personal-library-file__actions form { margin: 0; }
.personal-library-file__actions .btn { min-height: 40px; width: auto; }

@container document-library (max-width: 920px) {
    .personal-library-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .personal-library-filters { grid-template-columns: minmax(0, 1fr) auto; }
    .personal-library-types { grid-column: 1 / -1; }
}
@container document-library (max-width: 700px) {
    .personal-library-shell { grid-template-columns: minmax(0, 1fr); }
    .personal-library-categories { border-bottom: 1px solid #d5dfd9; border-right: 0; }
    .personal-library-categories nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@container document-library (max-width: 520px) {
    .practitioner-file-tabs { align-items: stretch; display: grid; justify-self: stretch; }
    .practitioner-file-tabs__link { text-align: center; }
    .personal-library-categories,
    .personal-library-content { padding: 14px; }
    .personal-library-categories nav,
    .personal-library-grid,
    .personal-library-filters { grid-template-columns: minmax(0, 1fr); }
    .personal-library-content__header { align-items: stretch; flex-direction: column; }
    .personal-library-upload,
    .personal-library-upload > summary { justify-content: center; width: 100%; }
    .personal-library-upload > form { left: 0; right: auto; width: 100%; }
    .personal-library-types { grid-column: auto; }
}

.client-portal-practitioner-showcase__tab-layout--services {
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) minmax(0, 1fr);
}
.client-portal-practitioner-services-layout--read-only {
    grid-template-columns: minmax(0, 1fr) minmax(0, 3fr);
}

.client-portal-practitioner-services-heading {
    color: var(--color-primary);
    font-size: var(--font-size-body, 1.18rem);
    margin: 0 0 14px;
}

@media (max-width: 760px) {
    .client-portal-practitioner-showcase__tab-layout--services {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Public directory reuses the client directory cards and search without the client shell. */
.aenima-public-home__directory-search {
    background: var(--color-hero-night);
    box-sizing: border-box;
    container-type: inline-size;
    padding: clamp(24px, 4vw, 48px) clamp(20px, 5vw, 72px);
}
.aenima-public-home__directory-search .directory-search-bar { margin-inline: auto; max-width: 1120px; }
.public-directory-page .client-portal-content { padding: 0; }
.public-directory-page .client-portal-directory-search { container-type: inline-size; }
.public-directory-page .client-portal-directory-search__row { grid-template-columns: minmax(0, 1fr); }
.public-directory-page .client-portal-directory-search .directory-search-bar { margin-inline: auto; width: min(100%, 1120px); }
.public-directory-page .client-portal-content main.client-portal-page { box-sizing: border-box; max-width: 1080px; padding: 28px clamp(16px, 3vw, 48px) 40px; }
.public-directory-profile { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 20px; box-shadow: var(--shadow-soft); min-width: 0; }
.public-directory-page .public-directory-profile > .client-page-banner { border-radius: 19px 19px 0 0; margin: 0; }
.public-directory-page .public-directory-profile > .client-portal-practitioner-showcase { border: 0; border-radius: 0 0 19px 19px; box-shadow: none; margin-bottom: 0; }
@media (max-width: 680px) { .public-directory-page .client-portal-content main.client-portal-page { padding: 16px 16px 32px; } }
.public-directory-page__booking { margin: 24px 0 0; }
.public-directory-page__booking .btn { width: auto; max-width: 100%; }

.client-portal-practitioner-service-nav {
    align-self: start;
    background: #f4eee9;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    max-height: calc(100vh - 36px);
    overflow: auto;
    padding: 15px;
    position: sticky;
    top: 18px;
}

.client-portal-practitioner-service-nav > strong {
    color: var(--color-primary);
    display: block;
    font-size: var(--font-size-control, .9rem);
    font-weight: var(--font-weight-label, 800);
    margin-bottom: 9px;
}

.client-portal-practitioner-service-nav ul {
    display: grid;
    gap: 4px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.client-portal-practitioner-service-nav a {
    align-items: center;
    border-radius: 9px;
    color: var(--color-text-soft);
    display: flex;
    font-size: var(--font-size-control, .8rem);
    font-weight: var(--font-weight-label, 600);
    min-height: 42px;
    padding: 8px 10px;
    text-decoration: none;
}

.client-portal-practitioner-service-nav a:hover,
.client-portal-practitioner-service-nav a:focus-visible {
    background: var(--color-surface);
    color: var(--color-primary);
    outline: 2px solid rgb(var(--color-secondary-rgb) / .3);
    outline-offset: -2px;
}

.client-portal-practitioner-service-groups {
    display: grid;
    gap: 26px;
}

.client-portal-practitioner-service-group {
    min-width: 0;
    scroll-margin-top: 18px;
}

.client-portal-practitioner-service-group:focus {
    border-radius: 10px;
    outline: 2px solid rgb(var(--color-secondary-rgb) / .32);
    outline-offset: 6px;
}

.client-portal-practitioner-service-group > h3 {
    color: var(--color-secondary-deep);
    font-size: var(--font-size-card-title, 1rem);
    font-weight: var(--font-weight-title, 800);
    margin: 0 0 11px;
}

.client-portal-practitioner-service h4 {
    color: var(--color-primary);
    font-size: var(--font-size-subtitle, .96rem);
    margin: 0;
}

.client-portal-practitioner-service {
    align-items: start;
    grid-template-columns: 96px minmax(0, 1fr) auto;
    padding: 10px 14px 10px 10px;
    position: relative;
    transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.client-portal-practitioner-service.is-selected {
    background: #fff;
    border-color: rgb(var(--color-secondary-rgb) / .72);
    box-shadow: 0 9px 22px rgb(var(--color-secondary-rgb) / .12);
}

.client-portal-practitioner-service:has(.client-portal-practitioner-service__selection-target:focus-visible) {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgb(var(--color-secondary-rgb) / .25);
}

.client-portal-practitioner-service__selection-target {
    background: transparent;
    border: 0;
    border-radius: inherit;
    cursor: pointer;
    inset: 0;
    padding: 0;
    position: absolute;
    z-index: 0;
}

.client-portal-practitioner-service__media {
    align-self: start;
    align-items: center;
    aspect-ratio: 1;
    background: #eadfd8;
    border: 1px solid rgb(var(--color-secondary-rgb) / .2);
    border-radius: 11px;
    color: var(--color-secondary-deep);
    display: flex;
    font-size: var(--font-size-body, 1.65rem);
    font-weight: var(--font-weight-label, 800);
    justify-content: center;
    min-width: 0;
    pointer-events: none;
    position: relative;
    width: 96px;
    z-index: 1;
}

.client-portal-practitioner-service__media img {
    aspect-ratio: 1;
    border-radius: 10px;
    display: block;
    height: 100%;
    max-width: 100%;
    object-fit: cover;
    width: 100%;
}

.client-portal-practitioner-service__copy {
    min-width: 0;
    pointer-events: none;
    position: relative;
    z-index: 1;
}

.client-portal-practitioner-service__meta {
    color: var(--color-text-soft);
    display: flex;
    flex-wrap: wrap;
    font-size: var(--font-size-help, .7rem);
    gap: 5px 12px;
    margin-top: 5px;
}

.client-portal-practitioner-service__meta span {
    align-items: center;
    display: inline-flex;
    gap: 4px;
}

.client-portal-practitioner-service__meta span + span::before {
    color: rgb(var(--color-secondary-rgb) / .72);
    content: "•";
    margin-right: 4px;
}

.client-portal-practitioner-service__description.is-collapsed [data-client-portal-description-text] {
    -webkit-line-clamp: 2;
}

.client-portal-practitioner-service__description .client-portal-description__toggle {
    pointer-events: auto;
    position: relative;
    text-transform: uppercase;
    z-index: 2;
}

.client-portal-practitioner-service__actions {
    align-items: end;
    display: grid;
    gap: 9px;
    justify-items: end;
    pointer-events: auto;
    position: relative;
    z-index: 2;
}

.client-portal-practitioner-service__actions > strong {
    color: var(--color-secondary-deep);
    font-size: var(--font-size-control, .96rem);
    white-space: nowrap;
}

.client-portal-practitioner-service__actions > button {
    background: var(--color-surface);
    border: 1px solid rgb(var(--color-primary-rgb) / .38);
    border-radius: 9px;
    color: var(--color-primary);
    cursor: pointer;
    font: inherit;
    font-size: var(--font-size-control, .72rem);
    font-weight: var(--font-weight-label, 750);
    min-height: 42px;
    padding: 8px 11px;
    white-space: nowrap;
}

.client-portal-practitioner-service__actions > button:hover,
.client-portal-practitioner-service__actions > button:focus-visible,
.client-portal-practitioner-service__actions > button[aria-pressed="true"] {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--color-surface);
    outline: 0;
}

.client-portal-practitioner-service__actions > button:focus-visible {
    box-shadow: 0 0 0 3px rgb(var(--color-secondary-rgb) / .25);
}

.client-portal-practitioner-showcase__tab-aside--right {
    align-self: start;
    position: sticky;
    top: 18px;
}

.client-portal-practitioner-showcase__tab-aside--right[hidden] {
    display: none;
}

.client-portal-practitioner-service-selection {
    background: #f4eee9;
    border: 1px solid var(--color-border);
    border-radius: 16px;
    box-shadow: 0 12px 28px rgb(var(--color-primary-rgb) / .09);
    display: grid;
    gap: 13px;
    min-width: 0;
    padding: 18px;
}

.client-portal-practitioner-service-selection > span {
    color: var(--color-secondary-deep);
    font-size: var(--font-size-table, .7rem);
    font-weight: var(--font-weight-label, 800);
    letter-spacing: .08em;
    text-transform: uppercase;
}

.client-portal-practitioner-service-selection h3 {
    color: var(--color-primary);
    font-size: var(--font-size-card-title, 1.08rem);
    line-height: var(--line-height-title, 1.25);
    margin: 0;
    overflow-wrap: anywhere;
}

.client-portal-practitioner-service-selection__list {
    display: grid;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.client-portal-practitioner-service-selection__list li {
    background: rgb(var(--color-primary-rgb) / .055);
    border-radius: 9px;
    display: grid;
    gap: 2px;
    padding: 9px 10px;
}

.client-portal-practitioner-service-selection__list strong {
    color: var(--color-primary);
    font-size: var(--font-size-table, .86rem);
    line-height: 1.25;
}

.client-portal-practitioner-service-selection__list small {
    color: var(--color-text-soft);
    font-size: var(--font-size-help, .72rem);
}

.client-portal-practitioner-service-selection > strong {
    color: var(--color-secondary-deep);
    font-size: var(--font-size-body, 1.35rem);
    font-weight: var(--font-weight-label, 850);
}

.client-portal-practitioner-service-selection dl {
    display: grid;
    gap: 7px;
    margin: 0;
}

.client-portal-practitioner-service-selection dl > div {
    align-items: baseline;
    border-top: 1px solid rgb(var(--color-primary-rgb) / .1);
    display: flex;
    gap: 8px;
    justify-content: space-between;
    padding-top: 7px;
}

.client-portal-practitioner-service-selection dt,
.client-portal-practitioner-service-selection dd {
    font-size: var(--font-size-label, .76rem);
    margin: 0;
}

.client-portal-practitioner-service-selection dt {
    color: var(--color-text-soft);
}

.client-portal-practitioner-service-selection dd {
    color: var(--color-primary);
    font-weight: var(--font-weight-label, 750);
    text-align: right;
}

.client-portal-practitioner-service-selection > small {
    color: var(--color-text-soft);
    font-size: var(--font-size-help, .76rem);
    line-height: 1.5;
    margin: 0;
}

.client-portal-practitioner-service-selection__booking {
    align-items: center;
    display: inline-flex;
    gap: 8px;
    justify-self: start;
    text-decoration: none;
}

.client-portal-practitioner-service-selection__booking svg {
    fill: none;
    height: 18px;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
    width: 18px;
}

@media (max-width: 760px) {
    .client-portal-practitioner-service {
        grid-template-columns: 84px minmax(0, 1fr) auto;
    }

    .client-portal-practitioner-service__media {
        width: 84px;
    }

    .client-portal-practitioner-showcase__tab-aside--right {
        display: block;
        position: static;
    }

    .client-portal-practitioner-service-selection {
        margin-top: 4px;
    }
}

@media (max-width: 430px) {
    .client-portal-practitioner-service {
        grid-template-columns: 72px minmax(0, 1fr);
    }

    .client-portal-practitioner-service__media {
        grid-row: 1 / span 2;
        width: 72px;
    }

    .client-portal-practitioner-service__actions {
        grid-column: 2;
        justify-items: start;
    }

}

.client-portal-breadcrumb {
    box-sizing: border-box;
    margin: 0 0 14px;
    max-width: 100%;
    min-width: 0;
}

.client-portal-breadcrumb ol {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    list-style: none;
    margin: 0;
    min-width: 0;
    padding: 0;
}

.client-portal-breadcrumb li {
    align-items: center;
    color: var(--color-text-soft);
    display: inline-flex;
    font-size: var(--font-size-table, .78rem);
    gap: 6px;
    line-height: 1.4;
    min-width: 0;
}

.client-portal-breadcrumb li + li::before {
    color: rgb(var(--color-primary-rgb) / .45);
    content: "›";
    font-size: 1rem;
    line-height: 1;
}

.client-portal-breadcrumb a,
.client-portal-breadcrumb span {
    overflow-wrap: anywhere;
}

.client-portal-breadcrumb a {
    color: var(--color-primary);
    font-weight: var(--font-weight-label, 650);
    text-decoration: none;
}

.client-portal-breadcrumb a:hover,
.client-portal-breadcrumb a:focus-visible {
    color: var(--color-secondary-deep);
    outline: 0;
}

.client-portal-breadcrumb span[aria-current="page"] {
    color: var(--breadcrumb-current-color, var(--color-secondary-deep));
    font-weight: var(--font-weight-label, 750);
}

/* Repère visuel commun à toutes les recherches des espaces praticien et client. */
input[type="search"]:not([data-messaging-page-search]):not([data-report-library-search]):not([data-questionnaire-library-search]):not(.directory-search-bar input) {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232d5f62' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.6-3.6'/%3E%3C/svg%3E");
    background-position: 12px 50%;
    background-repeat: no-repeat;
    background-size: 17px 17px;
    padding-left: 2.55rem;
}

/* Modules autonomes des modèles de comptes rendus. */
.report-date-editor,
.report-number-editor {
    align-items: end;
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

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

.report-table-editor {
    min-width: 0;
    overflow-x: auto;
}

.report-table-editor__toolbar {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 12px;
}

.report-table-editor__header {
    align-items: center;
    display: inline-flex;
    gap: 7px;
    margin-right: auto;
}

.report-worked-points-option {
    align-items: center;
    color: var(--color-primary-strong);
    display: inline-flex;
    font-size: var(--font-size-label, .84rem);
    font-weight: var(--font-weight-label, 700);
    gap: 8px;
    min-width: 0;
}

.report-worked-points-option input {
    accent-color: var(--color-accent, #c4578a);
    block-size: 18px;
    flex: 0 0 auto;
    inline-size: 18px;
    margin: 0;
}

.report-worked-points__detail-item--reorderable {
    cursor: grab;
    padding-right: 34px !important;
}

.report-worked-points__detail-item--reorderable:focus-visible {
    outline: 3px solid rgb(var(--color-accent-rgb) / .72);
    outline-offset: 2px;
}

.report-worked-points__detail-item--reorderable.is-dragging {
    cursor: grabbing;
    opacity: .55;
}

.report-worked-points__drag-handle {
    color: var(--color-primary-strong);
    font-size: var(--font-size-card-title);
    font-weight: 800;
    letter-spacing: -3px;
    line-height: 1;
    pointer-events: none;
    position: absolute;
    right: 11px;
    top: 11px;
}

.report-structured-table {
    border-collapse: collapse;
    font: inherit;
    table-layout: fixed;
    width: 100%;
}

.report-structured-table th,
.report-structured-table td {
    border: 1px solid rgb(var(--color-primary-rgb) / .2);
    padding: 9px 11px;
    text-align: left;
    vertical-align: top;
}

.report-structured-table th {
    background: rgb(var(--color-primary-rgb) / .08);
    font-weight: var(--font-weight-label, 700);
}

.report-structured-table input {
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    min-width: 8rem;
    padding: 2px;
    width: 100%;
}

.report-date-value,
.report-number-value {
    color: var(--report-tone, var(--color-text));
    margin: 4px 0;
}

.report-date-value {
    font-size: var(--font-size-body, 1.08em);
}

.report-number-value strong {
    font-size: var(--font-size-body, 2.15em);
    font-weight: var(--font-weight-label, 800);
    line-height: 1;
}

.report-number-value span,
.report-number-label {
    color: var(--color-text-soft);
}

.report-fill-media__hint {
    color: var(--color-text-soft);
    display: block;
    font-size: var(--font-size-help, .82rem);
    margin-top: 8px;
}

.report-preview__photo-grid > figure {
    margin: 0;
    min-width: 0;
}

.report-image-annotation {
    line-height: 1.45;
    margin-inline: auto;
    max-width: 100%;
    min-width: 0;
    position: relative;
    width: 100%;
}

.report-image-annotation--width-50 { width: 50%; }
.report-image-annotation--width-55 { width: 55%; }
.report-image-annotation--width-60 { width: 60%; }
.report-image-annotation--width-65 { width: 65%; }
.report-image-annotation--width-70 { width: 70%; }
.report-image-annotation--width-75 { width: 75%; }
.report-image-annotation--width-80 { width: 80%; }
.report-image-annotation--width-85 { width: 85%; }
.report-image-annotation--width-90 { width: 90%; }
.report-image-annotation--width-95 { width: 95%; }
.report-image-annotation--width-100 { width: 100%; }

.report-block-media__thumbs--annotation > .report-image-annotation > .report-image-annotation__resize {
    background: var(--color-primary);
    border: 3px solid var(--color-surface);
    border-radius: 50%;
    bottom: -13px;
    box-shadow: 0 2px 8px rgb(var(--color-text-rgb) / .2);
    cursor: ew-resize;
    height: 28px;
    left: auto;
    position: absolute;
    right: -13px;
    top: auto;
    touch-action: none;
    width: 28px;
    z-index: 5;
}

.report-block-media__thumbs--annotation > .report-image-annotation > .report-image-annotation__resize::before {
    border-bottom: 2px solid var(--color-surface);
    border-right: 2px solid var(--color-surface);
    content: "";
    height: 7px;
    inset: 6px auto auto 6px;
    position: absolute;
    transform: rotate(-45deg);
    width: 7px;
}

.report-block-media__thumbs--annotation > .report-image-annotation > .report-image-annotation__resize:focus-visible {
    outline: 3px solid rgb(var(--color-primary-rgb) / .28);
    outline-offset: 3px;
}

.report-image-annotation.is-resizing {
    user-select: none;
}

.report-fill-media--image-annotation {
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 0;
}

.report-block-media__thumbs--annotation,
.report-preview__photo-grid--annotation {
    background: transparent;
    border-radius: 0;
    padding: 0;
}

.report-block-media__thumbs--annotation > .report-image-annotation,
.report-preview__photo-grid--annotation > .report-image-annotation {
    align-items: stretch;
    background: transparent;
    border-radius: 0;
    display: grid;
    gap: 0;
    justify-content: stretch;
    overflow: visible;
    padding: 0;
}

.report-block-media__thumbs--annotation > .report-image-annotation--notes-right,
.report-preview__photo-grid--annotation > .report-image-annotation--notes-right {
    align-items: start;
    gap: 16px;
    grid-template-columns: minmax(0, 2fr) minmax(180px, .82fr);
}

.report-image-annotation__visual {
    display: block;
    line-height: 0;
    margin-inline: auto;
    max-width: 100%;
    position: relative;
    width: fit-content;
}

.report-image-annotation__visual > img {
    display: block;
    height: auto;
    max-height: 420px;
    max-width: 100%;
    object-fit: contain;
    width: auto;
}

.report-image-annotation__overlay {
    height: 100%;
    inset: 0;
    pointer-events: none;
    position: absolute;
    width: 100%;
}

.report-image-annotation__notes {
    background: transparent;
    border: 0;
    border-radius: 0;
    border-top: 1px solid var(--color-border);
    color: var(--color-text);
    line-height: 1.45;
    margin-top: 14px;
    min-width: 0;
    padding: 12px 0 0;
    width: 100%;
}

.report-image-annotation--notes-right .report-image-annotation__notes {
    border-left: 1px solid var(--color-border);
    border-top: 0;
    margin-top: 0;
    padding: 0 0 0 14px;
}

.report-image-annotation--notes-right .report-image-annotation__notes ol {
    grid-template-columns: minmax(0, 1fr);
}

.report-image-annotation--notes-right .report-image-annotation__notes li:only-child {
    grid-column: auto;
}

.report-image-annotation__notes > strong {
    color: var(--color-primary-strong);
    display: block;
    font-size: .82rem;
    margin-bottom: 5px;
}

.report-image-annotation__notes ol {
    display: grid;
    gap: 9px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    list-style: none;
    margin: 0;
    padding: 0;
}

.report-image-annotation__notes li {
    align-items: start;
    background: transparent;
    border: 1px solid var(--color-border);
    border-radius: 9px;
    display: grid;
    font-size: .78rem;
    gap: 9px;
    grid-template-columns: 26px minmax(0, 1fr);
    min-width: 0;
    padding: 9px 10px;
}

.report-image-annotation__notes li:only-child {
    grid-column: 1 / -1;
}

.report-image-annotation__note-number {
    align-items: center;
    background: var(--annotation-note-color, var(--color-primary));
    border-radius: 50%;
    color: var(--annotation-note-ink, var(--color-surface));
    display: inline-flex;
    font-size: .7rem;
    font-weight: 850;
    height: 26px;
    justify-content: center;
    line-height: 1;
    width: 26px;
}

.report-image-annotation__note-text {
    line-height: 1.45;
    margin: 2px 0 0;
    min-width: 0;
    overflow-wrap: anywhere;
}

.report-annotation-position {
    align-items: center;
    border: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 0;
    min-width: 0;
    padding: 0;
}

.report-template-builder .report-block-card__fields > .report-annotation-position,
.report-template-builder .report-block-card:not(.is-selected) .report-block-card__fields > .report-annotation-position {
    display: flex;
}

.report-annotation-position legend {
    flex: 0 0 100%;
    font-size: var(--font-size-label, .76rem);
    font-weight: var(--font-weight-label, 750);
    margin-bottom: 1px;
    padding: 0;
}

.report-annotation-position__option {
    cursor: pointer;
    margin: 0;
    position: relative;
}

.report-annotation-position__option input {
    height: 1px;
    opacity: 0;
    position: absolute;
    width: 1px;
}

.report-annotation-position__option span {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 7px;
    color: var(--color-text-soft);
    display: block;
    font-size: var(--font-size-table, .8rem);
    font-weight: var(--font-weight-label, 650);
    padding: 7px 11px;
    transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease, color .16s ease;
}

.report-annotation-position__option input:checked + span {
    background: rgb(var(--color-primary-rgb) / .1);
    border-color: var(--color-primary);
    box-shadow: 0 0 0 2px rgb(var(--color-primary-rgb) / .1);
    color: var(--color-primary-strong);
}

.report-annotation-position__option input:focus-visible + span {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

@media (max-width: 720px) {
    .report-date-editor,
    .report-number-editor {
        grid-template-columns: 1fr;
    }

    .report-image-annotation__notes ol {
        grid-template-columns: minmax(0, 1fr);
    }

    .report-block-media__thumbs--annotation > .report-image-annotation--notes-right,
    .report-preview__photo-grid--annotation > .report-image-annotation--notes-right {
        gap: 0;
        grid-template-columns: minmax(0, 1fr);
    }

    .report-image-annotation--notes-right .report-image-annotation__notes {
        border-left: 0;
        border-top: 1px solid var(--color-border);
        margin-top: 14px;
        padding: 12px 0 0;
    }
}
.image-annotation-page{display:grid;gap:18px}.image-annotation-header{align-items:flex-start;display:flex;gap:20px;justify-content:space-between}.image-annotation-header h1{margin:8px 0 6px}.image-annotation-header p{color:var(--color-text-soft);margin:0;max-width:760px}.image-annotation-workspace{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 16px 38px rgb(var(--color-primary-rgb)/.1);display:grid;min-width:0;overflow:hidden}.image-annotation-toolbar{align-items:end;background:var(--color-surface-soft);border-bottom:1px solid var(--color-border);display:flex;flex-wrap:wrap;gap:14px;padding:12px}.image-annotation-tool-group{display:flex;flex-wrap:wrap;gap:6px}.image-annotation-tool{background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;color:var(--color-text);cursor:pointer;font:inherit;font-size:var(--font-size-table, .82rem);font-weight:var(--font-weight-label, 750);min-height:36px;padding:7px 10px}.image-annotation-tool:hover,.image-annotation-tool:focus-visible{border-color:var(--color-primary);color:var(--color-primary)}.image-annotation-tool.is-active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-surface)}.image-annotation-tool--danger{color:var(--color-danger)}.image-annotation-tool:disabled{cursor:not-allowed;opacity:.42}.image-annotation-setting{display:grid;font-size:var(--font-size-table, .75rem);font-weight:var(--font-weight-label, 750);gap:5px}.image-annotation-setting select{box-sizing:border-box;field-sizing:content;max-width:100%;min-height:36px;width:auto}.image-annotation-swatches{align-items:center;display:flex;gap:6px}.image-annotation-swatch{border:2px solid var(--color-surface);border-radius:50%;box-shadow:0 0 0 1px var(--color-border);cursor:pointer;height:28px;padding:0;width:28px}.image-annotation-swatch.is-active{box-shadow:0 0 0 2px var(--color-text)}.image-annotation-swatch--green{background:#376d70}.image-annotation-swatch--rose{background:#a85f72}.image-annotation-swatch--gold{background:#b27b2c}.image-annotation-color-custom{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;display:flex;font-size:0;height:30px;justify-content:center;overflow:hidden;width:34px}.image-annotation-color-custom input{border:0;cursor:pointer;height:38px;padding:0;width:42px}.image-annotation-opacity,.image-annotation-stroke-width{min-width:150px}.image-annotation-opacity output,.image-annotation-stroke-width output{color:var(--color-primary);font-weight:var(--font-weight-label, 800);justify-self:end;margin-top:-20px}.image-annotation-opacity input,.image-annotation-stroke-width input{accent-color:var(--color-primary);margin:0;width:100%}.image-annotation-tool-group--commands{margin-left:auto}.image-annotation-context-settings{align-items:end;border-top:1px solid var(--color-border);display:flex;flex:1 0 100%;flex-wrap:wrap;gap:14px;padding-top:12px}.image-annotation-context-settings[hidden]{display:none}.image-annotation-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);min-width:0}.image-annotation-stage{align-items:center;background:var(--color-bg);display:flex;justify-content:center;min-height:440px;min-width:0;overflow:auto;padding:16px;position:relative}.image-annotation-stage .canvas-container{box-shadow:0 5px 24px rgb(var(--color-text-rgb)/.18);flex:0 0 auto;position:relative}.image-annotation-number-layer{inset:0;pointer-events:none;position:absolute;z-index:3}.image-annotation-number-layer span{align-items:center;background:var(--color-surface);border:2px solid var(--annotation-color,var(--color-primary));border-radius:50%;box-shadow:0 1px 4px rgb(var(--color-text-rgb)/.18);box-sizing:border-box;color:var(--color-primary-strong);display:flex;font-size:.62rem;font-weight:850;height:20px;justify-content:center;position:absolute;transform:translate(-50%,-50%);width:20px}.image-annotation-notes{background:var(--color-surface-soft);border-left:1px solid var(--color-border);display:grid;gap:13px;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;padding:16px}.image-annotation-notes header span{color:var(--color-secondary-deep);font-size:var(--font-size-caption, .67rem);font-weight:var(--font-weight-label, 850);letter-spacing:.08em;text-transform:uppercase}.image-annotation-notes h2{font-size:var(--font-size-section-title, 1rem);margin:3px 0}.image-annotation-notes header p,.image-annotation-note-empty{color:var(--color-text-soft);font-size:var(--font-size-help, .78rem);line-height:1.4;margin:0}.image-annotation-note-list{align-content:start;display:grid;gap:10px;min-width:0;overflow:auto}.image-annotation-note{align-items:start;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-sizing:border-box;display:grid;gap:9px;grid-template-columns:auto minmax(0,1fr);min-width:0;padding:10px;transition:border-color .16s ease,box-shadow .16s ease}.image-annotation-note.is-active{border-color:var(--color-primary);box-shadow:0 0 0 3px rgb(var(--color-primary-rgb)/.11)}.image-annotation-note__number{align-items:center;background:var(--annotation-color,var(--color-primary));border-radius:50%;color:var(--color-surface);display:flex;font-size:.76rem;font-weight:850;height:28px;justify-content:center;width:28px}.image-annotation-note__copy{display:grid;gap:6px;min-width:0}.image-annotation-note__copy strong{color:var(--color-primary-strong);font-size:var(--font-size-table, .78rem)}.image-annotation-note textarea{box-sizing:border-box;line-height:1.4;max-width:100%;min-height:78px;min-width:0;resize:vertical;width:100%}.image-annotation-loading{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);display:flex;font-weight:var(--font-weight-label, 750);inset:16px;justify-content:center;position:absolute}.image-annotation-footer{align-items:center;border-top:1px solid var(--color-border);display:flex;gap:16px;justify-content:flex-end;padding:12px}.image-annotation-status{color:var(--color-text-soft);font-size:var(--font-size-caption, .86rem);margin-right:auto}.image-annotation-status[data-state="saved"]{color:var(--color-primary)}.image-annotation-status[data-state="pending"]{color:var(--color-highlight-strong)}.image-annotation-status[data-state="error"]{color:var(--color-danger)}.photo-library-card__actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.session-photo-card__actions a{text-decoration:none}@media(max-width:980px){.image-annotation-body{grid-template-columns:minmax(0,1fr)}.image-annotation-notes{border-left:0;border-top:1px solid var(--color-border)}.image-annotation-note-list{grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}}@media(max-width:820px){.image-annotation-header{align-items:stretch;flex-direction:column}.image-annotation-header .btn{align-self:flex-start}.image-annotation-toolbar{align-items:stretch}.image-annotation-tool-group{width:100%}.image-annotation-tool{flex:1 1 auto}.image-annotation-tool-group--commands{margin-left:0}.image-annotation-context-settings{align-items:stretch}.image-annotation-stage{min-height:360px;padding:10px}.image-annotation-footer{align-items:stretch;flex-direction:column}.image-annotation-footer .btn{width:100%}}@media(max-width:620px){.image-annotation-note-list{grid-template-columns:minmax(0,1fr)}}
.image-annotation-visual-setting{border:0;display:grid;gap:5px;margin:0;min-width:0;padding:0}
.image-annotation-visual-setting legend{font-size:var(--font-size-label, .75rem);font-weight:var(--font-weight-label, 750);margin:0;padding:0}
.image-annotation-visual-choices{display:flex;flex-wrap:wrap;gap:6px}
.image-annotation-visual-choice{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:7px;box-sizing:border-box;color:var(--color-text-soft);cursor:pointer;display:flex;height:42px;justify-content:center;padding:6px 9px;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,color .16s ease;width:72px}
.image-annotation-visual-choice svg{fill:none;height:24px;overflow:visible;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.5;width:64px}
.image-annotation-visual-choice__filled{fill:currentColor;stroke:currentColor}
.image-annotation-visual-choice:hover,.image-annotation-visual-choice:focus-visible{border-color:var(--color-primary);color:var(--color-primary)}
.image-annotation-visual-choice.is-active{background:rgb(var(--color-primary-rgb)/.1);border-color:var(--color-primary);box-shadow:0 0 0 2px rgb(var(--color-primary-rgb)/.12);color:var(--color-primary-strong)}
@media(max-width:620px){.image-annotation-visual-setting{width:100%}.image-annotation-visual-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.image-annotation-visual-choice{max-width:100%;width:100%}}
.image-annotation-context-settings--directional{align-items:end;flex-wrap:nowrap}
.image-annotation-arrow-settings{align-items:end;display:flex;gap:14px;min-width:0}
.image-annotation-arrow-settings[hidden]{display:none}
@media(max-width:680px){.image-annotation-context-settings--directional{align-items:stretch;flex-wrap:wrap}.image-annotation-arrow-settings{align-items:stretch;display:grid;gap:12px;grid-template-columns:minmax(0,1fr);width:100%}.image-annotation-arrow-settings[hidden]{display:none}}
.image-annotation-freehand-fill{min-width:250px}
.image-annotation-freehand-fill[hidden]{display:none}
.image-annotation-fill-transparent{font-size:var(--font-size-table, .75rem);min-height:30px;padding:5px 9px}
.image-annotation-zoom{display:grid;font-size:var(--font-size-table, .75rem);font-weight:var(--font-weight-label, 750);gap:5px;min-width:250px}
.image-annotation-zoom>div{align-items:center;display:flex;gap:6px}
.image-annotation-zoom .image-annotation-tool{align-items:center;display:inline-flex;justify-content:center;min-height:42px;min-width:42px;padding:7px 10px}
.image-annotation-zoom output{color:var(--color-primary);font-weight:var(--font-weight-label, 800);min-width:54px;text-align:center}
.image-annotation-zoom-surface{align-items:flex-start;display:flex;flex:0 0 auto;justify-content:flex-start;position:relative}
.image-annotation-zoom-surface>.canvas-container{transform-origin:top left}
.image-annotation-export-dialog{width:min(46rem,calc(100vw - 2rem))}
.image-annotation-export-form{gap:18px}
.image-annotation-export-header{align-items:flex-start;display:flex;gap:18px;justify-content:space-between}
.image-annotation-export-header h2{color:var(--color-primary-strong);font-size:var(--font-size-section-title, 1.3rem);margin:7px 0 0}
.image-annotation-export-close{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:50%;color:var(--color-text);cursor:pointer;display:flex;flex:0 0 42px;font:inherit;font-size:1.35rem;height:42px;justify-content:center;padding:0;width:42px}
.image-annotation-export-close:hover,.image-annotation-export-close:focus-visible{border-color:var(--color-primary);color:var(--color-primary);outline:0}
.image-annotation-export-fieldset{border:0;display:grid;gap:9px;margin:0;min-width:0;padding:0}
.image-annotation-export-fieldset legend{color:var(--color-text);font-size:var(--font-size-label, .88rem);font-weight:var(--font-weight-label, 800);margin:0;padding:0}
.image-annotation-export-choices{display:grid;gap:9px;min-width:0}
.image-annotation-export-choices--formats{grid-template-columns:repeat(3,minmax(0,1fr))}
.image-annotation-export-choices--destinations{grid-template-columns:repeat(4,minmax(0,1fr))}
.image-annotation-export-choices label{cursor:pointer;display:block;min-width:0}
.image-annotation-export-choices input{height:1px;opacity:0;position:absolute;width:1px}
.image-annotation-export-choices label>span{align-content:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;box-sizing:border-box;display:grid;gap:3px;min-height:58px;min-width:0;padding:11px 12px;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease}
.image-annotation-export-choices label:hover>span,.image-annotation-export-choices input:focus-visible+span{border-color:var(--color-primary)}
.image-annotation-export-choices input:checked+span{background:rgb(var(--color-primary-rgb)/.08);border-color:var(--color-primary);box-shadow:0 0 0 2px rgb(var(--color-primary-rgb)/.1);color:var(--color-primary-strong)}
.image-annotation-export-choices--formats label>span{font-size:var(--font-size-label, .9rem);font-weight:var(--font-weight-label, 850);justify-items:center;min-height:48px}
.image-annotation-export-choices strong{font-size:var(--font-size-table, .84rem);overflow-wrap:anywhere}
.image-annotation-export-choices small{color:var(--color-text-soft);font-size:var(--font-size-help, .72rem);line-height:1.35;overflow-wrap:anywhere}
.image-annotation-export-status{color:var(--color-text-soft);font-size:var(--font-size-caption, .82rem);margin:0;min-height:1.2em}
.image-annotation-export-status[data-state="success"]{color:var(--color-primary)}
.image-annotation-export-status[data-state="error"]{color:var(--color-danger)}
.image-annotation-export-actions{justify-content:flex-end;margin:0}
@media(max-width:980px){.image-annotation-export-choices--destinations{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.image-annotation-zoom{min-width:0;width:100%}.image-annotation-export-choices--destinations{grid-template-columns:minmax(0,1fr)}}
@media(max-width:480px){.image-annotation-export-choices--formats{grid-template-columns:minmax(0,1fr)}.image-annotation-export-actions{align-items:stretch;display:grid;grid-template-columns:minmax(0,1fr)}.image-annotation-export-actions .btn{width:100%}}
.image-annotation-stage{align-items:flex-start;justify-content:flex-start}
.image-annotation-zoom-surface{margin:auto}
.image-annotation-text-settings{align-items:flex-start;display:grid;gap:18px;grid-template-columns:minmax(0,430px) minmax(0,420px);width:100%}
.image-annotation-text-settings>.image-annotation-visual-setting{min-width:0}
.image-annotation-text-choices{display:flex;flex-wrap:wrap;gap:7px;max-width:100%}
.image-annotation-text-choices--families{width:min(100%,430px)}
.image-annotation-text-choices--sizes{width:min(100%,420px)}
.image-annotation-text-choice{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:9px;box-sizing:border-box;color:var(--color-text);cursor:pointer;display:grid;flex:1 1 76px;gap:1px;justify-items:center;min-height:56px;min-width:0;padding:7px 10px;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,color .16s ease}
.image-annotation-text-choice>span{font-size:var(--font-size-body, 1.08rem);font-weight:var(--font-weight-label, 650);line-height:1}
.image-annotation-text-choice>small{color:var(--color-text-soft);font-size:var(--font-size-help, .66rem);font-weight:var(--font-weight-label, 650);line-height:1.2}
.image-annotation-text-choice:hover,.image-annotation-text-choice:focus-visible{border-color:var(--color-primary);color:var(--color-primary);outline:0}
.image-annotation-text-choice:focus-visible{box-shadow:0 0 0 3px rgb(var(--color-primary-rgb)/.16)}
.image-annotation-text-choice.is-active{background:rgb(var(--color-primary-rgb)/.1);border-color:var(--color-primary);box-shadow:0 0 0 2px rgb(var(--color-primary-rgb)/.1);color:var(--color-primary-strong)}
.image-annotation-text-choice.is-active>small{color:var(--color-primary)}
.image-annotation-text-choice[data-font-family-value="Inter"]>span{font-family:Inter,Arial,sans-serif}
.image-annotation-text-choice[data-font-family-value="Arial"]>span{font-family:Arial,sans-serif}
.image-annotation-text-choice[data-font-family-value="Georgia"]>span{font-family:Georgia,serif}
.image-annotation-text-choice[data-font-family-value="Verdana"]>span{font-family:Verdana,sans-serif}
.image-annotation-text-size-choice{flex-basis:54px;min-height:56px;padding-inline:7px}
.image-annotation-text-size-choice--14>span{font-size:.78rem}.image-annotation-text-size-choice--18>span{font-size:.9rem}.image-annotation-text-size-choice--24>span{font-size:1.02rem}.image-annotation-text-size-choice--32>span{font-size:1.14rem}.image-annotation-text-size-choice--40>span{font-size:1.27rem}.image-annotation-text-size-choice--48>span{font-size:1.4rem}
@media(max-width:900px){.image-annotation-text-settings{grid-template-columns:minmax(0,1fr)}}
@media(max-width:620px){.image-annotation-text-settings{gap:14px}.image-annotation-text-settings>.image-annotation-visual-setting{width:100%}.image-annotation-text-choices--families,.image-annotation-text-choices--sizes{width:100%}.image-annotation-text-choice{flex-basis:calc(50% - 7px)}.image-annotation-text-size-choice{flex-basis:calc(33.333% - 7px)}}
.report-session-advice-host{min-width:0}.report-session-advice{display:grid;gap:9px}.report-session-advice__item{background:#fbf7f9;border:1px solid #ead8e2;border-radius:11px;display:grid;gap:5px;padding:11px 13px}.report-session-advice__heading{align-items:baseline;display:flex;flex-wrap:wrap;gap:4px 9px}.report-session-advice__heading strong{color:#403941;font-size:var(--font-size-card-title, .9em);font-weight:var(--font-weight-title, 800)}.report-session-advice__heading>span{color:#8b5e76;font-size:var(--font-size-caption, .72em);font-weight:var(--font-weight-label, 700)}.report-session-advice__meta{align-items:center;color:#5e555b;display:flex;flex-wrap:wrap;font-size:var(--font-size-help, .78em);gap:4px 7px;margin:0!important}.report-session-advice__dot{color:#db70a6}.report-session-advice__instructions,.report-session-advice__note{font-size:var(--font-size-help, .82em)!important;line-height:1.45!important;margin:0!important}.report-session-advice__note{color:#695d64}.report-session-advice-placeholder{background:#fbf7f9;border:1px dashed #d9b9c9;border-radius:10px;color:#695d64;display:grid;gap:3px;padding:13px}.report-session-advice-placeholder strong{color:#403941;font-size:var(--font-size-table, .8rem)}.report-session-advice-placeholder span{font-size:var(--font-size-table, .72rem);line-height:1.4}
.image-annotation-note textarea{height:auto;min-height:calc(1.4em + 10px);overflow:hidden;padding:4px 7px;resize:none}
.naturisis-planning-workspace{align-items:start;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));min-width:0;width:100%}
.naturisis-planning-workspace>.assessment-calculation-inputs,.naturisis-planning-workspace>.ration-workspace{align-self:start;container-type:inline-size;margin:0;min-width:0;width:100%}
.assessment-calculation-inputs{box-sizing:border-box;min-width:0;width:min(100%,76rem)}
.assessment-calculation-inputs__summary{align-items:center;cursor:pointer;display:grid;gap:13px;grid-template-columns:auto minmax(0,1fr) auto;list-style:none;min-height:60px;padding:5px 0}
.assessment-calculation-inputs__summary::-webkit-details-marker{display:none}
.assessment-calculation-inputs__summary-icon,.ration-workspace__step{align-items:center;background:var(--color-secondary-faint);border:1px solid rgb(var(--color-secondary-rgb)/.22);border-radius:10px;color:var(--color-secondary-strong);display:flex;flex:0 0 38px;font-size:.72rem;font-weight:850;height:38px;justify-content:center;width:38px}
.assessment-calculation-inputs__summary>span:nth-child(2){display:grid;gap:2px;min-width:0}
.assessment-calculation-inputs__summary strong{color:var(--color-primary-strong);font-size:var(--font-size-body, 1rem);line-height:1.25}
.assessment-calculation-inputs__summary small{color:var(--color-text-soft);font-size:var(--font-size-help, .74rem);font-weight:var(--font-weight-label, 600);line-height:1.4}
.assessment-calculation-inputs__summary-action{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;color:var(--color-primary-strong);display:flex;font-size:var(--font-size-control, .72rem);font-style:normal;font-weight:var(--font-weight-label, 800);gap:9px;min-height:42px;padding:0 13px 0 15px;transition:background-color .16s ease,border-color .16s ease,color .16s ease}
.assessment-calculation-inputs__summary:hover .assessment-calculation-inputs__summary-action{background:var(--color-primary-soft);border-color:rgb(var(--color-primary-rgb)/.3)}
.assessment-calculation-inputs__summary-chevron{border-bottom:2px solid currentColor;border-right:2px solid currentColor;box-sizing:border-box;display:block;height:8px;margin-top:-4px;transform:rotate(45deg);transition:transform .16s ease,margin .16s ease;width:8px}
.assessment-calculation-inputs[open] .assessment-calculation-inputs__summary-chevron{margin-bottom:-4px;margin-top:0;transform:rotate(225deg)}
.assessment-calculation-inputs__summary:focus-visible{border-radius:10px;outline:3px solid rgb(var(--color-primary-rgb)/.2);outline-offset:3px}
.assessment-calculation-inputs__body{border-top:1px solid var(--color-border);display:grid;gap:18px;margin-top:4px;padding-top:18px}
.assessment-calculation-inputs__intro{color:var(--color-text-soft);font-size:var(--font-size-body, .88rem);line-height:1.55;margin:0;max-width:68ch}
.assessment-calculation-inputs__groups{display:grid;gap:14px}
.assessment-calculation-group{background:rgb(var(--color-primary-rgb)/.025);border:1px solid rgb(var(--color-primary-rgb)/.11);border-radius:14px;box-sizing:border-box;display:grid;gap:5px;margin:0;min-width:0;padding:15px}
.assessment-calculation-group legend{align-items:center;display:flex;gap:9px;padding:0 7px 0 0}
.assessment-calculation-group legend>span{align-items:center;background:var(--color-primary);border-radius:8px;color:#fff;display:flex;font-size:var(--font-size-label, .65rem);font-weight:var(--font-weight-label, 850);height:26px;justify-content:center;width:30px}
.assessment-calculation-group legend>strong{color:var(--color-primary-deep);font-size:var(--font-size-label, .9rem)}
.assessment-calculation-group>p{color:var(--color-text-soft);font-size:var(--font-size-table, .72rem);line-height:1.4;margin:0 0 7px}
.assessment-calculation-group__fields{display:grid;gap:10px;min-width:0}
.assessment-calculation-group--measurements .assessment-calculation-group__fields{grid-template-columns:repeat(3,minmax(0,1fr))}
.assessment-calculation-group--body_condition .assessment-calculation-group__fields{grid-template-columns:repeat(5,minmax(0,1fr))}
.assessment-calculation-group--activity .assessment-calculation-group__fields{grid-template-columns:minmax(0,25rem)}
.assessment-calculation-field{background:var(--color-surface);border:1px solid var(--color-border);border-radius:11px;box-sizing:border-box;display:grid!important;gap:7px!important;min-width:0;padding:11px 12px;position:relative}
.assessment-calculation-field.is-overridden{border-color:rgb(var(--color-secondary-rgb)/.38);box-shadow:0 0 0 2px rgb(var(--color-secondary-rgb)/.07)}
.assessment-calculation-field>label{align-items:flex-start;display:flex;font-size:var(--font-size-label, .78rem);font-weight:var(--font-weight-label, 800);gap:7px;justify-content:space-between;line-height:1.3;min-width:0}
.assessment-calculation-field>label>span{min-width:0}
.assessment-calculation-field>label small{color:var(--color-text-soft);font-size:var(--font-size-help, .64rem);font-weight:var(--font-weight-label, 650);white-space:nowrap}
.assessment-calculation-field>label em{background:var(--color-primary-soft);border-radius:999px;color:var(--color-primary-strong);flex:0 0 auto;font-size:var(--font-size-label, .62rem);font-style:normal;font-weight:var(--font-weight-label, 800);padding:3px 7px}
.assessment-calculation-field__source{color:var(--color-text-soft);display:flex;flex-wrap:wrap;font-size:var(--font-size-help, .66rem);gap:3px 5px;line-height:1.35}
.assessment-calculation-field__source strong{color:var(--color-text);font-weight:var(--font-weight-label, 750)}
.assessment-calculation-field input{font-variant-numeric:tabular-nums;width:10ch}
.assessment-calculation-field select{width:min(100%,25rem)}
.assessment-calculation-field input,.assessment-calculation-field select{box-sizing:border-box;max-width:100%}
.assessment-calculation-field__override{color:var(--color-secondary-strong);font-size:var(--font-size-table, .64rem);font-weight:var(--font-weight-label, 800)}
.assessment-calculation-inputs__footer{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}
.assessment-calculation-inputs__footer p{color:var(--color-text-soft);font-size:var(--font-size-table, .72rem);margin:0}
.assessment-calculation-inputs__footer .btn{width:auto}
.report-fill-page--finalized .report-fill-block{box-shadow:none}.report-fill-page--finalized .report-fill-block :disabled{cursor:default;opacity:1}.report-fill-page--finalized .report-builder-toolbar__identity input[readonly]{background:var(--color-surface-soft);cursor:default}
.report-finalization-action{align-items:flex-end;display:grid;gap:4px}.report-finalization-action small{color:var(--color-danger);font-size:var(--font-size-control, .72rem);line-height:1.3;max-width:240px}
.ration-workspace{display:grid;gap:16px}
.naturisis-planning-workspace[aria-busy="true"]{cursor:progress}
.naturisis-planning-workspace .btn.is-loading{cursor:progress;gap:var(--ui-space-2, 8px)}
.naturisis-planning-workspace .btn.is-loading::before{animation:naturisis-action-spin .7s linear infinite;border:2px solid currentColor;border-right-color:transparent;border-radius:var(--ui-radius-round, 50%);box-sizing:border-box;content:"";display:block;flex:0 0 14px;height:14px;width:14px}
@keyframes naturisis-action-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.naturisis-planning-workspace .btn.is-loading::before{animation-duration:1.4s}}
.ration-workspace__header{align-items:flex-start;display:flex;gap:13px}
.ration-workspace__header>div{display:grid;gap:3px;min-width:0}
.ration-workspace__header h2{color:var(--color-primary-strong);font-size:var(--font-size-section-title, 1.23rem);line-height:var(--line-height-title, 1.25);margin:0}
.ration-workspace__header p{color:var(--color-text-soft);font-size:var(--font-size-table, .78rem);line-height:1.45;margin:0}
.ration-guided-search{background:var(--color-primary-soft);border:1px solid rgb(var(--color-primary-rgb)/.14);border-radius:14px;display:grid;gap:13px;padding:15px}
.ration-guided-search__heading{align-items:flex-start;display:flex;gap:10px}
.ration-guided-search__heading>span,.ration-manual-composer>summary>span:first-child{align-items:center;background:var(--color-primary);border-radius:50%;color:#fff;display:flex;flex:0 0 28px;font-size:var(--font-size-control, .7rem);font-weight:var(--font-weight-label, 850);height:28px;justify-content:center;width:28px}
.ration-guided-search__heading>div{display:grid;gap:2px;min-width:0}
.ration-guided-search__heading h3{color:var(--color-primary-deep);font-size:var(--font-size-card-title, .92rem);margin:0}
.ration-guided-search__heading p{color:var(--color-text-soft);font-size:var(--font-size-card-title, .7rem);line-height:var(--line-height-title, 1.4);margin:0}
.ration-guided-search__form{align-items:end;display:flex;flex-wrap:wrap;gap:10px 12px;margin:0;min-width:0}
.ration-guided-search__form .field{display:grid;flex:0 1 auto;gap:6px;font-size:var(--font-size-label, .76rem);font-weight:var(--font-weight-label, 800);max-width:100%;min-width:0}
.ration-guided-search__form select{box-sizing:border-box;field-sizing:content;max-width:100%;min-width:0;width:auto}
.ration-guided-search__form .btn{width:auto}
.ration-guided-search__options{display:grid;gap:10px}
.ration-guided-search__separator{align-items:center;color:var(--color-text-soft);display:flex;font-size:var(--font-size-table, .68rem);font-weight:var(--font-weight-label, 800);gap:8px;text-transform:uppercase}
.ration-guided-search__separator::before,.ration-guided-search__separator::after{background:rgb(var(--color-primary-rgb)/.14);content:"";height:1px;width:34px}
.ration-guided-search__catalog-form{align-items:center;display:flex;flex-wrap:wrap;gap:10px 14px;margin:0}
.ration-guided-search__catalog-form>div{display:grid;flex:0 1 300px;gap:2px;min-width:180px}
.ration-guided-search__catalog-form strong{color:var(--color-primary-deep);font-size:var(--font-size-table, .78rem)}
.ration-guided-search__catalog-form small{color:var(--color-text-soft);font-size:var(--font-size-help, .68rem);line-height:1.4}
.ration-guided-search__catalog-form .btn{width:auto}
.ration-manual-composer{border:1px solid var(--color-border);border-radius:14px;margin:0;min-width:0;padding:0}
.ration-manual-composer>summary{align-items:center;cursor:pointer;display:grid;gap:10px;grid-template-columns:auto minmax(0,1fr) auto;list-style:none;min-height:62px;padding:11px 15px}
.ration-manual-composer>summary::-webkit-details-marker{display:none}
.ration-manual-composer>summary>span:nth-child(2){display:grid;gap:2px;min-width:0}
.ration-manual-composer>summary strong{color:var(--color-primary-deep);font-size:var(--font-size-control, .88rem)}
.ration-manual-composer>summary small{color:var(--color-text-soft);font-size:var(--font-size-control, .69rem);font-weight:var(--font-weight-label, 600);line-height:1.4}
.ration-manual-composer>summary em{border:1px solid var(--color-border);border-radius:999px;color:var(--color-primary-strong);font-size:var(--font-size-control, .68rem);font-style:normal;font-weight:var(--font-weight-label, 800);padding:7px 10px}
.ration-manual-composer[open]>summary em{font-size:0}
.ration-manual-composer[open]>summary em::before{content:"Refermer";font-size:.68rem}
.ration-manual-composer__form{border-top:1px solid var(--color-border);box-sizing:border-box;display:grid;gap:10px;grid-template-columns:minmax(0,1fr);margin:0;max-width:100%;min-width:0;padding:14px 15px 15px}
.ration-composer-row{align-items:end;background:rgb(var(--color-primary-rgb)/.025);border:1px solid rgb(var(--color-primary-rgb)/.1);border-radius:12px;box-sizing:border-box;display:grid;gap:9px 14px;grid-template-columns:minmax(0,1fr) max-content;margin:0;min-width:0;padding:12px}
.ration-composer-row legend{align-items:center;color:var(--color-primary-deep);display:flex;font-size:var(--font-size-label, .78rem);font-weight:var(--font-weight-label, 850);gap:7px;grid-column:1/-1;padding:0 6px 0 0}
.ration-composer-row legend span{align-items:center;background:var(--color-secondary-faint);border-radius:7px;color:var(--color-secondary-strong);display:flex;font-size:var(--font-size-label, .64rem);height:24px;justify-content:center;width:24px}
.ration-composer-row .field{display:grid;gap:5px;font-size:var(--font-size-label, .72rem);font-weight:var(--font-weight-label, 800);max-width:100%;min-width:0}
.ration-composer-row select{box-sizing:border-box;field-sizing:content;max-width:100%;min-width:0;width:auto}
.ration-composer-row__quantity>span{background:var(--color-primary-soft);border-radius:999px;color:var(--color-primary-strong);font-size:var(--font-size-table, .62rem);justify-self:start;padding:2px 7px}
.ration-composer-row__quantity input{box-sizing:border-box;font-variant-numeric:tabular-nums;max-width:100%;width:10ch}
.ration-manual-composer__actions{display:flex;justify-content:flex-start;padding-top:2px}
.ration-manual-composer__actions .btn{width:auto}
.ration-workspace__status{background:var(--color-secondary-faint);border:1px solid rgb(var(--color-secondary-rgb)/.2);border-radius:10px;color:var(--color-secondary-deep);font-size:var(--font-size-caption, .76rem);font-weight:var(--font-weight-label, 750);line-height:1.45;margin:0;padding:10px 12px}
.ration-search-range{color:var(--color-text-soft);font-size:var(--font-size-table, .74rem);line-height:1.4;margin:-5px 0 0}
.ration-search-summary{background:var(--color-surface-soft,#f5f1ed);border-radius:10px;color:var(--color-text-soft);font-size:var(--font-size-control, .74rem);line-height:1.45;margin:0;padding:10px 12px}
.ration-proposal-card{min-width:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;display:grid;gap:9px;padding:15px}
.ration-proposal-card.is-selected{border-color:rgb(var(--color-secondary-rgb)/.42);box-shadow:0 0 0 3px rgb(var(--color-secondary-rgb)/.08)}
.ration-proposal-card.needs-adjustment{border-color:var(--color-success)}
.ration-proposal-card h3{color:var(--color-primary-strong);font-size:var(--font-size-card-title, 1rem);margin:0}
.ration-proposal-card>ul{display:grid;gap:5px;margin:0;padding-left:1.4rem}
.ration-proposal-card>p{font-size:var(--font-size-table, .78rem);line-height:1.45;margin:0}
.ration-proposal-card>details{min-width:0;border-top:1px solid var(--color-border);padding-top:9px}
.ration-proposal-card>details summary{color:var(--color-primary-strong);cursor:pointer;font-size:var(--font-size-control, .76rem);font-weight:var(--font-weight-label, 800)}
.ration-nutrient-comparison__scroll{min-width:0;margin-top:9px;max-width:100%;overflow-x:auto}
.ration-nutrient-comparison table{border-collapse:separate;border-spacing:0;font-size:var(--font-size-table, .68rem);line-height:1.25;min-width:520px;width:100%}
.ration-nutrient-comparison th,.ration-nutrient-comparison td{border-bottom:1px solid var(--color-border);padding:6px 8px;text-align:right;vertical-align:middle;white-space:nowrap}
.ration-nutrient-comparison thead th{background:var(--color-primary-soft);color:var(--color-primary-deep);font-size:var(--font-size-table, .62rem);font-weight:var(--font-weight-label, 800);letter-spacing:.035em;text-transform:uppercase}
.ration-nutrient-comparison thead th:first-child{border-radius:8px 0 0;text-align:left}
.ration-nutrient-comparison thead th:last-child{border-radius:0 8px 0 0}
.ration-nutrient-comparison tbody th{color:var(--color-text);font-size:var(--font-size-table, .69rem);font-weight:var(--font-weight-label, 700);text-align:left;white-space:normal}
.ration-nutrient-comparison tbody td{color:var(--color-text-soft);font-variant-numeric:tabular-nums}
.ration-nutrient-comparison tbody td>span:not(.ration-nutrient-status){font-size:var(--font-size-table, .6rem)}
.ration-nutrient-comparison tbody tr:last-child th,.ration-nutrient-comparison tbody tr:last-child td{border-bottom:0}
.ration-nutrient-comparison tbody tr.is-low{background:#fff8e8}
.ration-nutrient-comparison tbody tr.is-adequate{background:var(--color-offer-included-soft)}
.ration-nutrient-comparison tbody tr.is-high{background:var(--color-danger-soft)}
.ration-nutrient-comparison tbody tr.is-unavailable{background:rgb(var(--color-text-rgb)/.035)}
.ration-nutrient-status{border-radius:999px;display:inline-flex;font-size:var(--font-size-caption, .59rem);font-weight:var(--font-weight-label, 800);justify-content:center;min-width:74px;padding:3px 7px}
.ration-nutrient-status--low{background:#f8e6b8;color:#76520e}
.ration-nutrient-status--adequate{background:var(--color-offer-included-soft);color:var(--color-offer-included)}
.ration-nutrient-status--high{background:var(--color-danger-soft);color:var(--color-danger-strong)}
.ration-nutrient-status--unavailable{background:rgb(var(--color-text-rgb)/.08);color:var(--color-text-soft)}
.ration-excluded-references{color:var(--color-text-soft);font-size:var(--font-size-table, .72rem)}
.ration-excluded-references summary{cursor:pointer;font-weight:var(--font-weight-label, 750)}
.ration-excluded-references p{line-height:1.45;margin:7px 0 0}
.ration-hay-alternatives{background:var(--color-surface-soft,#f5f1ed);border:1px solid var(--color-border);border-radius:10px;display:grid;gap:8px;margin:0;padding:14px}.ration-hay-alternatives p{color:var(--color-text-soft);margin:0}.ration-hay-alternatives>div{display:flex;flex-wrap:wrap;gap:8px}.ration-hay-alternatives form{margin:0}
@container (max-width:34rem){.assessment-calculation-group--measurements .assessment-calculation-group__fields,.assessment-calculation-group--body_condition .assessment-calculation-group__fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container (max-width:23rem){.assessment-calculation-group--measurements .assessment-calculation-group__fields,.assessment-calculation-group--body_condition .assessment-calculation-group__fields,.ration-composer-row{grid-template-columns:minmax(0,1fr)}.ration-composer-row legend{grid-column:1}.ration-composer-row__quantity{align-items:start}}
@media(max-width:900px){.naturisis-planning-workspace{grid-template-columns:minmax(0,1fr)}}
@media(max-width:720px){.assessment-calculation-group--measurements .assessment-calculation-group__fields,.assessment-calculation-group--body_condition .assessment-calculation-group__fields{grid-template-columns:repeat(2,minmax(0,1fr))}.ration-composer-row{grid-template-columns:minmax(0,1fr)}.ration-guided-search__form .btn{justify-self:start}.ration-composer-row legend{grid-column:1}.ration-composer-row__quantity{align-items:start}.ration-manual-composer__actions{justify-content:flex-start}}
@media(max-width:500px){.assessment-calculation-inputs__summary-action{justify-content:center;padding:0;width:42px}.assessment-calculation-inputs__summary-action>[data-persisted-details-label]{display:none}.assessment-calculation-group--measurements .assessment-calculation-group__fields,.assessment-calculation-group--body_condition .assessment-calculation-group__fields{grid-template-columns:minmax(0,1fr)}.assessment-calculation-inputs__footer{align-items:flex-start;flex-direction:column}.assessment-calculation-inputs__footer .btn,.ration-guided-search__form .btn,.ration-guided-search__catalog-form .btn,.ration-manual-composer__actions .btn{max-width:100%;width:100%}.ration-workspace__header p{font-size:var(--font-size-table, .74rem)}}
/* Public legal documents and the common, identity-verified agreement step. */
.legal-page { width: min(100% - 2rem, 58rem); margin: 2rem auto; }
.legal-public-header { background: var(--color-hero-night); color: var(--color-surface); padding: clamp(24px, 5vw, 64px); }
.legal-public-header__inner { display: grid; gap: var(--ui-space-5, 20px); margin: 0 auto; width: min(100%, 76rem); }
.legal-public-header h1 { color: inherit; max-width: 30ch; }
.legal-public-header p { color: rgb(255 255 255 / 82%); margin: 0; max-width: 54rem; }
.legal-public-brand { align-items: center; color: var(--color-surface); display: inline-flex; font-weight: var(--font-weight-title, 700); gap: var(--ui-space-3, 12px); justify-self: start; text-decoration: none; }
.legal-public-brand img, .legal-public-footer__brand img { border-radius: 13px; }
.legal-public-header .legal-links a { color: var(--color-surface); }
.legal-public-header__back { display: inline-flex; align-items: center; gap: var(--ui-space-2, 8px); justify-self: start; padding: var(--ui-space-2, 8px) var(--ui-space-4, 16px); border: 1px solid rgb(255 255 255 / 65%); border-radius: 999px; color: var(--color-surface); font-weight: 700; text-decoration: none; }
.legal-public-header__back:hover, .legal-public-header__back:focus-visible { background: rgb(255 255 255 / 18%); color: var(--color-surface); }
.legal-public-header__back:focus-visible { outline: 3px solid var(--color-secondary); outline-offset: 3px; }
.legal-page--public, .legal-page--client { width: min(100% - 2rem, 76rem); display: grid; grid-template-columns: minmax(13rem, 1fr) minmax(0, 3fr); gap: clamp(20px, 3vw, 36px); align-items: start; }
.legal-page--client { margin-block: clamp(28px, 4vw, 48px) clamp(52px, 7vw, 80px); }
.legal-public-summary { position: sticky; top: 24px; }
.legal-public-summary > span { color: var(--color-secondary); font-size: var(--font-size-caption); font-weight: var(--font-weight-label); letter-spacing: .08em; text-transform: uppercase; }
.legal-public-summary h2 { font-size: var(--font-size-card-title, 18px); }
.legal-public-summary ol { padding-left: 20px; }
.legal-public-summary li { padding-block: 6px; }
.legal-public-summary a { color: var(--color-primary-strong); }
.legal-page--public .legal-document, .legal-page--client .legal-document { margin-top: 0; }
.legal-page--public .legal-document > section, .legal-page--client .legal-document > section { scroll-margin-top: 24px; border-top: 1px solid var(--color-border); margin-top: 24px; }
.legal-document__version { color: var(--color-text-soft); font-size: var(--font-size-help); font-weight: var(--font-weight-label); }
.legal-document__resources { border-top: 1px solid var(--color-border); margin-top: var(--ui-space-6, 24px); padding-top: var(--ui-space-5, 20px); }
.legal-document__resources h2 { margin-top: 0; }
.legal-document__resources nav { display: flex; flex-wrap: wrap; gap: var(--ui-space-3, 12px) var(--ui-space-5, 20px); }
.legal-public-footer { align-items: center; background: var(--color-primary-deep); color: var(--color-surface); display: grid; gap: var(--ui-space-6, 24px); grid-template-columns: minmax(0, 1fr) auto; padding: clamp(32px, 5vw, 64px) max(16px, calc((100vw - 76rem) / 2)); }
.legal-public-footer__brand { align-items: center; color: var(--color-surface); display: inline-flex; text-decoration: none; }
.legal-public-footer .footer-language { margin-top: 0; }
.legal-public-footer .footer-language label { color: var(--color-secondary-muted); }
.legal-public-footer .footer-language__choice,.legal-public-footer .footer-language__choice .ui-select__trigger.input { color: var(--color-surface); }
.client-legal-document-page__banner > div { max-width: 58rem; }
@media (max-width: 760px) { .legal-page--public, .legal-page--client { grid-template-columns: minmax(0, 1fr); } .legal-public-summary { position: static; } .legal-public-footer { grid-template-columns: minmax(0, 1fr); } }
.legal-page--agreement { max-width: 44rem; }
.legal-document { margin-top: 1rem; padding: clamp(1.25rem, 4vw, 2.5rem); line-height: 1.65; overflow-wrap: anywhere; }
.legal-document h1 { font-size: clamp(1.65rem, 4vw, 2.3rem); line-height: 1.2; }
.legal-document h2 { margin-top: 1.8rem; font-size: 1.18rem; line-height: 1.4; }
.legal-document p { margin: .8rem 0; }
.legal-links { display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; margin: 1.25rem 0; }
.legal-review-notice, .legal-sharing-notice { padding: 1rem 1.2rem; border: 1px solid var(--color-primary); border-radius: 12px; background: rgb(55 109 112 / 6%); }
.legal-sharing-notice h2 { margin-top: 0; }
.legal-choice-form { display: grid; gap: 1rem; margin: 1.5rem 0; }
.legal-choice-form .client-account-preference-choice { align-items: flex-start; min-width: 0; }
.legal-choice-form input[type="checkbox"] { flex: 0 0 auto; margin-top: .3rem; }
.legal-choice-form .client-account-preference-choice > span { display: block; }
.legal-choice-form .client-account-preference-choice a { display: inline; color: var(--color-primary-strong); font-weight: var(--font-weight-label, 600); }
.legal-choice-form .client-account-preference-choice small { display: block; margin-top: .35rem; }
.legal-choice-form .btn, .legal-exit .btn { justify-self: start; width: auto; max-width: 100%; white-space: normal; }
.legal-exit { margin-top: 1rem; }
.legal-document a { color: var(--color-primary-strong); font-weight: 600; }
.legal-document .client-account-preference-choice a { display: inline; }
.legal-document .client-account-preference-choice > span { display: block; }
.legal-document .client-account-preference-choice small { display: block; margin-top: .35rem; }

/* Canonical practitioner education editor and directory credential marker. */
.practitioner-education-editor { border-top: 1px solid var(--color-border); display: grid; gap: var(--ui-space-3, 12px); padding-top: var(--ui-space-4, 16px); }
.practitioner-education-editor > header { align-items: flex-end; display: flex; flex-wrap: wrap; gap: var(--ui-space-3, 12px); justify-content: space-between; }
.practitioner-education-editor > header > div { display: grid; gap: 3px; }
.practitioner-education-editor > header small { color: var(--color-accent-strong); font-size: var(--font-size-caption); font-weight: var(--font-weight-label); letter-spacing: .07em; text-transform: uppercase; }
.practitioner-education-editor > header h3 { color: var(--color-primary-strong); font-size: var(--font-size-card-title); margin: 0; }
.practitioner-education-editor > header p, .practitioner-education-editor__empty { color: var(--color-text-soft); font-size: var(--font-size-help); margin: 0; }
.practitioner-education-editor__rows { display: grid; gap: var(--ui-space-3, 12px); }
.practitioner-education-row { background: var(--color-surface-muted); border: 1px solid var(--color-border); border-radius: var(--ui-radius-control, 12px); display: grid; gap: var(--ui-space-3, 12px); grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; min-width: 0; padding: var(--ui-space-4, 16px); }
.practitioner-education-row legend { color: var(--color-primary-strong); font-size: var(--font-size-label); font-weight: var(--font-weight-label); padding-inline: var(--ui-space-2, 8px); }
.practitioner-education-row > label { align-content: start; }
.practitioner-education-row > label:nth-of-type(3) { grid-column: 1 / -1; max-width: 26rem; }
.practitioner-education-row__remove { appearance: none; background: transparent; border: 0; color: var(--color-danger-strong); cursor: pointer; font: inherit; font-size: var(--font-size-help); font-weight: var(--font-weight-label); justify-self: start; padding: var(--ui-space-1, 4px) 0; }
.practitioner-education-row__remove:hover, .practitioner-education-row__remove:focus-visible { color: var(--color-danger); outline: 2px solid var(--color-focus); outline-offset: 3px; }
.client-portal-directory-card__marks { align-items: end; display: grid; gap: var(--ui-space-2, 8px); justify-items: end; max-width: min(17rem, 30vw); }
.client-portal-directory-card__education { align-items: center; background: var(--color-highlight-soft); border: 1px solid rgb(var(--color-secondary-rgb) / .24); border-radius: 12px; color: var(--color-primary-strong); display: grid; gap: var(--ui-space-2, 8px); grid-template-columns: 34px minmax(0, 1fr); max-width: 100%; padding: 7px 9px; }
.client-portal-directory-card__education-icon { align-items: center; background: var(--color-surface); border: 1px solid rgb(var(--color-primary-rgb) / .12); border-radius: 10px; box-shadow: 0 4px 10px rgb(var(--color-primary-rgb) / .1); display: inline-flex; height: 34px; justify-content: center; width: 34px; }
.client-portal-directory-card__education-icon svg { fill: none; height: 21px; stroke: currentColor; width: 21px; }
.client-portal-directory-card__education-copy { display: grid; gap: 1px; min-width: 0; }
.client-portal-directory-card__education-copy strong, .client-portal-directory-card__education-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.client-portal-directory-card__education-copy strong { font-size: var(--font-size-caption); }
.client-portal-directory-card__education-copy small { color: var(--color-text-soft); font-size: var(--font-size-table); }
.client-portal-directory-card__education-copy em { color: var(--color-accent-strong); font-size: var(--font-size-caption); font-style: normal; font-weight: var(--font-weight-label); }
.client-portal-directory-page__content,
.practitioner-directory-page > .card-section { container-type: inline-size; }
.client-portal-directory-grid.client-portal-directory-grid--tiered { align-items: start; grid-template-columns: repeat(6, minmax(0, 1fr)); }
.client-portal-directory-grid--tiered > .client-portal-directory-card { grid-column: span 3; }
.client-portal-directory-grid--tiered > .client-portal-directory-card--reference { grid-column: span 2; }
.client-portal-directory-card.client-portal-directory-card--reference { align-content: start; gap: 6px; min-height: 202px; min-width: 0; padding: var(--ui-space-3, 12px) 14px; }
.client-portal-directory-card.client-portal-directory-card--reference .client-portal-directory-card__identity { align-items: center; gap: var(--ui-space-2, 8px); grid-template-columns: 40px minmax(0, 1fr); min-width: 0; }
.client-portal-directory-card.client-portal-directory-card--reference .client-portal-directory-card__photo { border-radius: 10px; height: 40px; width: 40px; }
.client-portal-directory-card__reference-heading { display: grid; gap: 2px; min-width: 0; }
.client-portal-directory-card.client-portal-directory-card--reference .badge { box-shadow: none; justify-self: start; margin: 0; padding: 3px 7px; }
.client-portal-directory-card.client-portal-directory-card--reference h2 { font-size: var(--font-size-label, .875rem); line-height: var(--line-height-title, 1.2); overflow-wrap: anywhere; }
.client-portal-directory-card.client-portal-directory-card--reference .client-portal-directory-card__city { font-size: var(--font-size-table, .875rem); line-height: 1.35; }
.client-portal-directory-card.client-portal-directory-card--reference .client-portal-directory-card__practices { flex-wrap: nowrap; gap: var(--ui-space-1, 4px); min-height: 0; }
.client-portal-directory-card.client-portal-directory-card--reference .client-portal-directory-card__practices span { min-height: 0; padding: 3px 7px; white-space: normal; }
.client-portal-directory-card.client-portal-directory-card--reference .client-portal-directory-card__practice-more { flex: 0 0 auto; }
.client-portal-directory-card.client-portal-directory-card--reference .client-portal-directory-card__actions { align-items: center; gap: var(--ui-space-2, 8px); margin-top: 0; }
.client-portal-directory-card.client-portal-directory-card--reference .client-portal-directory-card__actions .btn { flex: 0 1 auto; min-height: 38px; padding: .4rem .6rem; white-space: normal; }
@container (max-width: 900px) { .client-portal-directory-grid.client-portal-directory-grid--tiered { grid-template-columns: repeat(2, minmax(0, 1fr)); } .client-portal-directory-grid--tiered > .client-portal-directory-card { grid-column: span 2; } .client-portal-directory-grid--tiered > .client-portal-directory-card--reference { grid-column: span 1; } }
@container (max-width: 600px) { .client-portal-directory-grid.client-portal-directory-grid--tiered { grid-template-columns: minmax(0, 1fr); } .client-portal-directory-grid--tiered > .client-portal-directory-card, .client-portal-directory-grid--tiered > .client-portal-directory-card--reference { grid-column: span 1; } }
@media (max-width: 900px) { .client-portal-directory-grid.client-portal-directory-grid--tiered { grid-template-columns: repeat(2, minmax(0, 1fr)); } .client-portal-directory-grid--tiered > .client-portal-directory-card { grid-column: span 2; } .client-portal-directory-grid--tiered > .client-portal-directory-card--reference { grid-column: span 1; } }
@media (max-width: 600px) { .client-portal-directory-grid.client-portal-directory-grid--tiered { grid-template-columns: minmax(0, 1fr); } .client-portal-directory-grid--tiered > .client-portal-directory-card, .client-portal-directory-grid--tiered > .client-portal-directory-card--reference { grid-column: span 1; } }
@media (max-width: 760px) { .practitioner-education-row { grid-template-columns: minmax(0, 1fr); } .practitioner-education-row > label:nth-of-type(3) { grid-column: auto; max-width: none; } }
@media (max-width: 520px) { .client-portal-directory-card__marks { grid-column: 2; justify-items: start; max-width: 100%; } .client-portal-directory-card__education { width: 100%; } }

/* Compact invoice form controls and canonical status choice. */
.invoice-create-page .form-grid { align-items: start; }
.invoice-create-page .field { min-width: 0; }
.invoice-create-page .field > .input:not(.textarea) { box-sizing: border-box; height: var(--ui-compact-control-height); line-height: 1.2; min-height: var(--ui-compact-control-height); max-width: 100%; padding-block: 0; }
.invoice-create-page__relation-field { grid-column: span 2; }
.invoice-create-page__relation-field > select.input { width: 100%; }
.invoice-create-page__relation-field--session { grid-column: 1 / -1; }
.invoice-status-choice { border: 0; grid-column: 1 / -1; margin: 0; padding: 0; }
.invoice-status-choice > legend { color: var(--color-text); font-size: var(--font-size-label); font-weight: var(--font-weight-label); margin-bottom: var(--ui-space-2, 8px); padding: 0; }
.invoice-status-choice__options { display: flex; flex-wrap: wrap; gap: var(--ui-space-2, 8px); }
.invoice-status-choice__option { cursor: pointer; min-width: 0; }
.invoice-status-choice__option input { opacity: 0; pointer-events: none; position: absolute; }
.invoice-status-choice__option span { align-items: center; background: var(--color-surface-muted); border: 1px solid var(--color-border); border-radius: 999px; color: var(--color-text); display: inline-flex; font-size: var(--font-size-label); font-weight: var(--font-weight-label); min-height: 36px; padding: 6px 12px; transition: border-color var(--ui-motion-fast), background var(--ui-motion-fast), color var(--ui-motion-fast), box-shadow var(--ui-motion-fast); }
.invoice-status-choice__option--success span { border-color: var(--color-success); }
.invoice-status-choice__option--danger span { border-color: rgb(var(--color-danger-rgb) / .5); }
.invoice-status-choice__option--info span { border-color: rgb(var(--color-primary-rgb) / .45); }
.invoice-status-choice__option--pending span { border-color: rgb(var(--color-secondary-rgb) / .45); }
.invoice-status-choice__option input:checked + span { background: var(--color-primary); border-color: var(--color-primary); color: var(--color-surface); box-shadow: 0 4px 12px rgb(var(--color-primary-rgb) / .2); }
.invoice-status-choice__option--success input:checked + span { background: var(--color-success-strong); border-color: var(--color-success-strong); }
.invoice-status-choice__option--danger input:checked + span { background: var(--color-danger-strong); border-color: var(--color-danger-strong); }
.invoice-status-choice__option input:focus-visible + span { outline: 3px solid var(--color-focus); outline-offset: 2px; }

/* Responsive two-column client settings workspace. */
.client-account-settings-page { max-width: 1180px; }
.client-account-settings-grid { display: grid; gap: var(--ui-space-5, 24px); grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: 0; }
.client-account-settings-grid > .alert { grid-column: 1 / -1; }
.client-account-settings-card { border-top: 4px solid rgb(var(--color-primary-rgb) / .55); min-width: 0; }
.client-account-settings-card:nth-of-type(even) { background: rgb(var(--color-secondary-rgb) / .055); border-top-color: var(--color-secondary); }
.client-account-settings-card:nth-of-type(3n) { background: rgb(var(--color-highlight-rgb) / .075); border-top-color: var(--color-highlight); }
.client-account-settings-card--security { border-top-color: var(--color-identity); }
.language-settings-form { min-width: 0; }
.language-settings-form__field { max-width: 100%; }
@media (max-width: 880px) { .client-account-settings-grid { grid-template-columns: minmax(0, 1fr); } }

/* Practitioner profile directory and phone fields. */
.practitioner-directory-profile-grid { align-items: stretch; display: grid; gap: var(--ui-space-4, 16px); grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: 0; }
.practitioner-profile-fields > .practitioner-directory-panel { grid-column: 1 / -1; }
.practitioner-profile-card--details { grid-column: 1 / -1; }
.practitioner-newsletter-preference { width: min(100%, 700px); }
.practitioner-newsletter-preference form { display: grid; gap: var(--ui-space-3, 12px); justify-items: start; }
.practitioner-newsletter-preference .client-personal-agreements__choice { display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: start; gap: var(--ui-space-3, 12px); margin: 0; max-width: 100%; line-height: 1.5; cursor: pointer; }
.practitioner-newsletter-preference .client-personal-agreements__choice input[type="checkbox"] { width: 20px; height: 20px; min-height: 0; margin: 1px 0 0; accent-color: var(--color-primary); }
.practitioner-profile-grid > .practitioner-profile-media { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.practitioner-profile-grid > .practitioner-profile-media > .practitioner-profile-card { display: flex; flex-direction: column; min-width: 0; }
.practitioner-profile-grid > .practitioner-profile-media > .practitioner-profile-card > header { min-height: 61px; }
.practitioner-profile-grid > .practitioner-profile-media > .practitioner-profile-card > form[data-practitioner-photo-form],
.practitioner-profile-grid > .practitioner-profile-media > .practitioner-profile-card > form[data-practitioner-logo-form],
.practitioner-profile-grid > .practitioner-profile-media > .practitioner-profile-card > form[data-practitioner-directory-gallery-form] { align-content: start; align-items: center; display: grid; gap: 8px; justify-items: center; margin-top: auto; min-height: 92px; padding-top: 14px; text-align: center; width: 100%; }
.practitioner-profile-grid > .practitioner-profile-media > .practitioner-profile-card .practitioner-logo-upload { justify-self: center; margin: 0; max-width: 100%; }
.practitioner-profile-grid > .practitioner-profile-media > .practitioner-directory-gallery-card > form[data-practitioner-directory-gallery-form] { padding-top: 11px; }
.practitioner-directory-gallery-card [hidden] { display: none !important; }
.practitioner-directory-gallery__feedback { color: var(--color-primary); font-size: var(--font-size-help); margin: 8px 0 0; text-align: center; }
.practitioner-directory-gallery__feedback.is-error { color: var(--color-error, #a82d43); font-weight: var(--font-weight-label); }
.practitioner-onboarding-complete-page { display: grid; justify-items: center; min-height: 65vh; align-content: center; }
.practitioner-onboarding-complete { background: #fff; border-top: 5px solid var(--color-secondary); box-shadow: 0 16px 42px rgb(var(--color-primary-rgb) / .18), 0 4px 12px rgb(var(--color-text-rgb) / .10); display: grid; gap: var(--ui-space-4, 16px); justify-items: center; max-width: 660px; padding: clamp(28px, 5vw, 58px); text-align: center; width: 100%; }
.practitioner-onboarding-complete h1 { color: var(--color-secondary-deep); margin: 0; }
.practitioner-onboarding-complete p { color: var(--color-text-soft); margin: 0; max-width: 45ch; }
.dashboard-offer-success .app-confirm-modal__panel { box-sizing: border-box; max-height: calc(100dvh - 2rem); overflow: auto; position: relative; }
.dashboard-offer-success__close { position: absolute; right: var(--ui-space-4); top: var(--ui-space-4); }
.dashboard-offer-success h2 { color: var(--color-secondary-deep); margin: 0; }
.dashboard-offer-success h2 { font-size: var(--font-size-page-title-fluid); line-height: 1.15; }
.dashboard-offer-success #dashboard-offer-success-description { color: var(--color-primary-deep); font-size: var(--font-size-card-title); font-weight: var(--font-weight-label); line-height: 1.35; }
.practitioner-onboarding-journey__payment-icon { display: grid; place-items: center; width: 5rem; height: 5rem; border-radius: 50%; background: var(--color-surface); font-size: var(--font-size-page-title); line-height: 1; }
.practitioner-confetti-layer { position: fixed; inset: 0; z-index: 2147483647; width: 100vw; height: 100dvh; pointer-events: none; }
.practitioner-directory-profile-grid > * { min-width: 0; }
.practitioner-directory-description { align-content: start; }
.practitioner-directory-description textarea { font-weight: var(--font-weight-body, 400); }
.practitioner-directory-settings-page .practitioner-profile-media { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.practitioner-profile-page:not(.practitioner-directory-settings-page) .practitioner-profile-media { grid-template-columns: minmax(0, 1fr); }
.practitioner-profile-hero .btn { margin-top: var(--ui-space-3, 12px); }
.practitioner-directory-profile-grid .practitioner-education-editor { border: 1px solid var(--color-border); border-radius: var(--ui-radius-control, 12px); padding: var(--ui-space-4, 16px); }
.practitioner-directory-profile-grid .practitioner-education-row { grid-template-columns: minmax(0, 1fr); }
.practitioner-directory-profile-grid .practitioner-education-row > label:nth-of-type(3) { grid-column: auto; max-width: none; }
.practitioner-profile-fields > .aenima-phone-control { grid-column: 1 / -1; }
.practitioner-profile-fields > .aenima-phone-control.practitioner-profile-onboarding-target { padding: var(--ui-space-3, 12px); }
.practitioner-profile-fields > .aenima-phone-control .questionnaire-phone-field { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); width: min(100%, 520px); }
.practitioner-profile-phone .questionnaire-phone-field { align-items: end; }
.practitioner-profile-phone .questionnaire-phone-field > label { align-content: end; }
.practitioner-profile-phone .questionnaire-phone-field > label > span { min-height: 1.4em; }
.practitioner-profile-phone .questionnaire-phone-field select,.practitioner-profile-phone .questionnaire-phone-field input { box-sizing: border-box; height: 44px; min-height: 44px; width: 100%; }
.appointment-form__settings-link { display: block; margin-top: var(--ui-space-2, 8px); }
.appointment-form__settings-link a { color: var(--color-secondary-strong); display: inline-flex; font-weight: var(--font-weight-label); gap: var(--ui-space-1, 4px); text-decoration: none; }
.appointment-form__settings-link a:hover, .appointment-form__settings-link a:focus-visible { color: var(--color-secondary); outline: 0; }
.appointment-form__settings-link a span { flex: 0 0 auto; }
@media (max-width: 760px) { .invoice-create-page__relation-field, .invoice-create-page__relation-field--session { grid-column: 1 / -1; } }
@media (max-width: 980px) { .practitioner-directory-profile-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 900px) { .practitioner-profile-grid > .practitioner-profile-media { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 900px) { .practitioner-directory-settings-page .practitioner-profile-media { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 620px) { .practitioner-profile-fields > .aenima-phone-control .questionnaire-phone-field { grid-template-columns: minmax(0, 1fr); } }
.article-workspace{display:grid;gap:var(--ui-space-5,24px);container-name:article-workspace;container-type:inline-size}
.article-workspace .hero-card{display:flex;justify-content:space-between;align-items:center;gap:var(--ui-space-4,16px);padding-block:var(--ui-space-5,20px)}
.article-workspace .hero-card h1{margin-block:var(--ui-space-2,8px) 0}
.article-workspace .hero-card p{margin-block:var(--ui-space-2,8px) 0}
.article-workspace__hero-trailing{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--ui-space-3,12px);min-width:0}
.article-workspace__hero-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--ui-space-2,8px)}
.article-workspace__hero-actions form{margin:0}
.article-workspace__hero-actions .btn{width:auto;max-width:100%;white-space:nowrap}
.article-workspace__list{display:grid;gap:var(--ui-space-3,12px)}
.article-workspace__import{display:grid;gap:var(--ui-space-4,16px);width:min(100%,760px);min-width:0}
.article-workspace__import p{margin:0;color:var(--color-text-soft)}
.article-workspace__import-form{display:grid;justify-items:start;gap:var(--ui-space-4,16px);min-width:0}
.article-workspace__import-form>label:first-of-type{display:grid;gap:var(--ui-space-2,8px);width:min(100%,650px);min-width:0;font-weight:var(--font-weight-label,600)}
.article-workspace__import-form .input{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
.article-workspace__import-rights{display:flex;align-items:flex-start;gap:var(--ui-space-2,8px);max-width:100%;font-weight:var(--font-weight-body,400)}
.article-workspace__import-rights input{margin-top:var(--ui-space-1,4px);flex:0 0 auto}
.article-workspace__import-form .btn{width:auto;max-width:100%}
.article-workspace__row{display:flex;justify-content:space-between;align-items:center;gap:var(--ui-space-4,16px);padding:var(--ui-space-4,16px) 0;border-top:1px solid var(--ui-border-control)}
.article-workspace__row h3{margin:0 0 var(--ui-space-2,8px);font-size:var(--font-size-card-title)}
.article-workspace__row small{display:block;margin-top:var(--ui-space-2,8px)}
.article-workspace__row-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-space-2,8px);flex-wrap:wrap;flex-shrink:0}
.article-workspace__row-actions form{margin:0}
.article-workspace__row-actions .btn{width:auto;max-width:100%}
.article-workspace__publications{display:grid;gap:var(--ui-space-4,16px);min-width:0}
.article-workspace__publications [data-article-list-panel]{display:grid;gap:var(--ui-space-4,16px);min-width:0}
.article-workspace__publication-count{align-self:center;background:rgb(var(--color-secondary-rgb)/.1);border:1px solid rgb(var(--color-secondary-rgb)/.3);border-radius:999px;color:var(--color-secondary-strong);font-size:var(--font-size-label);font-weight:var(--font-weight-label,700);padding:6px 12px;white-space:nowrap}
.article-workspace__filters{align-items:end;background:rgb(var(--color-primary-rgb)/.045);border-color:var(--ui-border-control);border-radius:var(--ui-radius-card,16px);grid-template-columns:minmax(180px,1.5fr) repeat(3,minmax(130px,1fr)) auto;margin:0;padding:var(--ui-space-4,16px)}
.article-workspace__filters .ui-filter-field{min-width:0}
.article-workspace__filters .input{width:100%;min-width:0}
.article-workspace__filters .ui-filter-actions{gap:var(--ui-space-2,8px);justify-content:flex-end}
.article-workspace__filters .ui-filter-actions .btn{white-space:nowrap}
.article-workspace__empty{align-items:center;background:rgb(var(--color-primary-rgb)/.035);border:1px dashed var(--ui-border-control);border-radius:var(--ui-radius-card,16px);display:flex;flex-direction:column;gap:var(--ui-space-3,12px);justify-content:center;min-height:150px;padding:var(--ui-space-5,20px);text-align:center}
.article-workspace__empty>span{align-items:center;background:rgb(var(--color-secondary-rgb)/.12);border-radius:50%;color:var(--color-secondary-strong);display:inline-flex;font-size:var(--font-size-section-title);height:42px;justify-content:center;width:42px}
.article-workspace__empty p{color:var(--color-text-soft);margin:0}
.article-workspace__publication-main{display:grid;gap:var(--ui-space-2,8px);min-width:0}
.article-workspace__publication-title{align-items:center;display:flex;flex-wrap:wrap;gap:var(--ui-space-2,8px);min-width:0}
.article-workspace__publication-title h3{margin:0;overflow-wrap:anywhere}
.article-workspace__publication-meta{align-items:center;color:var(--color-text-soft);display:flex;flex-wrap:wrap;font-size:var(--font-size-help);gap:var(--ui-space-2,8px) var(--ui-space-4,16px)}
.article-workspace__publication-meta>span+span{border-left:1px solid var(--ui-border-control);padding-left:var(--ui-space-4,16px)}
.article-workspace__status{background:rgb(var(--color-primary-rgb)/.09);border:1px solid rgb(var(--color-primary-rgb)/.18);border-radius:999px;color:var(--color-primary-strong);font-size:var(--font-size-help);font-weight:var(--font-weight-label,700);line-height:1.2;padding:4px 9px}
.article-workspace__status--approved{background:var(--color-success-soft);border-color:var(--color-success);color:var(--color-success-strong)}
.article-workspace__status--submitted,.article-workspace__status--ready{background:rgb(var(--color-highlight-rgb)/.14);border-color:rgb(var(--color-highlight-rgb)/.3);color:var(--color-highlight-strong)}
.article-workspace__status--rejected,.article-workspace__status--changes_requested,.article-workspace__status--suspended{background:rgb(var(--color-danger-rgb)/.1);border-color:rgb(var(--color-danger-rgb)/.25);color:var(--color-danger-strong)}
.article-workspace__row{border:1px solid var(--ui-border-control);border-left:4px solid rgb(var(--color-primary-rgb)/.55);border-radius:var(--ui-radius-card,16px);padding:var(--ui-space-4,16px);transition:border-color .16s ease,box-shadow .16s ease}
.article-workspace__row:nth-child(even){border-left-color:rgb(var(--color-secondary-rgb)/.62)}
.article-workspace__row:hover{border-color:rgb(var(--color-secondary-rgb)/.48);box-shadow:0 8px 20px rgb(var(--color-primary-rgb)/.07)}
.article-workspace__row small{color:var(--color-text-soft)}
.article-workspace__publications .ui-pagination{margin-top:0}
@container (max-width:1050px){.article-workspace__filters{grid-template-columns:repeat(2,minmax(0,1fr))}.article-workspace__filters .ui-filter-actions{grid-column:1/-1;justify-content:flex-start}}
@container (max-width:620px){.article-workspace__filters{grid-template-columns:minmax(0,1fr)}.article-workspace__filters .ui-filter-actions{grid-column:auto}.article-workspace__row{align-items:flex-start;flex-direction:column}.article-workspace__row-actions{justify-content:flex-start;width:100%}.article-workspace__publication-meta>span+span{border-left:0;padding-left:0}}
.article-workspace__layout{align-items:start;display:grid;gap:var(--ui-space-5,24px);grid-template-columns:minmax(0,1fr) minmax(280px,330px);min-width:0}
.article-workspace__publications{container-name:article-library;container-type:inline-size;align-content:start;gap:var(--ui-space-5,20px)}
.article-workspace__publications [data-article-list-panel]{gap:var(--ui-space-5,20px)}
.article-workspace__publications .article-workspace__section-heading{align-items:end;border:0;padding:0}
.article-workspace__publications .article-workspace__section-heading h2{font-size:var(--font-size-section-title);font-weight:var(--font-weight-regular,400);line-height:var(--line-height-title)}
.article-workspace__publications .article-workspace__section-heading h2 strong{color:var(--color-secondary-strong)}
.article-workspace__filters{background:var(--color-surface-muted);border-radius:var(--ui-radius-card,16px);grid-template-columns:minmax(170px,1.35fr) repeat(2,minmax(110px,.8fr)) auto;gap:var(--ui-space-3,12px);padding:var(--ui-space-4,16px)}
.article-workspace__filter-search{grid-column:span 1}
.article-workspace__filters .ui-filter-field .input{font-size:var(--font-size-label)}
.article-workspace__filters .ui-filter-actions{gap:var(--ui-space-2,8px)}
.article-workspace__filters .ui-filter-actions .btn{padding-inline:var(--ui-space-3,12px)}
.article-workspace__list{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ui-space-4,16px)}
.article-workspace__row{align-content:start;align-items:start;background:var(--color-surface);border:1px solid var(--ui-border-control);border-top:4px solid var(--color-secondary);border-radius:var(--ui-radius-card,16px);box-shadow:0 5px 14px rgb(var(--color-primary-rgb)/.045);display:grid;column-gap:var(--ui-space-3,12px);grid-row:span 4;grid-template-columns:72px minmax(0,1fr);grid-template-rows:subgrid;min-width:0;padding:var(--ui-space-4,16px);transition:border-color .16s ease,box-shadow .16s ease}
.article-workspace__row:nth-child(even){border-left:1px solid var(--ui-border-control);border-top-color:var(--color-identity)}
.article-workspace__row:hover{border-color:rgb(var(--color-secondary-rgb)/.45);border-top-color:var(--color-secondary-strong);box-shadow:0 9px 22px rgb(var(--color-primary-rgb)/.09)}
.article-workspace__row-content,.article-workspace__publication-main{display:contents}
.article-workspace__thumbnail{box-sizing:border-box;display:block;width:72px;height:72px;aspect-ratio:1;object-fit:cover;object-position:center;border:1px solid var(--ui-border-control);border-radius:var(--ui-radius-control,10px);background:var(--color-surface-muted)}
.article-workspace__row .article-workspace__thumbnail{grid-column:1;grid-row:1 / 4;align-self:start}
.article-workspace__thumbnail--empty{display:grid;place-items:center;color:var(--color-secondary-strong);font-size:var(--font-size-page-title-fluid)}
.article-workspace__row .article-workspace__publication-title,.article-workspace__row .article-workspace__publication-badges,.article-workspace__row .article-workspace__publication-details{grid-column:2;min-width:0}
.article-workspace__row .article-workspace__publication-title{grid-row:1}
.article-workspace__row .article-workspace__publication-badges{grid-row:2;align-self:start}
.article-workspace__row .article-workspace__publication-details{grid-row:3;align-self:start}
.article-workspace__publication-details small{margin-top:var(--ui-space-2,8px)}
.article-workspace__publication-title{align-items:flex-start;flex-wrap:nowrap;gap:var(--ui-space-2,8px)}
.article-workspace__publication-title h3{font-size:var(--font-size-card-title);font-weight:var(--font-weight-title,700);line-height:var(--line-height-title);margin:0}
.article-workspace__publication-mark,.article-workspace__rail-mark{align-items:center;background:var(--color-secondary-soft);border:1px solid rgb(var(--color-secondary-rgb)/.26);border-radius:var(--ui-radius-control,10px);color:var(--color-secondary-strong);display:inline-flex;flex:0 0 auto;font-size:var(--font-size-body);height:30px;justify-content:center;width:30px}
.article-workspace__publication-badges{align-items:center;display:flex;flex-wrap:wrap;gap:var(--ui-space-2,8px)}
.article-workspace__publication-meta{border-top:1px solid var(--ui-border-control);display:grid;gap:var(--ui-space-1,4px);grid-template-columns:minmax(0,1fr);padding-top:var(--ui-space-3,12px)}
.article-workspace__publication-meta>span+span{border:0;padding:0}
.article-workspace__publication-meta>span:first-child{color:var(--color-primary-strong);font-weight:var(--font-weight-label,600)}
.article-workspace__row small{font-size:var(--font-size-help);line-height:var(--line-height-body)}
.article-workspace__row-actions{display:grid;grid-column:1 / -1;grid-row:4;grid-template-columns:minmax(0,1fr) minmax(0,1fr);justify-content:stretch;width:100%}
.article-workspace__row-actions form{display:flex;min-width:0}
.article-workspace__row-actions .btn{box-sizing:border-box;justify-content:center;min-width:0;width:100%;white-space:normal}
.article-workspace__withdraw{background:var(--color-surface);box-shadow:none;color:var(--color-danger-strong)}
.article-workspace__withdraw:hover{background:var(--color-danger-soft);box-shadow:none;color:var(--color-danger-strong)}
.article-workspace__rail{align-content:start;display:grid;gap:var(--ui-space-4,16px);min-width:0;position:sticky;top:var(--ui-space-4,16px)}
.article-workspace__import{background:var(--color-current-day-soft);border-color:rgb(var(--color-secondary-rgb)/.3);border-top:4px solid var(--color-secondary);gap:var(--ui-space-3,12px);padding:var(--ui-space-5,20px);width:auto}
.article-workspace__import .article-workspace__eyebrow{display:block}
.article-workspace__import h2{font-size:var(--font-size-section-title);font-weight:var(--font-weight-regular,400);line-height:var(--line-height-title);margin:0}
.article-workspace__import h2 strong{color:var(--color-secondary-strong);font-weight:var(--font-weight-title,700)}
.article-workspace__import p{line-height:var(--line-height-body)}
.article-workspace__import-form{gap:var(--ui-space-3,12px);justify-items:stretch}
.article-workspace__import-form>label:first-of-type{gap:var(--ui-space-2,8px);width:100%}
.article-workspace__import-form .input{box-sizing:border-box;width:100%}
.article-workspace__import-form .btn{justify-self:start}
.article-workspace__import--premium{background:var(--color-surface-muted)}
.article-workspace__premium-note{background:var(--color-surface);border:1px solid var(--ui-border-control);border-left:3px solid var(--color-highlight);border-radius:var(--ui-radius-control,10px);color:var(--color-primary-strong);font-size:var(--font-size-help);font-weight:var(--font-weight-label,600);line-height:var(--line-height-body);padding:var(--ui-space-3,12px)}
@container article-workspace (max-width:980px){.article-workspace__layout{grid-template-columns:minmax(0,1fr)}.article-workspace__rail{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.article-workspace__import{align-content:start}}
@container article-library (max-width:1050px){.article-workspace__filters{grid-template-columns:repeat(2,minmax(0,1fr))}.article-workspace__filter-search{grid-column:1/-1}.article-workspace__filters .ui-filter-actions{grid-column:1/-1;justify-content:flex-start}}
@container article-library (max-width:700px){.article-workspace__list{grid-template-columns:minmax(0,1fr)}.article-workspace__row{min-height:0}}
@container article-workspace (max-width:600px){.article-workspace__rail{grid-template-columns:minmax(0,1fr)}}
@container article-library (max-width:520px){.article-workspace__filters{grid-template-columns:minmax(0,1fr)}.article-workspace__filter-search,.article-workspace__filters .ui-filter-actions{grid-column:auto}.article-workspace__publication-count{font-size:var(--font-size-help);padding:5px 9px}.article-workspace__row-actions{grid-template-columns:minmax(0,1fr)}}
.article-workspace__editor,.article-workspace__cover{display:grid;gap:var(--ui-space-5,20px);min-width:0}
.article-workspace__section-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-space-4,16px);padding-bottom:var(--ui-space-4,16px);border-bottom:1px solid var(--ui-border-control)}
.article-workspace__section-heading h2{margin:var(--ui-space-1,4px) 0 0;font-size:var(--font-size-section-title);font-weight:var(--font-weight-body,400)}
.article-workspace__section-heading h2 strong{color:var(--color-secondary);font-weight:var(--font-weight-title,700)}
.article-workspace__eyebrow{color:var(--color-secondary);font-size:var(--font-size-label);font-weight:var(--font-weight-label,600);letter-spacing:.04em;text-transform:uppercase}
.article-workspace__form{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,320px);column-gap:var(--ui-space-6,24px);row-gap:var(--ui-space-5,20px);align-items:start;min-width:0}
.article-workspace__manuscript{display:grid;gap:var(--ui-space-5,20px);min-width:0}
.article-workspace__manuscript label,.article-workspace__details label,.article-workspace__cover label{display:grid;gap:var(--ui-space-2,8px);min-width:0;font-weight:var(--font-weight-label,600)}
.article-workspace__manuscript .input,.article-workspace__details .input,.article-workspace__cover .input{max-width:100%;box-sizing:border-box}
.article-workspace__title-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:var(--ui-space-4,16px);min-width:0}
.article-workspace__title-color{display:grid;gap:var(--ui-space-2,8px);min-width:0}
.article-workspace__title-color>label{font-weight:var(--font-weight-label,600)}
.article-workspace__title-color-actions{display:flex;align-items:center;gap:var(--ui-space-2,8px);min-width:0}
.article-workspace__title-color-actions .btn{width:auto;max-width:100%}
.article-workspace__title-color-reset[aria-pressed=true]{background:var(--color-surface-muted)}
.article-workspace__title .input{width:100%;font-size:var(--font-size-section-title);font-weight:var(--font-weight-label,600)}
.article-workspace__excerpt textarea{width:100%;resize:vertical}
.article-workspace__body{display:grid;gap:var(--ui-space-2,8px);min-width:0;padding-top:var(--ui-space-4,16px);border-top:1px solid var(--ui-border-control)}
.article-workspace__details{display:grid;justify-items:start;align-content:start;gap:var(--ui-space-4,16px);min-width:0;padding:var(--ui-space-5,20px);border:1px solid var(--ui-border-control);border-radius:var(--ui-radius-card,16px);background:rgb(var(--color-primary-rgb) / .04)}
.article-workspace__details h3{margin:0;font-size:var(--font-size-card-title)}
.article-workspace__details label{max-width:100%}
.article-workspace__details select{width:auto;max-width:100%}
.article-workspace__source{width:100%;padding-top:var(--ui-space-4,16px);border-top:1px solid var(--ui-border-control)}
.article-workspace__source .input{width:100%}
.article-workspace__rich-editor{min-width:0}
.article-workspace__rich-editor .zoodja-rich-text__content{min-height:320px;padding:var(--ui-space-5,20px);font-size:var(--font-size-body)}
.article-workspace__rich-editor .zoodja-rich-text__toolbar{gap:var(--ui-space-1,4px);padding:var(--ui-space-3,12px)}
.article-workspace__image-panel{display:grid;gap:var(--ui-space-4,16px);padding:var(--ui-space-4,16px);border:1px solid var(--ui-border-control);border-radius:var(--ui-radius-card,16px);background:rgb(var(--color-primary-rgb)/.04);min-width:0}
.article-workspace__image-panel[hidden]{display:none}
.article-workspace__image-panel-heading,.article-workspace__image-panel-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--ui-space-3,12px)}
.article-workspace__image-panel-heading strong{font-size:var(--font-size-card-title)}
.article-workspace__image-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ui-space-3,12px);min-width:0}
.article-workspace__image-fields label{display:grid;gap:var(--ui-space-2,8px);min-width:0}
.article-workspace__image-fields label:first-child{grid-column:1/-1}
.article-workspace__image-fields .input{box-sizing:border-box;max-width:100%;width:min(100%,36ch)}
.article-workspace__image-panel-actions{justify-content:flex-start}
.article-workspace__image-panel-actions [role=status]{color:var(--color-text-soft);font-size:var(--font-size-help)}
.article-workspace__save-status{color:var(--color-text-soft);font-size:var(--font-size-help);margin:0}
.article-body-image{box-sizing:border-box;display:grid;gap:var(--ui-space-2,8px);justify-items:center;margin:var(--ui-space-5,20px) auto;max-width:min(100%,620px);min-width:0}
.article-body-image img{display:block;height:auto;max-height:520px;max-width:100%;object-fit:contain;width:auto;border-radius:var(--ui-radius-card,16px)}
.article-body-image figcaption{color:var(--color-text-soft);font-size:var(--font-size-help);line-height:var(--line-height-body);text-align:center}
.zoodja-rich-text__content .article-body-image,.report-rich-content .article-body-image,.client-article-page__content .article-body-image{width:60%;max-width:100%}
.zoodja-rich-text__content .article-body-image--w30,.report-rich-content .article-body-image--w30,.client-article-page__content .article-body-image--w30{width:30%}
.zoodja-rich-text__content .article-body-image--w45,.report-rich-content .article-body-image--w45,.client-article-page__content .article-body-image--w45{width:45%}
.zoodja-rich-text__content .article-body-image--w75,.report-rich-content .article-body-image--w75,.client-article-page__content .article-body-image--w75{width:75%}
.zoodja-rich-text__content .article-body-image--w100,.report-rich-content .article-body-image--w100,.client-article-page__content .article-body-image--w100{width:100%}
.zoodja-rich-text__content .article-body-image--left,.report-rich-content .article-body-image--left,.client-article-page__content .article-body-image--left{float:left;margin:0 var(--ui-space-5,20px) var(--ui-space-3,12px) 0}
.zoodja-rich-text__content .article-body-image--right,.report-rich-content .article-body-image--right,.client-article-page__content .article-body-image--right{float:right;margin:0 0 var(--ui-space-3,12px) var(--ui-space-5,20px)}
.zoodja-rich-text__content .article-body-image img,.report-rich-content .article-body-image img,.client-article-page__content .article-body-image img{width:100%;max-height:420px;object-fit:contain}
.zoodja-rich-text__content .article-body-image{position:relative}
.zoodja-rich-text__content [data-image-resize-handle]{display:none}
.admin-communication-newsletter-section .zoodja-rich-text__content [data-image-resize-handle]{background:var(--color-surface);border:2px solid var(--color-primary);border-radius:5px;bottom:2px;box-shadow:0 2px 7px rgb(var(--color-primary-rgb)/.25);cursor:ew-resize;display:block;height:18px;position:absolute;right:2px;width:18px;z-index:2}
.admin-communication-preview__email-section [data-image-resize-handle]{display:none!important}
@media(max-width:640px){.zoodja-rich-text__content .article-body-image--left,.zoodja-rich-text__content .article-body-image--right,.report-rich-content .article-body-image--left,.report-rich-content .article-body-image--right,.client-article-page__content .article-body-image--left,.client-article-page__content .article-body-image--right{float:none;margin:var(--ui-space-4,16px) auto;width:min(100%,360px)}}
.article-workspace__image-fields .ui-file-picker{width:min(100%,420px)}
@media(max-width:640px){.article-workspace__image-fields .ui-file-picker,.article-workspace__cover-form>.ui-file-picker{grid-template-columns:minmax(0,1fr);grid-template-areas:"label" "action" "name";justify-items:start}}
.article-workspace__actions{grid-column:1/-1;display:flex;justify-content:flex-start;padding-top:var(--ui-space-4,16px);border-top:1px solid var(--ui-border-control)}
.article-workspace__cover img{max-width:min(100%,420px);max-height:260px;object-fit:cover;border-radius:var(--ui-radius-card,16px)}
.article-workspace__cover-form{display:grid;justify-items:start;gap:var(--ui-space-4,16px);min-width:0}
.article-workspace__cover-form>.ui-file-picker{width:min(100%,420px)}
.article-workspace__cover-form>label:not(.ui-file-picker){width:min(100%,420px)}
.article-workspace__cover-form .input{box-sizing:border-box;max-width:100%;width:100%}
.client-article-page__body{display:grid;gap:var(--ui-space-5,20px);width:min(100%,800px);margin-inline:auto;padding:var(--ui-space-6,24px);box-sizing:border-box}
.client-article-page__body>h1{margin:0;font-size:var(--font-size-page-title);line-height:var(--line-height-title)}
.client-article-page__body>.badge,.client-article-page__body>p{justify-self:start;margin:0}
.client-article-page__image{display:block;width:100%;height:auto;aspect-ratio:16/9;max-height:430px;object-fit:cover;border-radius:var(--ui-radius-card,16px)}
.client-article-page__excerpt{padding-bottom:var(--ui-space-5,20px);border-bottom:1px solid var(--ui-border-control);font-weight:var(--font-weight-label,600);font-size:var(--font-size-body);line-height:var(--line-height-body)}
.client-article-page__content{line-height:1.65;overflow-wrap:anywhere}
.client-article-page__content>:first-child{margin-top:0}
.client-article-page__content>:last-child{margin-bottom:0}
.client-article-page__content p{margin:0 0 var(--ui-space-4,16px)}
.client-article-page__content h2,.client-article-page__content h3{margin:var(--ui-space-6,24px) 0 var(--ui-space-3,12px);line-height:var(--line-height-title)}
.client-article-page__content h2{font-size:var(--font-size-section-title)}
.client-article-page__content h3{font-size:var(--font-size-card-title)}
.client-article-page__actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--ui-space-3,12px);margin-top:var(--ui-space-5,24px)}
.client-article-page__share-button{align-items:center;display:inline-flex;flex:0 0 auto;gap:var(--ui-space-2,8px);justify-content:center;min-height:42px;max-width:100%;border-radius:999px;color:#fff;font-weight:var(--font-weight-label,600);text-decoration:none;white-space:normal}
.client-article-page__share-button img,.client-article-page__share-button svg{display:block;flex:0 0 auto;width:20px;height:20px}
.client-article-page__share-button img{filter:brightness(0) invert(1)}
.client-article-page__share-button svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.client-article-page__share-button--facebook{background:#1877f2;border-color:#1877f2}
.client-article-page__share-button--facebook:hover,.client-article-page__share-button--facebook:focus-visible{background:#0e5fca;border-color:#0e5fca;color:#fff}
.client-article-page__share-button--instagram{background:#a52a69;border-color:#a52a69}
.client-article-page__share-button--instagram:hover,.client-article-page__share-button--instagram:focus-visible{background:#862154;border-color:#862154;color:#fff}
.client-article-page__share-button--other{background:#315f60;border-color:#315f60}
.client-article-page__share-button--other:hover,.client-article-page__share-button--other:focus-visible{background:#244b4c;border-color:#244b4c;color:#fff}
.client-article-page__share-button:focus-visible{outline:3px solid #f2c953;outline-offset:2px}
.client-article-page__share-button:disabled{cursor:not-allowed;opacity:.65}
.client-article-page__share-notice{flex-basis:100%;color:var(--color-text-soft);font-size:var(--font-size-help);line-height:var(--line-height-body)}
.client-article-page__share-status{flex-basis:100%;font-size:var(--font-size-help);color:var(--color-text-soft)}
.client-article-page__instagram-open{color:var(--color-primary);font-size:var(--font-size-control);font-weight:var(--font-weight-label,600);text-decoration:none}
.client-article-page__instagram-open:hover,.client-article-page__instagram-open:focus-visible{color:var(--color-secondary-deep);text-decoration:none}
.client-article-page__instagram-open[hidden]{display:none}
.client-article-page__instagram-copy[hidden],.client-article-page__instagram-caption[hidden]{display:none}
.client-article-page__instagram-copy{min-height:42px}
.client-article-page__instagram-caption{box-sizing:border-box;flex-basis:100%;margin:0;padding:var(--ui-space-3,12px);background:var(--color-surface-muted);border:1px solid var(--ui-border-control);border-radius:var(--ui-radius-card,16px);color:var(--color-text);font-size:var(--font-size-body);line-height:var(--line-height-body);overflow-wrap:anywhere;white-space:pre-wrap}
.client-article-page__source{margin:var(--ui-space-6,24px) 0 0;padding-top:var(--ui-space-4,16px);border-top:1px solid var(--ui-border-control);color:var(--color-text-soft);font-size:var(--font-size-help)}
.article-preview-empty{margin:0;color:var(--color-text-soft);font-size:var(--font-size-body)}
@container (max-width:820px){.article-workspace__form{grid-template-columns:minmax(0,1fr)}.article-workspace__actions{grid-column:1}.article-workspace__details{grid-row:2}}
@media(max-width:640px){.article-workspace .hero-card,.article-workspace__row{align-items:flex-start;flex-direction:column}.article-workspace__title-row{grid-template-columns:minmax(0,1fr)}.article-workspace__rich-editor .zoodja-rich-text__content{min-height:220px}.article-workspace__image-fields{grid-template-columns:minmax(0,1fr)}.article-workspace__image-fields label:first-child{grid-column:1}}
@media(max-width:640px){.article-workspace__hero-trailing,.article-workspace__hero-actions{justify-content:flex-start}}
.public-article-page{padding:var(--ui-space-6,24px)}
.public-article-page__inner{width:min(100%,1000px);margin-inline:auto;display:grid;gap:var(--ui-space-5,20px)}
.public-article-page__inner>.btn{justify-self:start}
.public-article-page .client-article-page__body{padding:var(--ui-space-6,24px)}
.public-article-page .client-article-page__actions{display:flex;flex-wrap:wrap;gap:var(--ui-space-3,12px)}
.client-article-page__content .article-text-align--center{text-align:center}
.client-article-page__content .article-text-align--right{text-align:right}
.client-article-page__content .article-text-align--justify{text-align:justify}
.client-article-page__content table{max-width:100%;display:block;overflow-x:auto;border-collapse:collapse}
.client-article-page__content th,.client-article-page__content td{border:1px solid var(--ui-border-control);padding:var(--ui-space-2,8px)}
.practitioner-home-service-area__radius-field{display:grid;gap:7px;min-width:0}
.practitioner-home-service-area__radius-field>label{color:#5c525f;font-size:var(--font-size-label,.74rem);font-weight:var(--font-weight-label,850)}
.practitioner-home-service-area__radius-value{align-items:center;background:#f0e9f2;border:1px solid #c8b8ce;border-radius:999px;color:#513d59;display:flex;gap:3px;padding:3px 8px;white-space:nowrap}
.practitioner-home-service-area__radius-value input{background:transparent;border:0;box-shadow:none;color:inherit;font:inherit;font-weight:var(--font-weight-label,900);min-height:30px;padding:0;text-align:right;width:4.3ch}
.practitioner-home-service-area__radius-value input:focus{outline:none;box-shadow:none}
.practitioner-home-service-area__radius-value:focus-within{border-color:var(--color-secondary-deep);box-shadow:0 0 0 2px var(--color-focus)}
.practitioner-home-service-area__radius-value input[aria-invalid="true"]{color:var(--color-danger-strong)}
.practitioner-home-service-area__radius-value input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.practitioner-home-service-area__radius-value input[type=number]{-moz-appearance:textfield;appearance:textfield}
.practitioner-home-service-area__map-status{color:var(--color-text-soft);display:block;font-size:var(--font-size-help);line-height:var(--line-height-body)}
.practitioner-home-service-area__map .availability-map__canvas{cursor:crosshair}
.practitioner-home-service-area__map .availability-map__canvas.is-map-dragging{cursor:grabbing}
.practitioner-home-service-area__map .availability-map__canvas:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}
.practitioner-home-service-area__map .availability-map__canvas[aria-invalid="true"]{outline:2px solid var(--color-danger-strong)}
.practitioner-home-service-area__map .availability-map__radius.is-preview{background:rgb(219 112 166/.13);border-style:dashed}
.practitioner-settings-save-status--error{color:var(--color-danger-strong)}
.settings-autosave__field-error{display:block;color:var(--color-danger-strong);font-size:var(--font-size-help);font-weight:var(--font-weight-label,700);line-height:var(--line-height-body);margin-top:var(--ui-space-2,8px)}
[data-settings-autosave] [data-settings-error][aria-invalid="true"]{border-color:var(--color-danger-strong);box-shadow:0 0 0 2px rgb(var(--color-danger-rgb)/.12)}
.practitioner-home-service-area__map { position: relative; }
.availability-map__attribution {
  position: absolute;
  right: 12px;
  bottom: 12px;
  z-index: 4;
  background: var(--color-surface);
  color: var(--color-text);
  padding: 2px 5px;
  border-radius: 3px;
  font-size: var(--font-size-help, .7rem);
}
.availability-map__attribution:focus-visible { outline: 2px solid var(--color-secondary); outline-offset: 2px; }
.practitioner-home-address__suggestions[hidden] { display: none; }
.practitioner-opening-hours-card [data-opening-hours-missing-error] {
  grid-column: 1 / -1;
  min-width: 0;
  max-width: 100%;
}
.additional-fees { display: grid; gap: var(--ui-space-4, 16px); }
.additional-fees__group { display: grid; gap: var(--ui-space-3, 12px); min-width: 0; }
.additional-fees__group + .additional-fees__group { border-top: 1px solid var(--color-border); padding-top: var(--ui-space-4, 16px); }
.additional-fees__group h3, .additional-fees h3 { margin: 0; }
.additional-fees__group > p { margin: 0; color: var(--color-text-soft); }
.additional-fees__list { display: grid; gap: var(--ui-space-2, 8px); list-style: none; margin: 0; padding: 0; }
.additional-fees__list li { align-items: center; display: flex; flex-wrap: wrap; gap: var(--ui-space-3, 12px); justify-content: space-between; min-width: 0; }
.additional-fees__list li > span { display: grid; gap: 2px; min-width: 0; overflow-wrap: anywhere; }
.additional-fees__list small { color: var(--color-text-soft); }
.additional-fees__form { align-items: end; display: flex; flex-wrap: wrap; gap: var(--ui-space-3, 12px); max-width: 100%; }
.additional-fees__form .field { margin: 0; min-width: 0; }
.additional-fees__form .input { box-sizing: border-box; max-width: 100%; }
.additional-fees__description { flex: 1 1 16rem; }
.additional-fees__description .input { width: 100%; }
.additional-fees__session { flex: 0 1 12rem; }
.additional-fees__session .input { min-width: 0; width: auto; max-width: 100%; }
.additional-fees__number { flex: 0 1 9rem; }
.additional-fees__number .input { width: 100%; }
.additional-fees__form > .btn { flex: 0 0 auto; }
.additional-fees__remove { margin-top: var(--ui-space-2, 8px); }
.additional-fees__edit { flex: 1 1 100%; order: 1; }
.additional-fees__edit summary { cursor: pointer; display: inline-flex; list-style: none; }
.additional-fees__edit summary::-webkit-details-marker { display: none; }
.additional-fees__edit .additional-fees__form { margin-top: var(--ui-space-3, 12px); }
@media (max-width: 600px) {
  .additional-fees__description { flex-basis: 100%; }
  .additional-fees__number { flex: 1 1 8rem; }
  .additional-fees__form > .btn { flex-basis: 100%; }
}

/* Legacy practitioner detail and editor headers use the shared hero palette. */
.app-content:not(.app-content--settings) > .page > :is(.hero-card, .page-header.aenima-page-hero, .image-annotation-header):first-child:not(.practitioner-page-hero):not(.hero-card--dashboard) {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 14rem;
  padding: clamp(1.9rem, 4vw, 3.1rem) clamp(2rem, 5vw, 4.5rem);
  border: 0;
  background: var(--color-hero-night);
  color: var(--color-surface);
  box-shadow: 0 18px 42px rgb(var(--color-primary-rgb) / .18);
}
.app-content:not(.app-content--settings) > .page > :is(.hero-card, .page-header.aenima-page-hero, .image-annotation-header):first-child:not(.practitioner-page-hero):not(.hero-card--dashboard)::before {
  content: "";
  display: block;
  position: absolute;
  z-index: 0;
  pointer-events: none;
  top: -45%;
  right: -26%;
  bottom: auto;
  left: -20%;
  width: auto;
  height: 183%;
  border: 0;
  background: var(--color-secondary-muted);
  opacity: .1;
  mask: url("/assets/images/client-home-cat-paw-trail.png") center / auto 100% no-repeat;
  -webkit-mask: url("/assets/images/client-home-cat-paw-trail.png") center / auto 100% no-repeat;
}
.app-content:not(.app-content--settings) > .page > :is(.hero-card, .page-header.aenima-page-hero, .image-annotation-header):first-child:not(.practitioner-page-hero):not(.hero-card--dashboard) > :not(.animal-detail-hero__watermark) {
  position: relative;
  z-index: 1;
}
.app-content:not(.app-content--settings) > .page > :is(.hero-card, .page-header.aenima-page-hero, .image-annotation-header):first-child:not(.practitioner-page-hero):not(.hero-card--dashboard) .badge {
  border-color: rgb(var(--color-white-rgb) / .28);
  background: rgb(var(--color-white-rgb) / .09);
  color: var(--color-surface);
}
.app-content:not(.app-content--settings) > .page > :is(.hero-card, .page-header.aenima-page-hero, .image-annotation-header):first-child:not(.practitioner-page-hero):not(.hero-card--dashboard) h1 {
  color: var(--color-surface);
  font-size: var(--font-size-page-title-fluid, var(--font-size-page-title, 1.875rem));
  font-weight: var(--font-weight-body, 400);
  line-height: var(--line-height-title, 1.04);
}
.app-content:not(.app-content--settings) > .page > :is(.hero-card, .page-header.aenima-page-hero, .image-annotation-header):first-child:not(.practitioner-page-hero):not(.hero-card--dashboard) h1 strong {
  color: var(--color-secondary-muted);
  font-weight: var(--font-weight-title, 700);
}
.app-content:not(.app-content--settings) > .page > :is(.hero-card, .page-header.aenima-page-hero, .image-annotation-header):first-child:not(.practitioner-page-hero):not(.hero-card--dashboard) p:not(.session-report-required-notice) {
  color: rgb(var(--color-white-rgb) / .9);
}
.app-content:not(.app-content--settings) > .page > :is(.hero-card, .page-header.aenima-page-hero, .image-annotation-header):first-child:not(.practitioner-page-hero):not(.hero-card--dashboard):not(.animal-detail-hero) :is(.btn-primary, .btn-secondary, .btn-ghost) {
  border-color: rgb(var(--color-white-rgb) / .46);
  background: rgb(var(--color-white-rgb) / .94);
  color: var(--color-primary-strong);
}
.app-content:not(.app-content--settings) > .page > :is(.hero-card, .page-header.aenima-page-hero, .image-annotation-header):first-child:not(.practitioner-page-hero):not(.hero-card--dashboard):not(.animal-detail-hero) :is(.btn-primary, .btn-secondary, .btn-ghost):is(:hover, :focus-visible) {
  border-color: var(--color-highlight);
  background: var(--color-surface);
  color: var(--color-primary-strong);
}
.app-content:not(.app-content--settings) > .page > .animal-detail-hero:first-child .animal-detail-actions :is(.btn-primary, .btn-secondary) {
  border-color: #d9cede;
  background: #f3edf5;
  color: #4d3858;
  box-shadow: 0 7px 18px rgb(var(--color-primary-rgb) / .18);
}
.app-content:not(.app-content--settings) > .page > .animal-detail-hero:first-child .animal-detail-actions :is(.btn-primary, .btn-secondary):is(:hover, :focus-visible) {
  border-color: #c4b2cd;
  background: #e8ddeb;
  color: #392843;
  box-shadow: 0 10px 22px rgb(var(--color-primary-rgb) / .24);
}
.animal-information-request-panel {
  box-sizing: border-box;
  width: min(100%, 350px);
  max-height: calc(100vh - 110px);
  margin: 18px 0 22px auto;
  padding: 16px;
  border: 1px solid #c6b3cc;
  border-radius: 14px;
  background: #fbf7fc;
  box-shadow: 0 8px 24px rgb(var(--color-primary-rgb) / .12);
  color: var(--color-text);
  overflow: auto;
  transition: width .28s ease, max-height .28s ease, margin .28s ease, padding .28s ease, opacity .28s ease, visibility 0s;
}
.animal-information-request-panel:not(.is-open) { visibility:hidden;opacity:0;pointer-events:none;width:0;max-height:0;overflow:hidden;margin-top:0;margin-bottom:0;padding:0;border:0;box-shadow:none;transition-delay:0s,0s,0s,0s,0s,.28s; }
.animal-information-request-panel h2 { margin: 0 0 8px; font-size: var(--font-size-card-title, 1rem); color: #4d3858; }
.animal-information-request-panel p { margin: 0 0 12px; font-size: var(--font-size-help, .8125rem); line-height: 1.45; }
.animal-information-request-panel ul { list-style: none; padding: 0; margin: 0 0 12px; }
.animal-information-request-panel li { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 5px 0; border-bottom: 1px solid #e4dce8; font-size: var(--font-size-help, .8125rem); }
.animal-information-request-panel li button { flex: 0 0 auto; border: 0; background: transparent; color: #733f60; cursor: pointer; font-size: var(--font-size-card-title, 1.25rem); }
.animal-information-request-panel [data-information-request-status] { margin-top: 10px; }
.animal-information-request-toggle { display: inline-grid; place-items: center; width: 22px; height: 22px; margin-left: 8px; padding: 0; border: 1px solid #9b5b30; border-radius: 50%; background: #f6ce45; color: #543521; cursor: pointer; font-size: var(--font-size-help, .8125rem); font-weight: 800; vertical-align: middle; }
.animal-information-request-toggle[aria-pressed="true"] { background: #684c78; border-color: #684c78; color: #fff; }
.animal-information-request-toggle:focus-visible { outline: 2px solid #684c78; outline-offset: 2px; }
.animal-information-request-toggle.is-requested { background: var(--color-surface-muted); border-color: var(--color-border); color: var(--color-text); cursor: default; opacity: 1; }
.animal-information-request-warning { display: inline-grid; place-items: center; width: 21px; height: 19px; margin-left: 8px; padding-top: 3px; background: #d22d32; clip-path: polygon(50% 0, 100% 100%, 0 100%); color: #fff; font-size: var(--font-size-caption, .75rem); font-weight: 900; vertical-align: middle; }
.client-portal-animal-edit-page .animal-information-request-warning { display: inline-grid; margin: 0 0 0 8px; }
.client-portal-animal-edit-page .is-information-requested { min-width: 0; padding: 10px; border: 1px solid var(--color-danger); border-radius: var(--ui-radius-field); background: var(--ui-danger-surface); box-shadow: 0 0 0 3px rgb(var(--color-danger-rgb) / .08); }
.client-portal-animal-edit-page .is-information-requested > :is(span, legend) { color: var(--color-danger-strong); }
.client-portal-animal-edit-page .is-information-requested :is(.input, .animal-activity-choices) { border-color: var(--ui-danger-border); }
.animal-information-request-unmatched:not([hidden]) { margin-bottom: 20px; padding: 14px 18px; border: 1px solid #e8b8b9; border-radius: 12px; background: #fff7f7; color: var(--color-text); }
.animal-information-request-unmatched strong { display: block; margin-bottom: 8px; }
.animal-information-request-unmatched ul { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 0; padding: 0; list-style: none; }
.animal-information-request-unmatched li { display: inline-flex; align-items: center; }
@media (min-width: 980px) {
  .app-content:not(.app-content--settings) > .page.animal-information-request-page > .animal-detail-hero:first-child ~ .animal-information-request-panel ~ section {
    width: calc(100% - 56px);
    margin-left: 28px;
    margin-right: 28px;
    transition: width .28s ease, margin-left .28s ease, margin-right .28s ease;
  }
  .app-content:not(.app-content--settings) > .page.animal-information-request-page > .animal-detail-hero:first-child ~ .animal-information-request-panel {
    position: sticky;
    top: 90px;
    float: right;
    width: 0;
    margin: 0;
    z-index: 3;
  }
  .app-content:not(.app-content--settings) > .page.animal-information-request-page > .animal-detail-hero:first-child ~ .animal-information-request-panel.is-open {
    width:230px;
    margin:18px 28px 22px 0;
  }
  .app-content:not(.app-content--settings) > .page.animal-information-request-page.has-information-request-selection > .animal-detail-hero:first-child ~ .animal-information-request-panel ~ section {
    width: calc(100% - 304px);
    margin-right: 276px;
  }
}
@media(prefers-reduced-motion:reduce){.animal-information-request-panel,.app-content:not(.app-content--settings) > .page.animal-information-request-page > .animal-detail-hero:first-child ~ .animal-information-request-panel ~ section{transition:none}}
.app-content:not(.app-content--settings) > .page > :is(.hero-card, .page-header.aenima-page-hero, .image-annotation-header):first-child:not(.practitioner-page-hero):not(.hero-card--dashboard) .btn:is(.btn-back, .btn-arrow),
.app-content:not(.app-content--settings) > .page > :is(.hero-card, .page-header.aenima-page-hero, .image-annotation-header):first-child:not(.practitioner-page-hero):not(.hero-card--dashboard) .btn:is(.btn-back, .btn-arrow):is(:hover, :focus-visible) {
  color: var(--color-surface);
}
.app-content:not(.app-content--settings) > .page > :is(.hero-card, .page-header.aenima-page-hero, .image-annotation-header):first-child:not(.practitioner-page-hero):not(.hero-card--dashboard).animal-detail-hero,
.app-content:not(.app-content--settings) > .page > .client-form-hero:first-child {
  padding: 0;
}
@media (max-width: 1080px) {
  .app-content:not(.app-content--settings) > .page > :is(.hero-card, .page-header.aenima-page-hero, .image-annotation-header):first-child:not(.practitioner-page-hero):not(.hero-card--dashboard):not(.animal-detail-hero) {
    padding-top: calc(var(--ui-space-6, 24px) + 64px);
  }
}
.communication-campaign{--campaign-background:var(--color-surface, #f4eff4);--campaign-button:var(--color-primary, #356b70);background:var(--campaign-background);border:1px solid var(--color-border, #d8d2db);border-radius:var(--ui-radius-card, 18px);box-shadow:0 12px 30px rgba(23,49,50,.13);box-sizing:border-box;color:var(--color-text, #253b3c);max-width:100%;min-width:0;padding:22px;position:relative}
.communication-campaign__body{min-width:0}.communication-campaign h2{color:var(--campaign-title-color,inherit);font-size:var(--font-size-card-title, 1.25rem);line-height:1.25;margin:0 0 10px}.communication-campaign p{line-height:1.5;margin:0 0 12px}.communication-campaign__subtitle{color:var(--campaign-subtitle-color,inherit);font-weight:700}.communication-campaign__cta{background:var(--campaign-button);border-radius:var(--ui-radius-control, 12px);color:var(--campaign-button-text,#fff);display:inline-flex;font-size:var(--font-size-control, .9rem);font-weight:750;max-width:100%;padding:10px 15px;text-decoration:none}.communication-campaign__cta:hover,.communication-campaign__cta:focus-visible{filter:brightness(.92);outline:2px solid currentColor;outline-offset:2px}
.communication-campaign :is(strong,b){font-weight:800}.communication-campaign :is(em,i){font-style:italic}.communication-campaign u{text-decoration:underline}
.communication-campaign__text{min-width:0;overflow-wrap:anywhere}.communication-campaign__text>*:first-child{margin-top:0}.communication-campaign__text>*:last-child{margin-bottom:0}.communication-campaign__text ul,.communication-campaign__text ol{padding-left:1.5em}.communication-campaign__cta span{color:inherit}
.communication-campaign__text .article-body-image{box-sizing:border-box;display:block;margin:12px auto;max-width:100%;min-width:0;width:60%}.communication-campaign__text .article-body-image--w30{width:30%}.communication-campaign__text .article-body-image--w45{width:45%}.communication-campaign__text .article-body-image--w75{width:75%}.communication-campaign__text .article-body-image--w100{width:100%}.communication-campaign__text .article-body-image--left{float:left;margin:0 12px 8px 0}.communication-campaign__text .article-body-image--right{float:right;margin:0 0 8px 12px}.communication-campaign__text .article-body-image img{display:block;height:auto;max-width:100%;object-fit:contain;width:100%}.communication-campaign__text::after{clear:both;content:"";display:block}
.communication-campaign__body>.communication-campaign__cta{margin-top:var(--ui-space-4,16px)}
.communication-campaign--floating_box:not([data-campaign-initialized]){visibility:hidden}
.communication-campaign--dashboard_widget{align-self:start;width:100%}.communication-campaign--dashboard_widget.communication-campaign--square{aspect-ratio:1;max-width:25rem}.communication-campaign--floating_box{bottom:7.5rem;position:fixed;width:min(21rem,calc(100vw - 2rem));z-index:40}.communication-campaign--floating_box.communication-campaign--left{left:clamp(7rem,19vw,20rem)}.communication-campaign--floating_box.communication-campaign--right{right:1.3rem}.communication-campaign__close{align-items:center;background:#fff;border:1px solid var(--color-border, #d8d2db);border-radius:50%;color:inherit;cursor:pointer;display:flex;font-size:var(--font-size-card-title);height:2rem;justify-content:center;position:absolute;right:9px;top:9px;width:2rem}.communication-campaign--floating_box h2{padding-right:28px}
.communication-campaign--banner{align-items:center;display:flex;gap:16px;margin:18px auto;max-width:min(100%,74rem);padding:12px 20px;width:100%}.app-shell>.communication-campaign--banner{align-self:start;grid-column:1/-1;grid-row:1;margin:0;max-width:none;border-radius:0;box-shadow:0 6px 18px rgb(23 49 50 / .13);position:sticky;top:0;z-index:45}.communication-campaign--banner p{flex:1;margin:0}.communication-campaign--banner .communication-campaign__cta{flex:none}
.communication-campaign--banner .communication-campaign__message-viewport{flex:1;min-width:0;overflow:hidden}.communication-campaign--banner .communication-campaign__message-viewport[hidden]{display:none}.communication-campaign--banner .communication-campaign__message-viewport p{margin:0;width:100%}.communication-campaign--banner .communication-campaign__message-viewport[data-campaign-mode="scroll"] p{white-space:nowrap;width:max-content}
@media(prefers-reduced-motion:reduce){.communication-campaign--banner .communication-campaign__message-viewport[data-campaign-mode="scroll"] p{white-space:normal;width:100%}}
.communication-campaign--banner p a{color:inherit;font-weight:700;text-decoration:none}.communication-campaign--banner p a:hover,.communication-campaign--banner p a:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.app-shell:has(> .communication-campaign--banner) > :is(.app-sidebar,.secondary-drawer){top:var(--campaign-banner-height,3.5rem);height:calc(100vh - var(--campaign-banner-height,3.5rem))}
.communication-campaign .article-text-align--left{text-align:left}.communication-campaign .article-text-align--center{text-align:center}.communication-campaign .article-text-align--right{text-align:right}.communication-campaign .article-text-align--justify{text-align:justify}.communication-campaign :is(h2,p,a)>.article-text-align--left,.communication-campaign :is(h2,p,a)>.article-text-align--center,.communication-campaign :is(h2,p,a)>.article-text-align--right,.communication-campaign :is(h2,p,a)>.article-text-align--justify{display:block}
.communication-campaign h2{font-size:var(--font-size-campaign-title,var(--font-size-card-title,1.25rem));font-style:var(--campaign-title-style,normal);font-weight:var(--campaign-title-weight,700)}.communication-campaign__subtitle{font-size:var(--font-size-campaign-subtitle,var(--font-size-body));font-style:var(--campaign-subtitle-style,normal);font-weight:var(--campaign-subtitle-weight,700)}.communication-campaign__text{color:var(--campaign-body-color,inherit);font-size:var(--font-size-campaign-body,var(--font-size-body));font-style:var(--campaign-body-style,normal);font-weight:var(--campaign-body-weight,400)}.communication-campaign--banner p{color:var(--campaign-banner-color,inherit);font-size:var(--font-size-campaign-banner,var(--font-size-body));font-style:var(--campaign-banner-style,normal);font-weight:var(--campaign-banner-weight,600)}
@media(max-width:700px){.communication-campaign--floating_box.communication-campaign--left,.communication-campaign--floating_box.communication-campaign--right{bottom:7rem;left:auto;right:1rem;width:min(19rem,calc(100vw - 2rem))}.communication-campaign--floating_box.communication-campaign--left:has(~ .communication-campaign--right){bottom:calc(7rem + 15rem)}.communication-campaign--banner{align-items:flex-start;flex-direction:column}}
.newsletter-unsubscribe-card{box-sizing:border-box;margin:3rem auto;max-width:100%;padding:2rem;width:min(100%,36rem)}.newsletter-unsubscribe-card form{margin:1.3rem 0}.newsletter-unsubscribe-card p:last-child{margin-bottom:0}

/* Dated appointment capacity belongs to the availability editor. */
.availability-day-booking-rule { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; margin: .5rem 0; padding: 1rem; border: 1px solid var(--color-secondary-muted); border-radius: var(--ui-radius-card); background: var(--color-secondary-faint); }
.availability-day-booking-rule[hidden] { display: none; }
.availability-day-booking-rule legend { padding: 0 .35rem; color: var(--color-secondary-deep); font-weight: 700; }
.availability-day-booking-rule label { display: grid; gap: .4rem; min-width: 0; color: var(--color-primary-deep); }
.availability-day-booking-rule select, .availability-day-booking-rule input[type="number"] { width: 100%; min-width: 0; min-height: 2.65rem; border: 1px solid var(--color-border); border-radius: var(--ui-radius-field); background: var(--color-surface); color: var(--color-text); }
.availability-day-booking-rule__checkbox { grid-column: 1 / -1; display: flex !important; align-items: center; }
.availability-day-booking-rule__checkbox input { accent-color: var(--color-secondary-strong); }
@media (max-width: 600px) { .availability-day-booking-rule { grid-template-columns: minmax(0, 1fr); } }
.availability-period-modal.is-cabinet-only [data-availability-zone-field] {
  display: none !important;
}

/* Private departure settings reuse the scheduling card and shared form controls. */
.practitioner-departure-points .form-hint { font-size:var(--font-size-help); line-height: 1.5; }
.practitioner-departure-card { margin-block: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-surface); min-width: 0; }
.practitioner-departure-card > summary { cursor: pointer; padding: 1rem; color: var(--color-primary-strong); background: var(--color-primary-soft); border-radius: var(--radius-sm); }
.practitioner-departure-card > summary span { display: block; padding-top: .25rem; font-size:var(--font-size-label); color: var(--color-text-soft); overflow-wrap: anywhere; }
.practitioner-departure-card--primary { border-color: var(--color-secondary-muted); box-shadow: var(--ui-shadow-card-crisp); }
.practitioner-departure-card--primary > summary { background: var(--color-secondary-faint); border-left: 4px solid var(--color-secondary-strong); color: var(--color-secondary-deep); }
.practitioner-departure-card__primary-label { display: inline-block; margin-left: .65rem; padding: .2rem .5rem; border-radius: var(--ui-radius-field); background: var(--color-secondary-soft); color: var(--color-secondary-deep); font-size: var(--font-size-caption); font-weight: var(--font-weight-label); vertical-align: middle; }
.practitioner-departure-card[open] > summary { border-radius: var(--radius-sm) var(--radius-sm) 0 0; }
.practitioner-departure-card form { padding: 1rem; min-width: 0; }
.practitioner-departure-card__fields { display: flex; gap: 1rem; flex-wrap: wrap; align-items: start; }
.practitioner-departure-card__fields .field { display: grid; gap: .4rem; min-width: 0; max-width: 100%; }
.practitioner-departure-card__address { flex: 1 1 24rem; position: relative; }
.practitioner-departure-card__address input { width: 100%; }
.practitioner-departure-card__fields input[type=number] { width: 8ch; min-width: 7ch; }
.practitioner-departure-card [data-departure-suggestions] { position: absolute; inset: 4.75rem 0 auto; z-index: 8; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 10px; box-shadow: var(--shadow); max-height: 16rem; overflow-y: auto; }
.practitioner-departure-card [data-departure-suggestions] button { display:block; width:100%; padding:.75rem; border:0; border-radius:0; background:var(--color-surface); color:var(--color-primary-strong); text-align:left; white-space:normal; }
.practitioner-departure-card [data-departure-suggestions] button:hover, .practitioner-departure-card [data-departure-suggestions] button:focus-visible { background:var(--color-primary-soft); color:var(--color-primary-deep); }
.practitioner-departure-week { margin-block: 1rem; padding: .75rem; border: 1px solid var(--color-border); border-radius: 12px; }
.practitioner-departure-week__day { display:grid; grid-template-columns:6rem repeat(2,minmax(0,1fr)); gap: .6rem 1rem; align-items:center; padding: .5rem 0; border-bottom:1px solid var(--color-border); }
.practitioner-departure-week__day > strong { flex: 0 0 6rem; color:var(--color-primary-strong); }
.practitioner-departure-week__slot { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:.4rem; min-width:0; }
.practitioner-departure-week__slot label { grid-column:1/-1; display:flex; gap:.35rem; align-items:center; font-size:var(--font-size-label); }
.practitioner-departure-week__slot input[type=time] { width: 100%; min-width:0; max-width:100%; padding:.4rem; }
.practitioner-departure-points__add { display:flex; flex-wrap:wrap; justify-content:flex-start; align-items:center; gap:.75rem; }
.practitioner-departure-points [hidden] { display:none !important; }
.practitioner-departure-card .availability-map { margin-block: .75rem; }
@media(max-width: 760px) { .practitioner-departure-week__day { grid-template-columns:minmax(0,1fr); } .practitioner-departure-week__day > strong { grid-column:1/-1; } .practitioner-departure-week__slot { display:grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); width:100%; } .practitioner-departure-week__slot label { grid-column:1/-1; } .practitioner-departure-week__slot input[type=time] { width:100%; } }

.practitioner-departure-card__fields{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,16rem) minmax(0,1fr);gap:var(--ui-space-3,12px) var(--ui-space-4,16px)}
.practitioner-departure-card__fields .field{width:100%;min-width:0;max-width:100%}
.practitioner-departure-card__address{grid-column:1/-1;width:100%}
.practitioner-departure-card__mode select{width:100%;min-width:0}
.practitioner-departure-card__time-value{background:var(--color-primary-soft);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-primary-strong);font-size:var(--font-size-label);font-weight:var(--font-weight-label);min-width:5rem;padding:.4rem .6rem;text-align:center;white-space:nowrap}
.practitioner-departure-card__map-wait{position:absolute;inset:0;z-index:5;display:grid;place-items:center;background:rgb(255 255 255/.72);color:var(--color-primary-strong);font-size:var(--font-size-body);font-weight:var(--font-weight-label);pointer-events:none}
.practitioner-departure-card__map-wait[hidden]{display:none}
.practitioner-departure-week{container-type:inline-size}
.practitioner-departure-week__day{display:grid;grid-template-columns:minmax(0,1fr);align-content:start;gap:.5rem;background:var(--color-primary-soft);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.7rem;min-width:0}
.practitioner-departure-week__day>strong{font-size:var(--font-size-label);line-height:1.3}
.practitioner-departure-week__slots{display:grid;gap:.4rem;min-width:0}
.practitioner-departure-week__slot{display:grid;grid-template-columns:minmax(5.8rem,auto) minmax(0,1fr) auto;align-items:center;gap:.5rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.35rem .5rem;min-width:0}
.practitioner-departure-week__slot label{grid-column:auto;white-space:nowrap;margin:0}
.practitioner-departure-week__times{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.3rem;min-width:0}
.practitioner-departure-week__times input[type=time]{min-width:0;max-width:100%;padding:.3rem}
.practitioner-departure-week__add{justify-self:start;width:max-content;max-width:100%;white-space:nowrap}
.practitioner-departure-week__slot .settings-autosave__field-error{grid-column:1/-1}
.practitioner-departure-card .practitioner-home-service-area__radius{width:min(100%,24rem);max-width:100%;grid-template-columns:minmax(0,1fr) auto}
.practitioner-departure-card .practitioner-home-service-area__radius input[type=range]{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
.practitioner-departure-card .availability-map__radius[role=slider]{outline:none}
.practitioner-departure-card .availability-map__canvas.is-radius-hover .availability-map__radius,
.practitioner-departure-card .availability-map__canvas.is-radius-dragging .availability-map__radius,
.practitioner-departure-card .availability-map__radius[role=slider]:focus-visible{border-width:5px;box-shadow:0 0 0 7px var(--color-focus);transform:translate(-50%,-50%) scale(1.025)}
.practitioner-departure-card .availability-map__canvas.is-radius-hover,
.practitioner-departure-card .availability-map__canvas.is-radius-dragging{cursor:ew-resize}
.practitioner-departure-map__origin{position:absolute;z-index:6;width:34px;height:34px;border:3px solid var(--color-primary-strong);border-radius:50%;background:rgb(255 255 255/.8);box-shadow:0 0 0 2px #fff,0 2px 7px rgb(23 40 39/.25);transform:translate(-50%,-50%);pointer-events:none}
.practitioner-departure-map__origin::after{content:"";position:absolute;inset:11px;background:var(--color-primary-strong);border-radius:50%;pointer-events:none}
.practitioner-departure-card .availability-map__marker{z-index:7}
.practitioner-departure-map__legend{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;align-items:center;margin:.5rem 0 1rem;color:var(--color-primary-strong);font-size:var(--font-size-label)}
.practitioner-departure-map__legend>span{display:inline-flex;align-items:center;gap:.4rem}
.practitioner-departure-map__legend i{display:inline-block;width:14px;height:14px;border-radius:50%;flex:none}
.practitioner-departure-map__legend-origin{border:2px solid var(--color-primary-strong);background:#fff}
.practitioner-departure-map__legend-center{background:#d8794e;border:2px solid #fff;box-shadow:0 0 0 1px #a65a37}
.practitioner-departure-week{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
.practitioner-departure-week legend,.practitioner-departure-week>p{grid-column:1/-1}
@container(max-width:760px){.practitioner-departure-week__day{grid-column:1/-1}}
@container(max-width:420px){.practitioner-departure-week__slot{grid-template-columns:minmax(0,1fr) auto}.practitioner-departure-week__times{grid-column:1/-1;grid-row:2}.practitioner-departure-week__slot [data-departure-week-remove]{grid-column:2;grid-row:1}}
@media(max-width:620px){.practitioner-departure-card__fields{grid-template-columns:minmax(0,1fr)}.practitioner-departure-card__address{grid-column:1}}

.calendar-travel-modal__panel { width: min(100%, 38rem); max-height: calc(100dvh - 2rem); overflow: auto; }
.calendar-travel-modal__panel > p { margin-block: var(--ui-space-3); }
.calendar-travel-modal__event { color: var(--color-primary); }
.calendar-travel-modal__choices { display: flex; flex-wrap: wrap; gap: var(--ui-space-3); margin-block: var(--ui-space-4); }
.calendar-travel-modal__choices label { display: flex; align-items: center; gap: var(--ui-space-2); padding: var(--ui-space-2) var(--ui-space-3); background: var(--color-primary-soft); border-radius: var(--ui-radius-control); }
.calendar-travel-modal__panel .field { display: grid; gap: var(--ui-space-2); min-width: 0; }
.calendar-travel-modal__panel .input { width: 100%; min-width: 0; }
.calendar-travel-modal__panel .app-confirm-modal__actions { flex-wrap: wrap; margin-top: var(--ui-space-4); }

.calendar-travel-modal__choices { border: 0; padding: 0; }
.calendar-travel-modal__choices legend { color: var(--color-primary-strong); font-weight: var(--font-weight-label); padding-bottom: var(--ui-space-2); }
.calendar-travel-modal__choices label:has(input:checked) { background: var(--color-primary-soft); outline: 1px solid var(--color-primary); }
.calendar-travel-modal__panel .section-kicker { color: var(--color-secondary-deep); }
.calendar-travel-modal__panel [hidden] { display: none !important; }

/* Shared account activation password control. */
.password-visibility__label { display: block; font-size: var(--font-size-label); font-weight: var(--font-weight-label); margin-bottom: 6px; }
.password-visibility { position: relative; width: 100%; }
.password-visibility > .input { padding-right: 52px; }
.password-visibility__toggle { align-items: center; background: transparent; border: 0; border-radius: var(--ui-radius-control, 10px); color: var(--color-primary); cursor: pointer; display: inline-flex; height: 38px; justify-content: center; padding: 0; position: absolute; right: 5px; top: 50%; transform: translateY(-50%); width: 38px; }
.password-visibility__toggle svg { fill: none; height: 21px; stroke: currentColor; width: 21px; }
.password-visibility__toggle:hover, .password-visibility__toggle:focus-visible { background: var(--color-primary-soft); color: var(--color-primary-strong); }
.password-visibility__toggle:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 1px; }

/* A working day can be reused from the shared onboarding/settings editor. */
.scheduling-rules-page .practitioner-opening-hours__day-actions { align-items: center; flex-wrap: wrap; gap: var(--ui-space-2, 8px); justify-content: space-between; }
.practitioner-opening-hours__copy { background: var(--color-surface); border: 1px solid var(--color-primary); border-radius: var(--ui-radius-control, 10px); color: var(--color-primary-strong); cursor: pointer; font: inherit; font-size: var(--font-size-help, .78rem); font-weight: var(--font-weight-label, 750); line-height: 1.25; max-width: 100%; min-height: 36px; padding: 7px 10px; text-align: center; }
.practitioner-opening-hours__copy:hover, .practitioner-opening-hours__copy:focus-visible { background: var(--color-primary); border-color: var(--color-primary); color: var(--color-surface); }
.practitioner-opening-hours__copy:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.practitioner-opening-hours__copy:disabled { cursor: not-allowed; opacity: .45; }

/* On short windows the navigation scrolls while the brand stays visible. */
@media (min-width: 761px) {
  .client-portal-drawer { box-sizing: border-box; }
  .client-portal-drawer__brand, .client-portal-drawer__footer { flex: 0 0 auto; }
  .client-portal-drawer__nav { align-content: start; flex: 1 1 auto; min-height: 0; overflow-x: hidden; overflow-y: auto; scrollbar-width: thin; }
}


/* Keep Safari time controls usable in the narrower practitioner onboarding cards. */
.practitioner-onboarding-journey__embedded--hours .practitioner-opening-hours-card { container-type: inline-size; }
.practitioner-onboarding-journey__embedded--hours .practitioner-opening-hours__day {
  grid-template-columns: minmax(0, 1fr);
}
.practitioner-onboarding-journey__embedded--hours .practitioner-opening-hours__slot {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-width: 0;
}
.practitioner-onboarding-journey__embedded--hours .practitioner-opening-hours__slot input[type="time"] {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.practitioner-onboarding-journey__embedded--hours .practitioner-opening-hours__cabinet-slot { grid-column: 1; }
.practitioner-onboarding-journey__embedded--hours .practitioner-opening-hours__remove {
  grid-column: 2;
  justify-self: end;
  width: 32px;
}
.practitioner-onboarding-journey__embedded--hours .practitioner-opening-hours__day-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--ui-space-2, 8px);
  min-width: 0;
}
.practitioner-onboarding-journey__embedded--hours .practitioner-opening-hours__day-actions .practitioner-opening-hours__add {
  grid-column: auto;
}
@container (max-width: 680px) {
  .practitioner-onboarding-journey__embedded--hours .practitioner-opening-hours__days { grid-template-columns: minmax(0, 1fr); }
}

/* One ensemble disclosure owns its games in both Shiatsu editors. */
.shiatsu-point-tree { display: grid; gap: var(--ui-space-2); min-width: 0; }
.shiatsu-point-tree__ensemble.shiatsu-point-preset-list__item {
  display: block;
  padding: 0;
  min-height: 0;
  border-color: var(--shiatsu-set-accent);
  border-inline-start-width: 4px;
  background: var(--shiatsu-set-surface);
}
.shiatsu-point-tree__ensemble.shiatsu-point-preset-list__item:hover { transform: none; }
.shiatsu-point-tree__heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--ui-space-1) var(--ui-space-2);
  padding: var(--ui-space-3);
  cursor: pointer;
  list-style: none;
  color: var(--color-text);
}
.shiatsu-point-tree__heading::-webkit-details-marker { display: none; }
.shiatsu-point-tree__heading > strong { overflow-wrap: anywhere; font-size: var(--font-size-control); }
.shiatsu-point-tree__heading > span { grid-column: 1; color: var(--color-text-soft); font-size: var(--font-size-table); }
.shiatsu-point-tree__heading::after {
  content: '›';
  grid-column: 2;
  grid-row: 1 / 3;
  font-size: var(--font-size-section-title);
  color: var(--shiatsu-set-accent);
  transition: transform 180ms ease;
}
.shiatsu-point-tree__ensemble[open] > .shiatsu-point-tree__heading::after { transform: rotate(90deg); }
.shiatsu-point-tree__heading:hover { background: var(--color-surface); }
.shiatsu-point-tree__heading:focus-visible { outline: 2px solid var(--color-focus); outline-offset: -2px; }
.shiatsu-point-tree__children { padding: var(--ui-space-2); border-top: 1px solid var(--shiatsu-set-accent); }
.shiatsu-point-tree__children > .shiatsu-point-preset-list + .shiatsu-point-preset-list { margin-block-start: var(--ui-space-2); margin-inline-start: var(--ui-space-3); border-inline-start: 1px solid var(--shiatsu-set-accent); padding-inline-start: var(--ui-space-2); }
.shiatsu-point-tree__children .shiatsu-point-preset-list__item { min-width: 0; }
.shiatsu-point-tree__children .shiatsu-point-preset-list__title,
.shiatsu-point-tree__children .shiatsu-point-preset-list__identity strong { white-space: normal; overflow-wrap: anywhere; font-size: var(--font-size-control); }
.shiatsu-point-tree__children > .shiatsu-point-preset-list__actions { display: flex; justify-content: flex-end; gap: var(--ui-space-2); margin-block-end: var(--ui-space-2); }
[data-shiatsu-point-tree-popup] .shiatsu-point-preset-list__add-button { width: auto; height: auto; min-height: var(--ui-control-height); padding: var(--ui-space-2) var(--ui-space-3); border-radius: var(--radius-sm); font-size: var(--font-size-control); white-space: normal; }
[data-shiatsu-point-tree-popup] .shiatsu-point-preset-list__add { grid-template-columns: 1fr; }
[data-shiatsu-point-tree-popup] .shiatsu-point-preset-list__add-line { display: none; }
[data-shiatsu-point-tree-popup] > .shiatsu-point-presets-popup__content > .shiatsu-point-preset-list__add-button { margin-block-start: var(--ui-space-3); }
.shiatsu-point-tree__children .shiatsu-point-preset-list__add-button { background: var(--color-highlight-strong); color: var(--color-surface); border-color: var(--color-highlight-strong); }
.shiatsu-point-tree__children .shiatsu-point-preset-list__add-button:hover:not(:disabled) { background: var(--color-highlight-soft); color: var(--color-highlight-strong); }

.annotation-color-palette-control {
  display: grid;
  align-content: center;
  gap: var(--ui-space-1);
  min-width: 0;
  min-height: 54px;
  padding: 8px 12px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: rgb(var(--color-white-rgb) / .74);
  box-shadow: var(--shadow-xs);
}
.annotation-color-palette-control > .annotation-point-color-control {
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.annotation-color-palette-control > .annotation-color-palette { padding: 0; }
.annotation-point-options > .annotation-reference-toggle { align-self: stretch; }
.annotation-point-options:not(.annotation-point-options--muscle) { grid-auto-rows: 1fr; }

.annotation-color-palette { display: flex; flex-wrap: wrap; gap: var(--ui-space-2); padding: var(--ui-space-2); }
.annotation-color-palette[hidden] { display: none; }
.annotation-color-palette__swatch {
  width: var(--ui-space-6); height: var(--ui-space-6); flex: 0 0 auto;
  padding: 0; border: 2px solid var(--color-surface); border-radius: var(--radius-sm);
  background: var(--annotation-color); box-shadow: 0 0 0 1px var(--color-border); cursor: pointer;
}
.annotation-color-palette__swatch:hover,
.annotation-color-palette__swatch[aria-pressed="true"] { box-shadow: 0 0 0 2px var(--color-text); }
.annotation-color-palette__swatch:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; }

.annotation-color-palette[data-annotation-color-palette="default"] { justify-content: flex-end; }

/* Static pre-opening page; exported with the same public tokens and components. */
.public-launch {
  display: flex; flex-direction: column; min-height: 100svh;
  background: var(--color-surface-off-white); color: var(--color-text);
  padding: var(--ui-space-6); text-align: center;
}
.public-launch__content { width: 100%; max-width: 48rem; margin: auto; padding-block: var(--ui-space-8); }
.public-launch__brand { display: grid; justify-items: center; gap: var(--ui-space-4); margin-bottom: var(--ui-space-8); }
.public-launch__logo { width: clamp(7rem, 22vw, 11rem); height: auto; }
.public-launch__name { margin: 0; font-size: var(--font-size-section-title); font-weight: var(--font-weight-title); color: var(--color-primary-deep); }
.public-launch h1 { font-size: var(--font-size-page-title-fluid); font-weight: var(--font-weight-body); }
.public-launch h1 strong { color: var(--color-secondary-deep); }
.public-launch__intro { margin: 0; font-size: var(--font-size-hero-intro); color: var(--color-text-soft); }
.public-launch__footer { display: flex; justify-content: center; flex-wrap: wrap; gap: var(--ui-space-4); font-size: var(--font-size-help); color: var(--color-text-soft); }
.public-launch a:focus-visible { outline: 3px solid var(--color-primary); outline-offset: 4px; border-radius: var(--radius-sm); }
.public-launch a:hover { color: var(--color-primary-deep); }
.public-launch__content--legal { max-width: 46rem; text-align: left; overflow-wrap: anywhere; }
.public-launch__content--legal .public-launch__brand { justify-items: start; }
.public-launch__content--legal section { margin-block: var(--ui-space-8); }
