@font-face {
  font-family: Assistant;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src:
    url("https://allsixsalon.com/cdn/fonts/assistant/assistant_n4.9120912a469cad1cc292572851508ca49d12e768.woff2") format("woff2"),
    url("https://allsixsalon.com/cdn/fonts/assistant/assistant_n4.6e9875ce64e0fefcd3f4446b7ec9036b3ddd2985.woff") format("woff");
}

@font-face {
  font-family: Assistant;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src:
    url("https://allsixsalon.com/cdn/fonts/assistant/assistant_n7.bf44452348ec8b8efa3aa3068825305886b1c83c.woff2") format("woff2"),
    url("https://allsixsalon.com/cdn/fonts/assistant/assistant_n7.0c887fee83f6b3bda822f1150b912c72da0f7b64.woff") format("woff");
}

@font-face {
  font-family: "All Six Display";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("https://cdn.shopify.com/s/files/1/0689/6710/4733/t/48/assets/all-six-cormorant-garamond-500.ttf") format("truetype");
}

@font-face {
  font-family: "All Six Display";
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("https://cdn.shopify.com/s/files/1/0689/6710/4733/t/48/assets/all-six-cormorant-garamond-500-italic.ttf") format("truetype");
}

@font-face {
  font-family: "All Six Body";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("https://cdn.shopify.com/s/files/1/0689/6710/4733/t/48/assets/all-six-manrope-400.ttf") format("truetype");
}

@font-face {
  font-family: "All Six Body";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("https://cdn.shopify.com/s/files/1/0689/6710/4733/t/48/assets/all-six-manrope-500.ttf") format("truetype");
}

@font-face {
  font-family: "All Six Body";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("https://cdn.shopify.com/s/files/1/0689/6710/4733/t/48/assets/all-six-manrope-600.ttf") format("truetype");
}

:root {
  --as-black: #080808;
  --as-charcoal: #22201f;
  --as-ink: #3f3934;
  --as-muted: #746d66;
  --as-line: #e9e2da;
  --as-cream: #f8f3ee;
  --as-cream-strong: #eee2d7;
  --as-white: #fffdfb;
  --as-focus: #9d7b62;
  --as-shadow: 0 22px 70px rgba(39, 31, 25, 0.12);
  --as-radius: 28px;
  --as-current-site-font: Assistant, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color-scheme: light;
  font-family: var(--as-current-site-font);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background:
    radial-gradient(circle at 15% 0%, rgba(226, 207, 190, 0.52), transparent 28rem),
    linear-gradient(180deg, #fffdfb 0%, #f9f5f0 44%, #fffdfb 100%);
  color: var(--as-charcoal);
}

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

button {
  cursor: pointer;
}

[hidden] {
  display: none !important;
}

.as-header {
  position: sticky;
  top: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 18px clamp(18px, 4vw, 54px);
  background: rgba(255, 253, 251, 0.86);
  border-bottom: 1px solid rgba(226, 216, 206, 0.72);
  backdrop-filter: blur(18px);
}

.as-logo {
  display: inline-flex;
  align-items: center;
  color: var(--as-black);
  text-decoration: none;
  letter-spacing: 0.02em;
}

.as-logo img {
  display: block;
  width: clamp(96px, 11vw, 150px);
  height: auto;
}

.as-nav {
  display: flex;
  gap: 8px;
  padding: 6px;
  border: 1px solid var(--as-line);
  border-radius: 999px;
  background: var(--as-white);
}

.as-nav__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--as-muted);
  padding: 10px 14px;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}

.as-nav__button.is-active {
  background: var(--as-black);
  color: #fff;
}

.as-header-auth {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 8px;
  min-width: 150px;
}

.as-mobile-menu-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  border: 1px solid var(--as-line);
  border-radius: 999px;
  background: var(--as-white);
  color: var(--as-black);
  padding: 9px 14px;
  font-size: 13px;
  font-weight: 900;
  box-shadow: 0 10px 24px rgba(34, 27, 22, 0.08);
}

.as-header-auth__menu {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}

.as-auth-toggle {
  border: 1px solid var(--as-line);
  border-radius: 999px;
  background: var(--as-white);
  color: var(--as-black);
  padding: 12px 18px;
  font-weight: 800;
  box-shadow: 0 10px 28px rgba(34, 27, 22, 0.08);
}

.as-auth-link {
  border: 0;
  background: transparent;
  color: var(--as-muted);
  padding: 10px 4px;
  font-size: 13px;
  font-weight: 800;
}

.as-auth-link:hover,
.as-auth-link:focus-visible {
  color: var(--as-black);
  text-decoration: underline;
  text-underline-offset: 4px;
}

.as-login-card--header {
  position: absolute;
  top: calc(100% + 14px);
  right: 0;
  z-index: 30;
  width: min(380px, calc(100vw - 32px));
  max-height: calc(100dvh - 96px);
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  grid-template-columns: 1fr;
  align-items: stretch;
  margin: 0;
  padding: 18px;
  border: 1px solid var(--as-line);
  border-radius: 24px;
  background: var(--as-white);
  box-shadow: 0 24px 60px rgba(34, 27, 22, 0.18);
}

.as-login-card--header h3 {
  margin-bottom: 6px;
}

.as-login-card__divider {
  height: 1px;
  margin: 4px 0;
  background: var(--as-line);
}

.as-login-card__setup {
  display: grid;
  gap: 12px;
}

main {
  width: min(1180px, calc(100% - 32px));
  margin: 0 auto;
}

body.as-client-signed-in main {
  width: min(1280px, calc(100% - 32px));
}

body.as-mode-staff.as-staff-signed-in main {
  width: min(1680px, calc(100% - 28px));
}

body.as-mode-staff.as-staff-signed-in .as-public-nav,
body.as-mode-staff.as-staff-signed-in .as-public-menu-toggle,
body.as-mode-staff.as-staff-signed-in .as-public-mobile-menu,
body.as-mode-staff.as-staff-signed-in .as-public-hero,
body.as-mode-staff.as-staff-signed-in .as-public-section,
body.as-mode-staff.as-staff-signed-in .as-public-sticky-cta,
body.as-mode-staff.as-chart-selected .as-public-nav,
body.as-mode-staff.as-chart-selected .as-public-menu-toggle,
body.as-mode-staff.as-chart-selected .as-public-mobile-menu,
body.as-mode-staff.as-chart-selected .as-public-hero,
body.as-mode-staff.as-chart-selected .as-public-section,
body.as-mode-staff.as-chart-selected .as-public-sticky-cta {
  display: none !important;
}

body.as-mode-client .as-public-hero,
body.as-mode-client .as-public-section,
body.as-mode-client .as-public-sticky-cta,
body.as-mode-staff .as-public-hero,
body.as-mode-staff .as-public-section,
body.as-mode-staff .as-public-sticky-cta {
  display: none !important;
}

.as-public-nav {
  display: flex;
  align-items: center;
  gap: clamp(10px, 1.4vw, 22px);
  margin-left: auto;
}

.as-public-nav a,
.as-public-mobile-menu a {
  color: var(--as-ink);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-decoration: none;
  text-transform: uppercase;
}

.as-public-nav a:hover,
.as-public-nav a:focus-visible,
.as-public-mobile-menu a:hover,
.as-public-mobile-menu a:focus-visible {
  color: var(--as-black);
  text-decoration: underline;
  text-underline-offset: 5px;
}

.as-public-nav__cta,
.as-public-mobile-menu__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  border-radius: 999px;
  background: var(--as-black);
  color: #fff !important;
  padding: 10px 16px;
  text-decoration: none !important;
}

.as-public-menu-toggle {
  display: none;
  min-height: 40px;
  border: 1px solid var(--as-line);
  border-radius: 999px;
  background: var(--as-white);
  color: var(--as-black);
  padding: 9px 14px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.as-public-mobile-menu {
  position: fixed;
  inset: 72px 12px auto 12px;
  z-index: 50;
  display: grid;
  gap: 10px;
  border: 1px solid rgba(226, 216, 206, 0.9);
  border-radius: 24px;
  background: rgba(255, 253, 251, 0.97);
  box-shadow: 0 24px 60px rgba(34, 27, 22, 0.16);
  padding: 16px;
  backdrop-filter: blur(18px);
}

.as-public-mobile-menu a {
  display: flex;
  align-items: center;
  min-height: 42px;
  border-bottom: 1px solid rgba(233, 226, 218, 0.7);
}

.as-public-mobile-menu__cta {
  min-height: 46px !important;
  border-bottom: 0 !important;
}

.as-public-hero,
.as-public-section {
  position: relative;
  scroll-margin-top: 90px;
}

.as-public-hero {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(340px, 0.95fr);
  gap: clamp(22px, 3vw, 44px);
  align-items: center;
  min-height: min(680px, calc(100dvh - 82px));
  padding: clamp(34px, 4.8vw, 62px) 0 clamp(28px, 4vw, 52px);
}

.as-public-hero__copy {
  display: grid;
  gap: 18px;
}

.as-public-hero h1,
.as-public-section h2 {
  margin: 0;
  color: var(--as-black);
  font-family: var(--as-current-site-font);
  font-weight: 300;
  letter-spacing: 0;
}

.as-public-hero h1 {
  max-width: 13.5ch;
  font-size: clamp(42px, 4.9vw, 68px);
  line-height: 1.08;
}

.as-public-hero p,
.as-public-section p,
.as-public-section li {
  color: var(--as-muted);
  font-size: clamp(15px, 1.1vw, 17px);
  line-height: 1.62;
}

.as-public-hero__copy > p:not(.as-kicker) {
  max-width: 610px;
  margin: 0;
}

.as-public-hero__signals {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  max-width: 620px;
}

.as-public-hero__signals span {
  display: inline-flex;
  min-height: 30px;
  align-items: center;
  border: 1px solid rgba(157, 123, 98, 0.22);
  border-radius: 999px;
  background: rgba(255, 253, 251, 0.72);
  color: var(--as-focus);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.09em;
  padding: 6px 10px;
  text-transform: uppercase;
}

.as-public-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.as-public-hero__media {
  position: relative;
  height: clamp(360px, 38vw, 500px);
  min-height: 0;
  max-height: 500px;
  border-radius: 28px;
  overflow: hidden;
  background: var(--as-cream);
  box-shadow: 0 16px 36px rgba(39, 31, 25, 0.09);
}

.as-public-hero__media img,
.as-public-service-card img,
.as-public-split--media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.as-public-hero__note {
  position: absolute;
  right: 14px;
  bottom: 14px;
  width: min(280px, calc(100% - 28px));
  display: grid;
  gap: 6px;
  border: 1px solid rgba(255, 255, 255, 0.58);
  border-radius: 20px;
  background: rgba(255, 253, 251, 0.88);
  padding: 12px;
  backdrop-filter: blur(14px);
}

.as-public-hero__note span,
.as-public-path-grid span,
.as-public-service-card span,
.as-public-value-grid span,
.as-public-timeline span {
  color: var(--as-focus);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.as-public-hero__note strong {
  color: var(--as-black);
  font-family: var(--as-current-site-font);
  font-size: 18px;
  font-weight: 450;
  line-height: 1.14;
}

.as-public-section {
  display: grid;
  gap: clamp(18px, 2.6vw, 32px);
  padding: clamp(34px, 5vw, 64px) 0;
  border-top: 1px solid rgba(226, 216, 206, 0.72);
}

.as-public-section__heading {
  display: grid;
  gap: 14px;
  max-width: 820px;
}

.as-public-section h2 {
  max-width: 15ch;
  font-size: clamp(30px, 3.5vw, 48px);
  line-height: 1.08;
}

.as-public-section h3 {
  margin: 0;
  color: var(--as-black);
  font-family: var(--as-current-site-font);
  font-size: clamp(18px, 1.45vw, 23px);
  font-weight: 500;
  line-height: 1.16;
}

.as-public-actions .as-button,
.as-public-contact__actions .as-button,
.as-public-cta-band .as-button,
.as-public-gift-card .as-button {
  font-weight: 650;
}

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

.as-public-service-card {
  display: grid;
  grid-template-rows: 180px auto;
  gap: 12px;
  min-width: 0;
  border: 1px solid rgba(226, 216, 206, 0.9);
  border-radius: 18px;
  background: rgba(255, 253, 251, 0.86);
  color: inherit;
  padding: 10px;
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(39, 31, 25, 0.05);
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.as-public-service-card:hover,
.as-public-service-card:focus-visible {
  border-color: rgba(157, 123, 98, 0.46);
  box-shadow: 0 14px 30px rgba(39, 31, 25, 0.075);
  transform: translateY(-1px);
}

.as-public-service-card img {
  border-radius: 14px;
  min-height: 0;
}

.as-public-service-card h3,
.as-public-service-card p,
.as-public-service-card strong,
.as-public-service-card span {
  margin-inline: 6px;
}

.as-public-service-card p {
  margin-block: 0;
  font-size: 14px;
}

.as-public-service-card strong {
  display: block;
  border-top: 1px solid rgba(226, 216, 206, 0.72);
  color: var(--as-black);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.07em;
  padding-top: 10px;
  text-transform: uppercase;
}

.as-public-service-card--featured {
  background: #f6efe8;
}

.as-public-mini-cards,
.as-public-path-grid,
.as-public-value-grid,
.as-public-timeline {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.as-public-mini-cards article,
.as-public-path-grid article,
.as-public-value-grid article,
.as-public-timeline article,
.as-public-choice-card {
  display: grid;
  align-content: start;
  gap: 12px;
  border: 1px solid rgba(226, 216, 206, 0.9);
  border-radius: 18px;
  background: rgba(255, 253, 251, 0.78);
  padding: clamp(14px, 1.8vw, 20px);
  box-shadow: 0 8px 22px rgba(39, 31, 25, 0.045);
}

.as-public-mini-cards a {
  color: var(--as-black);
  font-size: 13px;
  font-weight: 650;
  letter-spacing: 0.06em;
  text-decoration: none;
  text-transform: uppercase;
}

.as-public-path-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.as-public-split {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(280px, 0.75fr);
  gap: clamp(18px, 4vw, 56px);
  align-items: stretch;
}

.as-public-split > div:first-child {
  display: grid;
  align-content: center;
  gap: 16px;
}

.as-public-split--media {
  grid-template-columns: minmax(0, 0.95fr) minmax(340px, 0.95fr);
}

.as-public-split--media img {
  aspect-ratio: 4 / 5;
  max-height: 460px;
  border-radius: 22px;
  box-shadow: 0 16px 36px rgba(39, 31, 25, 0.08);
}

.as-public-education {
  display: grid;
  grid-template-columns: minmax(260px, 0.7fr) minmax(0, 1fr);
  gap: 28px;
  border-radius: 22px;
  background: var(--as-black);
  padding: clamp(18px, 2.6vw, 28px);
}

.as-public-education h3,
.as-public-education p,
.as-public-education li {
  color: #fff;
}

.as-public-education ul {
  display: grid;
  gap: 10px;
  margin: 0;
  padding-left: 20px;
}

.as-public-faq {
  display: grid;
  gap: 10px;
}

.as-public-faq details {
  border: 1px solid rgba(226, 216, 206, 0.95);
  border-radius: 18px;
  background: rgba(255, 253, 251, 0.84);
  padding: 0 18px;
}

.as-public-faq summary {
  cursor: pointer;
  padding: 18px 0;
  color: var(--as-black);
  font-weight: 900;
}

.as-public-faq p {
  margin-top: 0;
  font-size: 14px;
}

.as-public-cta-band,
.as-public-contact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-radius: 22px;
  background: #efe4d9;
  padding: clamp(18px, 2.5vw, 28px);
}

.as-public-cta-band h3 {
  max-width: 720px;
  font-family: var(--as-current-site-font);
  font-size: clamp(24px, 2.5vw, 34px);
  font-weight: 300;
  line-height: 1.12;
}

.as-public-about {
  border-radius: 34px;
  background: rgba(255, 253, 251, 0.58);
  padding-inline: clamp(18px, 4vw, 48px);
}

.as-public-contact {
  border-top: 0;
}

.as-public-contact h2 {
  font-size: clamp(30px, 3.2vw, 44px);
}

.as-public-contact a:not(.as-button) {
  color: var(--as-black);
  font-weight: 700;
}

.as-public-contact__actions {
  display: grid;
  gap: 10px;
  min-width: min(100%, 260px);
}

.as-public-portal-heading {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding: clamp(20px, 4vw, 36px);
  border-radius: 24px;
  background: rgba(255, 253, 251, 0.72);
}

.as-public-portal-heading h2 {
  font-size: clamp(30px, 3.8vw, 48px);
}

.as-public-gift-card {
  grid-template-columns: minmax(0, 0.9fr) minmax(300px, 0.58fr);
  align-items: center;
  gap: clamp(18px, 4vw, 50px);
  border-radius: 22px;
  background:
    radial-gradient(circle at 15% 10%, rgba(255, 255, 255, 0.72), transparent 24rem),
    #efe4d9;
  padding: clamp(20px, 3.2vw, 36px);
}

.as-public-gift-card h2 {
  max-width: 13ch;
}

.as-public-gift-card__panel {
  display: grid;
  gap: 12px;
  border: 1px solid rgba(255, 253, 251, 0.7);
  border-radius: 22px;
  background: rgba(255, 253, 251, 0.82);
  padding: clamp(16px, 2.4vw, 24px);
  box-shadow: 0 12px 30px rgba(39, 31, 25, 0.075);
}

.as-public-gift-card__panel span {
  color: var(--as-focus);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.as-public-gift-card__panel strong {
  color: var(--as-black);
  font-family: var(--as-current-site-font);
  font-size: clamp(22px, 2vw, 28px);
  font-weight: 300;
  line-height: 1.05;
}

.as-public-sticky-cta {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 45;
  display: none;
  border-radius: 999px;
  background: var(--as-black);
  color: #fff;
  padding: 10px 14px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-decoration: none;
  text-transform: uppercase;
  box-shadow: 0 10px 24px rgba(34, 27, 22, 0.18);
}

body.as-service-page {
  min-height: 100vh;
}

body.as-service-page main {
  width: min(1240px, calc(100% - 32px));
}

.as-service-hero,
.as-service-section,
.as-service-cta,
.as-service-related {
  scroll-margin-top: 90px;
}

.as-service-hero {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(340px, 0.88fr);
  gap: clamp(22px, 4vw, 58px);
  align-items: center;
  min-height: min(680px, calc(100dvh - 82px));
  padding: clamp(34px, 5vw, 68px) 0 clamp(26px, 4vw, 56px);
}

.as-service-hero__copy {
  display: grid;
  gap: 18px;
}

.as-service-hero h1,
.as-service-section h2,
.as-service-cta h2,
.as-service-related h2 {
  margin: 0;
  color: var(--as-black);
  font-family: var(--as-current-site-font);
  font-weight: 300;
  letter-spacing: 0;
}

.as-service-hero h1 {
  max-width: 13.5ch;
  font-size: clamp(42px, 5vw, 72px);
  line-height: 1.06;
}

.as-service-hero__lede {
  max-width: 670px;
  margin: 0;
  color: var(--as-muted);
  font-size: clamp(16px, 1.3vw, 20px);
  line-height: 1.62;
}

.as-service-hero__actions,
.as-service-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.as-service-hero__media {
  position: relative;
  min-height: clamp(360px, 38vw, 520px);
  overflow: hidden;
  border-radius: 30px;
  background: var(--as-cream);
  box-shadow: 0 16px 38px rgba(39, 31, 25, 0.09);
}

.as-service-hero__media img,
.as-service-gallery img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.as-service-hero__media img {
  position: absolute;
  inset: 0;
}

.as-service-hero__note {
  position: absolute;
  right: 14px;
  bottom: 14px;
  left: 14px;
  display: grid;
  gap: 8px;
  border: 1px solid rgba(255, 255, 255, 0.58);
  border-radius: 22px;
  background: rgba(255, 253, 251, 0.88);
  padding: 14px;
  backdrop-filter: blur(14px);
}

.as-service-hero__note span,
.as-service-path a,
.as-service-card span,
.as-service-option span,
.as-service-step span,
.as-service-proof span {
  color: var(--as-focus);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.as-service-hero__note strong {
  color: var(--as-black);
  font-family: var(--as-current-site-font);
  font-size: clamp(20px, 2.2vw, 30px);
  font-weight: 300;
  line-height: 1.1;
}

.as-service-path {
  position: sticky;
  top: calc(var(--header-height, 150px) + 28px);
  z-index: 8;
  display: flex;
  gap: 8px;
  overflow-x: auto;
  border-block: 1px solid rgba(226, 216, 206, 0.78);
  background: rgba(255, 253, 251, 0.9);
  padding: 10px 0;
  scrollbar-width: none;
  backdrop-filter: blur(16px);
}

.as-service-path::-webkit-scrollbar {
  display: none;
}

.as-service-path a {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  border: 1px solid rgba(226, 216, 206, 0.88);
  border-radius: 999px;
  background: rgba(255, 253, 251, 0.82);
  color: var(--as-ink);
  padding: 8px 12px;
  text-decoration: none;
  white-space: nowrap;
}

.as-service-section {
  display: grid;
  gap: clamp(18px, 2.5vw, 34px);
  padding: clamp(36px, 5vw, 72px) 0;
  border-top: 1px solid rgba(226, 216, 206, 0.72);
}

.as-service-section__heading {
  display: grid;
  gap: 12px;
  max-width: 850px;
}

.as-service-section h2,
.as-service-cta h2,
.as-service-related h2 {
  max-width: 16ch;
  font-size: clamp(30px, 3.6vw, 50px);
  line-height: 1.08;
}

.as-service-section p,
.as-service-section li,
.as-service-related p,
.as-service-cta p {
  color: var(--as-muted);
  font-size: clamp(15px, 1.08vw, 17px);
  line-height: 1.66;
}

.as-service-conversation {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1fr);
  gap: 14px;
}

.as-service-card,
.as-service-option,
.as-service-education,
.as-service-step,
.as-service-proof,
.as-service-related-card,
.as-service-faq details {
  border: 1px solid rgba(226, 216, 206, 0.9);
  border-radius: 20px;
  background: rgba(255, 253, 251, 0.78);
  box-shadow: 0 8px 22px rgba(39, 31, 25, 0.045);
}

.as-service-card,
.as-service-option,
.as-service-education,
.as-service-step,
.as-service-proof,
.as-service-related-card {
  display: grid;
  align-content: start;
  gap: 12px;
  padding: clamp(16px, 2vw, 22px);
}

.as-service-card--dark {
  background: var(--as-black);
}

.as-service-card--dark h3,
.as-service-card--dark p {
  color: #fff;
}

.as-service-card h3,
.as-service-option h3,
.as-service-education h3,
.as-service-step h3,
.as-service-proof h3,
.as-service-related-card h3 {
  margin: 0;
  color: var(--as-black);
  font-family: var(--as-current-site-font);
  font-size: clamp(19px, 1.55vw, 25px);
  font-weight: 500;
  line-height: 1.16;
}

.as-service-grid,
.as-service-options,
.as-service-proof-grid,
.as-service-related-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.as-service-options {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.as-service-option--featured {
  background: #f6efe8;
  border-color: rgba(157, 123, 98, 0.34);
}

.as-service-education-wrap {
  display: grid;
  grid-template-columns: minmax(270px, 0.75fr) minmax(0, 1fr);
  gap: 14px;
}

.as-service-education {
  background:
    radial-gradient(circle at 12% 12%, rgba(255, 255, 255, 0.74), transparent 21rem),
    #efe4d9;
}

.as-service-education ul {
  display: grid;
  gap: 10px;
  margin: 0;
  padding-left: 20px;
}

.as-service-timeline {
  display: grid;
  gap: 12px;
}

.as-service-step {
  grid-template-columns: 68px minmax(0, 1fr);
  align-items: start;
}

.as-service-step span {
  color: var(--as-black);
  font-size: clamp(28px, 4vw, 48px);
  font-weight: 300;
  letter-spacing: 0;
  line-height: 0.95;
}

.as-service-gallery {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 14px;
}

.as-service-gallery figure {
  position: relative;
  min-height: 320px;
  margin: 0;
  overflow: hidden;
  border-radius: 24px;
  background: var(--as-cream);
}

.as-service-gallery figure:first-child {
  min-height: 460px;
}

.as-service-gallery figcaption {
  position: absolute;
  right: 12px;
  bottom: 12px;
  left: 12px;
  border-radius: 999px;
  background: rgba(255, 253, 251, 0.86);
  color: var(--as-black);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 9px 12px;
  text-transform: uppercase;
  backdrop-filter: blur(12px);
}

.as-service-faq {
  display: grid;
  gap: 10px;
}

.as-service-faq details {
  padding: 0 18px;
}

.as-service-faq summary {
  cursor: pointer;
  padding: 18px 0;
  color: var(--as-black);
  font-weight: 650;
}

.as-service-faq p {
  margin-top: 0;
  font-size: 14px;
}

.as-service-cta,
.as-service-related {
  display: grid;
  gap: 18px;
  margin: clamp(28px, 5vw, 58px) 0;
  border-radius: 26px;
  background: #efe4d9;
  padding: clamp(20px, 3vw, 34px);
}

.as-service-cta {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.as-service-related {
  background: rgba(255, 253, 251, 0.68);
}

.as-service-related-card {
  color: inherit;
  text-decoration: none;
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.as-service-related-card:hover,
.as-service-related-card:focus-visible {
  border-color: rgba(157, 123, 98, 0.46);
  box-shadow: 0 14px 30px rgba(39, 31, 25, 0.075);
  transform: translateY(-1px);
}

.as-service-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px;
  padding: 24px 0 40px;
  color: var(--as-muted);
  font-size: 13px;
}

.as-service-footer a {
  color: var(--as-black);
  font-weight: 650;
  text-decoration: none;
}

.as-reveal {
  opacity: 0;
  transform: translateY(14px);
  transition:
    opacity 520ms ease var(--as-reveal-delay, 0ms),
    transform 520ms cubic-bezier(0.16, 1, 0.3, 1) var(--as-reveal-delay, 0ms);
}

.as-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

body.as-client-signed-in .as-header,
body.as-mode-staff.as-staff-signed-in .as-header {
  gap: 12px;
  padding: 7px clamp(12px, 3vw, 30px);
}

body.as-client-signed-in .as-logo img,
body.as-mode-staff.as-staff-signed-in .as-logo img {
  width: clamp(92px, 10vw, 132px);
}

body.as-client-signed-in .as-header-auth,
body.as-mode-staff.as-staff-signed-in .as-header-auth {
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  min-width: 0;
}

body.as-client-signed-in .as-header-auth__menu,
body.as-mode-staff.as-staff-signed-in .as-header-auth__menu {
  flex-flow: row wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
}

body.as-client-signed-in .as-nav,
body.as-mode-staff.as-staff-signed-in .as-nav {
  gap: 2px;
  padding: 3px;
}

body.as-client-signed-in .as-nav__button,
body.as-mode-staff.as-staff-signed-in .as-nav__button {
  padding: 7px 10px;
  font-size: 12px;
}

body.as-client-signed-in .as-auth-toggle,
body.as-mode-staff.as-staff-signed-in .as-auth-toggle {
  padding: 8px 12px;
  font-size: 12px;
}

body.as-client-signed-in .as-staff-session--header,
body.as-mode-staff.as-staff-signed-in .as-staff-session--header {
  max-width: min(300px, 34vw);
  gap: 8px;
  padding: 6px 6px 6px 12px;
  box-shadow: 0 8px 20px rgba(34, 27, 22, 0.07);
}

body.as-client-signed-in .as-staff-session--header span,
body.as-mode-staff.as-staff-signed-in .as-staff-session--header span {
  min-width: 0;
  overflow: hidden;
  color: var(--as-ink);
  font-size: 12px;
  line-height: 1.15;
  text-overflow: ellipsis;
}

body.as-client-signed-in .as-staff-session--header .as-button,
body.as-mode-staff.as-staff-signed-in .as-staff-session--header .as-button {
  padding: 7px 10px;
  font-size: 12px;
}

.as-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
  gap: clamp(24px, 6vw, 72px);
  align-items: end;
  padding: clamp(38px, 7vw, 76px) 0 clamp(30px, 6vw, 62px);
}

.as-kicker {
  margin: 0 0 10px;
  color: var(--as-focus);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

h1,
h2,
h3 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  color: var(--as-black);
  font-weight: 500;
  letter-spacing: 0;
}

h1 {
  max-width: 900px;
  font-size: clamp(34px, 6vw, 68px);
  line-height: 0.98;
}

h2 {
  font-size: clamp(28px, 4.6vw, 52px);
  line-height: 1;
}

h3 {
  font-size: clamp(24px, 2.6vw, 34px);
  line-height: 1;
}

p {
  color: var(--as-muted);
  font-size: 16px;
  line-height: 1.7;
}

.as-hero p {
  max-width: 720px;
}

.as-hero__card,
.as-card {
  border: 1px solid rgba(226, 216, 206, 0.86);
  border-radius: var(--as-radius);
  background: rgba(255, 253, 251, 0.92);
  box-shadow: var(--as-shadow);
}

.as-hero__card {
  display: grid;
  gap: 8px;
  padding: 28px;
}

.as-hero__card span,
.as-hero__card small {
  color: var(--as-muted);
}

.as-hero__card strong {
  color: var(--as-black);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 30px;
  font-weight: 500;
  line-height: 1;
}

.as-mode {
  display: none;
  padding: 0 0 82px;
}

.as-mode.is-active {
  display: block;
}

body.as-client-signed-in .as-hero,
body.as-mode-staff.as-staff-signed-in .as-hero,
body.as-mode-staff.as-chart-selected .as-hero,
body.as-client-signed-in .as-client-private-content > .as-section-heading,
body.as-mode-staff.as-staff-signed-in #staff-mode > .as-section-heading,
body.as-mode-staff.as-chart-selected #staff-mode > .as-section-heading,
body.as-mode-staff.as-chart-selected #staff-mode > .as-staff-access-panel,
body.as-mode-staff.as-chart-selected #staff-mode > .as-staff-password-card,
body.as-mode-staff.as-chart-selected #staff-mode > .as-staff-manager-card,
body.as-mode-staff.as-staff-signed-in #staff-mode > .as-staff-password-card {
  display: none;
}

body.as-client-signed-in #client-mode,
body.as-mode-staff.as-staff-signed-in #staff-mode,
body.as-mode-staff.as-chart-selected #staff-mode {
  padding-top: clamp(14px, 2vw, 24px);
}

body.as-mode-staff.as-password-panel-open #staff-mode > .as-staff-password-card {
  display: grid;
}

.as-dev-only {
  display: none !important;
}

.as-section-heading {
  display: grid;
  gap: 12px;
  max-width: 780px;
  margin: 0 0 28px;
}

.as-client-login {
  display: grid;
  grid-template-columns: minmax(190px, 0.7fr) minmax(0, 0.95fr) minmax(260px, 0.75fr);
  gap: clamp(18px, 4vw, 42px);
  align-items: center;
  margin-bottom: 28px;
}

.as-client-login__image {
  position: relative;
  display: grid;
  place-items: center;
  overflow: hidden;
  min-height: 260px;
  border-radius: 26px;
  border: 1px solid rgba(226, 216, 206, 0.72);
  background:
    radial-gradient(circle at 78% 22%, rgba(154, 126, 104, 0.12), transparent 32%),
    linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(244, 239, 234, 0.78));
}

.as-client-login__image::before,
.as-client-login__image::after {
  position: absolute;
  content: "";
  pointer-events: none;
}

.as-client-login__image::before {
  inset: 26px;
  border: 1px solid rgba(226, 216, 206, 0.72);
  border-radius: 22px;
}

.as-client-login__image::after {
  width: 68%;
  height: 18px;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, rgba(95, 113, 76, 0.18), transparent);
  transform: rotate(-8deg);
}

.as-client-login__image img {
  position: relative;
  z-index: 1;
  display: block;
  width: min(82%, 340px);
  height: auto;
  min-height: 0;
  object-fit: contain;
}

.as-client-login__copy p {
  max-width: 340px;
}

.as-verification-panel {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--as-line);
  border-radius: 20px;
  background: var(--as-cream);
}

.as-client-private-content {
  display: grid;
  gap: 16px;
}

.as-appointment-panel {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  align-items: start;
  margin: 0;
  border: 1px solid rgba(226, 216, 206, 0.86);
  border-radius: var(--as-radius);
  background: rgba(255, 253, 251, 0.92);
  box-shadow: var(--as-shadow);
  padding: clamp(16px, 2vw, 24px);
}

.as-appointment-panel p {
  margin: 6px 0 0;
}

.as-appointment-panel h3 {
  font-size: clamp(24px, 2.1vw, 36px);
}

.as-client-appointment-list {
  display: grid;
  gap: 10px;
  margin-top: 16px;
}

.as-client-appointment-list[hidden] {
  display: none;
}

.as-client-appointment-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: start;
  padding: 13px 14px;
  border: 1px solid rgba(226, 216, 206, 0.92);
  border-radius: 18px;
  background: rgba(250, 247, 242, 0.72);
}

.as-client-appointment-item.is-managing {
  background: rgba(255, 253, 251, 0.94);
  border-color: rgba(164, 128, 102, 0.38);
}

.as-client-appointment-item__main {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 3px 10px;
  align-items: baseline;
}

.as-client-appointment-item__number {
  color: var(--as-muted);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.as-client-appointment-item strong {
  min-width: 0;
  font-size: 1rem;
  line-height: 1.2;
}

.as-client-appointment-item small {
  grid-column: 2;
  color: var(--as-muted);
  font-size: 0.9rem;
  line-height: 1.45;
}

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

.as-client-appointment-item__actions .as-button {
  min-height: 42px;
  padding-inline: 16px;
}

.as-client-appointment-manage {
  grid-column: 1 / -1;
  display: grid;
  gap: 14px;
  margin-top: 2px;
  padding: 16px;
  border-top: 1px solid rgba(226, 216, 206, 0.9);
  border-radius: 14px;
  background: rgba(246, 241, 235, 0.68);
  animation: as-panel-enter 180ms ease;
}

.as-client-appointment-manage__header {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  justify-content: space-between;
}

.as-client-appointment-manage__header strong {
  font-size: 0.95rem;
}

.as-client-appointment-manage__header small,
.as-client-appointment-manage__note {
  color: var(--as-muted);
  font-size: 0.84rem;
  line-height: 1.45;
}

.as-client-appointment-manage__details {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
  padding: 0;
}

.as-client-appointment-manage__details dt {
  color: var(--as-muted);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.as-client-appointment-manage__details dd {
  margin: 4px 0 0;
  font-size: 0.94rem;
  line-height: 1.35;
}

.as-client-appointment-manage__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.as-client-appointment-manage__actions .as-button {
  min-height: 40px;
  padding-inline: 14px;
}

.as-client-appointment-manage__note {
  margin: 0;
}

.as-appointment-panel__side {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  margin-left: 0;
  padding: 12px;
  border: 1px solid rgba(226, 216, 206, 0.78);
  border-radius: 18px;
  background: rgba(250, 247, 242, 0.72);
}

.as-appointment-panel__side .as-status-pill {
  justify-self: start;
}

.as-appointment-panel__side .as-button {
  width: auto;
  min-height: 44px;
}

.as-icon-button {
  display: inline-grid;
  place-items: center;
  width: 36px;
  min-width: 36px;
  height: 36px;
  border: 1px solid rgba(226, 216, 206, 0.92);
  border-radius: 999px;
  background: rgba(255, 253, 251, 0.92);
  color: var(--as-ink);
  cursor: pointer;
  font: inherit;
  font-size: 1.25rem;
  font-weight: 800;
  line-height: 1;
}

.as-icon-button:hover,
.as-icon-button:focus-visible {
  border-color: rgba(20, 16, 14, 0.72);
  outline: none;
}

@keyframes as-panel-enter {
  from {
    opacity: 0;
    transform: translateY(6px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.as-client-start-card {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: center;
  padding: clamp(16px, 2vw, 24px);
}

.as-client-history-card {
  padding: clamp(16px, 2vw, 24px);
}

.as-client-start-card p {
  max-width: 600px;
  margin-bottom: 0;
}

.as-intake-shell {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}

.as-intake-workspace-bar {
  align-items: center;
  border-block: 1px solid var(--as-line);
  display: flex;
  gap: 24px;
  grid-column: 1 / -1;
  justify-content: space-between;
  padding: 16px 0;
}

.as-intake-workspace-bar .as-kicker {
  margin: 0 0 4px;
}

.as-intake-workspace-bar strong {
  font-family: var(--as-serif);
  font-size: clamp(22px, 2vw, 30px);
  font-weight: 500;
}

.as-intake-workspace-bar__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.as-intake-workspace-bar__actions .as-button {
  min-width: 142px;
}

.as-progress {
  position: sticky;
  top: 110px;
  display: grid;
  gap: 10px;
}

.as-step {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  border: 1px solid var(--as-line);
  border-radius: 18px;
  background: rgba(255, 253, 251, 0.72);
  color: var(--as-muted);
  padding: 14px;
  text-align: left;
}

.as-step span {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  background: var(--as-cream);
  color: var(--as-focus);
  font-size: 12px;
  font-weight: 800;
}

.as-step.is-active {
  border-color: var(--as-black);
  background: var(--as-black);
  color: #fff;
}

.as-card {
  padding: clamp(20px, 3vw, 34px);
}

.as-form-step {
  display: none;
  animation: asFade 220ms ease;
}

.as-form-step.is-active {
  display: grid;
  gap: 24px;
  padding-top: 4px;
}

.as-intake {
  border-color: rgba(205, 188, 174, 0.9);
  background:
    linear-gradient(180deg, rgba(255, 253, 251, 0.98), rgba(248, 243, 238, 0.74)),
    var(--as-white);
}

.as-form-step > .as-kicker {
  width: fit-content;
  border-bottom: 1px solid var(--as-focus);
  padding-bottom: 6px;
}

.as-form-step > h3 {
  font-size: clamp(32px, 4.6vw, 48px);
}

.as-form-step > h3::after {
  display: block;
  width: min(360px, 100%);
  height: 1px;
  margin-top: 16px;
  background: var(--as-line);
  content: "";
}

@keyframes asFade {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

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

label,
fieldset {
  display: grid;
  gap: 8px;
  color: var(--as-ink);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.as-step-note {
  max-width: 680px;
  margin: 0;
}

.as-question-stack {
  display: grid;
  gap: 14px;
}

.as-question {
  display: grid;
  gap: 14px;
  border: 1px solid var(--as-line);
  border-radius: 22px;
  background: rgba(255, 253, 251, 0.72);
  padding: 16px;
}

.as-question__top {
  display: grid;
  gap: 5px;
}

.as-question__top span {
  color: var(--as-black);
  font-weight: 850;
}

.as-question__top small {
  color: var(--as-muted);
  font-weight: 600;
  line-height: 1.5;
}

.as-choice-group {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.as-choice {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: auto;
  border: 1px solid var(--as-line);
  border-radius: 999px;
  background: #fff;
  padding: 10px 13px;
  color: var(--as-ink);
  font-weight: 800;
}

.as-choice input {
  width: auto;
  margin: 0;
  accent-color: var(--as-black);
}

.as-conditional-field {
  display: none;
}

.as-conditional-field.is-visible {
  display: grid;
}

.as-service-module {
  gap: 16px;
  border: 1px solid var(--as-line);
  border-radius: 26px;
  background: rgba(255, 253, 251, 0.82);
  padding: 18px;
}

.as-module-heading {
  display: grid;
  gap: 3px;
}

.as-module-heading h4 {
  margin: 0;
  color: var(--as-black);
  font-family: var(--as-serif);
  font-size: clamp(28px, 4vw, 42px);
  font-weight: 500;
  line-height: 0.95;
}

.as-service-checks label {
  min-height: 54px;
}

.as-concern-upload {
  gap: 14px;
}

.as-mobile-upload-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

fieldset {
  border: 1px solid var(--as-line);
  border-radius: 22px;
  background: rgba(244, 239, 234, 0.68);
  padding: 18px;
}

legend {
  padding: 0 10px;
  color: var(--as-black);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

input,
select,
textarea {
  width: 100%;
  border: 1px solid var(--as-line);
  border-radius: 16px;
  background: #fff;
  color: var(--as-black);
  padding: 13px 14px;
  outline: none;
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

textarea {
  resize: vertical;
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--as-focus);
  box-shadow: 0 0 0 4px rgba(157, 123, 98, 0.14);
}

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

.as-checks label,
.as-consent-list label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  border: 1px solid var(--as-line);
  border-radius: 16px;
  background: var(--as-white);
  padding: 12px;
  color: var(--as-ink);
  font-weight: 700;
  line-height: 1.4;
}

.as-checks input,
.as-consent-list input {
  width: auto;
  margin-top: 2px;
  accent-color: var(--as-black);
}

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

.as-checks label.as-conditional-field,
.as-consent-list label.as-conditional-field {
  display: none;
}

.as-checks label.as-conditional-field.is-visible,
.as-consent-list label.as-conditional-field.is-visible {
  display: flex;
}

.as-done-card {
  display: grid;
  gap: 4px;
  border-radius: 22px;
  background: var(--as-cream);
  padding: 20px;
}

.as-done-card span {
  color: var(--as-muted);
}

.as-form-actions {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid var(--as-line);
}

.as-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--as-black);
  border-radius: 999px;
  background: var(--as-black);
  color: #fff;
  padding: 12px 18px;
  font-weight: 800;
  text-decoration: none;
}

.as-button--ghost {
  border-color: var(--as-line);
  background: #fff;
  color: var(--as-black);
}

.as-button--danger {
  border-color: #d8b7a8;
  color: #8c3b2f;
}

.as-button:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

.as-button--dark {
  background: var(--as-charcoal);
  color: #fff;
}

.as-sample-chart-open {
  width: 100%;
  margin: 0 0 12px;
}

.as-staff-layout {
  display: grid;
  grid-template-columns: 220px 300px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}

.as-staff-layout > .as-client-summary { grid-column: 2; }
.as-staff-layout > .as-staff-main { grid-column: 3; }
.as-staff-layout > .as-staff-dashboard-v2 { grid-column: 2 / -1; }

@media (max-width: 1100px) {
  .as-staff-layout { grid-template-columns: 300px minmax(0, 1fr); }
  .as-staff-layout > .as-client-summary { grid-column: 1; }
  .as-staff-layout > .as-staff-main { grid-column: 2; }
  .as-staff-layout > .as-staff-dashboard-v2 { grid-column: 1 / -1; }
}

#staff-mode {
  position: relative;
  left: 50%;
  width: min(1680px, calc(100vw - 28px));
  transform: translateX(-50%);
}

body.as-mode-staff.as-staff-signed-in #staff-mode,
body.as-mode-staff.as-chart-selected #staff-mode {
  left: auto;
  width: 100%;
  transform: none;
}

#staff-workspace .as-card {
  border-radius: 28px;
  box-shadow: 0 18px 48px rgba(42, 34, 28, 0.09);
  padding: clamp(14px, 1.35vw, 20px);
}

#staff-workspace .as-card h3 {
  font-size: clamp(22px, 1.55vw, 30px);
  line-height: 0.98;
}

#staff-workspace .as-kicker {
  margin-bottom: 7px;
  font-size: 10px;
  letter-spacing: 0.22em;
}

#staff-workspace label {
  font-size: 13px;
}

#staff-workspace input,
#staff-workspace select,
#staff-workspace textarea {
  border-radius: 14px;
  padding: 10px 12px;
  font-size: 14px;
}

#staff-workspace textarea {
  min-height: 72px;
}

#staff-workspace .as-grid {
  gap: 10px;
}

#staff-workspace .as-button {
  min-height: 40px;
  padding: 9px 14px;
  font-size: 14px;
}

#staff-workspace .as-form-actions {
  align-items: center;
  margin-top: 12px;
  padding-top: 12px;
}

#staff-workspace .as-form-actions .as-search-status {
  margin: 0;
}

#staff-workspace .as-photo-grid {
  grid-template-columns: minmax(170px, 240px) minmax(0, 1fr);
  gap: 12px;
}

#staff-workspace .as-photos-card.as-staff-task-card.is-open {
  width: min(1500px, calc(100vw - 32px));
  height: calc(100dvh - 48px);
  max-height: calc(100dvh - 48px);
  grid-template-rows: auto minmax(0, 1fr);
  align-content: start;
  overflow: hidden;
}

#staff-workspace .as-photos-card.as-staff-task-card.is-open .as-card__header {
  align-items: flex-start;
  margin-bottom: 10px;
}

#staff-workspace .as-photos-card.as-staff-task-card.is-open .as-photo-grid {
  min-height: 0;
}

#staff-workspace .as-upload {
  min-height: 150px;
  border-radius: 18px;
}

#staff-workspace .as-upload span {
  font-size: 22px;
  line-height: 1.05;
}

#staff-workspace .as-upload small {
  font-size: 12px;
}

#staff-workspace .as-photo-preview {
  gap: 10px;
}

#staff-workspace .as-photos-card.as-staff-task-card.is-open .as-photo-preview {
  align-content: start;
  max-height: 100%;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-right: 6px;
  scrollbar-gutter: stable;
}

#staff-workspace .as-photo-preview img,
#staff-workspace .as-placeholder {
  min-height: 118px;
  border-radius: 16px;
  padding: 16px;
}

#staff-mode .as-section-heading {
  max-width: 680px;
  margin-bottom: 20px;
}

#staff-mode .as-section-heading h2 {
  font-size: clamp(34px, 3.8vw, 56px);
}

.as-client-summary {
  position: sticky;
  top: 110px;
  min-width: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  display: grid;
  grid-template-rows: auto auto auto auto minmax(210px, 1fr) auto;
  max-height: calc(100dvh - 112px);
  scrollbar-gutter: stable;
}

.as-client-summary h3 {
  overflow-wrap: anywhere;
}

.as-client-flow-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

@media (min-width: 920px) {
  .as-client-history-card .as-intake-browser {
    display: grid;
    grid-template-columns: minmax(260px, 0.34fr) minmax(0, 1fr);
    gap: 18px;
    align-items: start;
  }

  .as-client-history-card .as-intake-browser__header {
    grid-column: 1 / -1;
    margin-bottom: 0;
  }

  .as-client-history-card .as-intake-list {
    max-height: min(520px, 58dvh);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-right: 6px;
    scrollbar-gutter: stable;
  }

  .as-client-history-card .as-intake-summary {
    min-width: 0;
  }
}

.as-login-card {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(280px, 0.65fr);
  gap: 24px;
  align-items: end;
  margin-bottom: 24px;
}

.as-login-card.as-login-card--header {
  grid-template-columns: 1fr;
  align-items: stretch;
  gap: 16px;
  width: min(420px, calc(100vw - 32px));
  max-height: calc(100vh - 112px);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 20px;
}

.as-login-card--header h3 {
  font-size: clamp(24px, 3vw, 34px);
  line-height: 0.98;
}

.as-login-card--header .as-search-status {
  max-width: none;
  margin-top: 8px;
}

.as-login-card--header .as-login-form {
  gap: 10px;
}

.as-login-card--header input {
  min-height: 46px;
  padding-block: 10px;
}

.as-login-form {
  display: grid;
  gap: 12px;
}

.as-staff-session {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  margin-bottom: 18px;
  border: 1px solid var(--as-line);
  border-radius: 999px;
  background: var(--as-white);
  padding: 10px 12px 10px 18px;
  box-shadow: var(--as-shadow);
}

.as-staff-session span {
  color: var(--as-ink);
  font-size: 14px;
  font-weight: 800;
}

.as-staff-session--header {
  margin: 0;
  max-width: min(420px, 36vw);
  padding: 8px 8px 8px 16px;
  box-shadow: 0 10px 28px rgba(34, 27, 22, 0.08);
}

.as-staff-session--header .as-button {
  padding: 9px 14px;
}

.as-search-form {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}

.as-search-status {
  margin: 10px 0 0;
  font-size: 14px;
  line-height: 1.45;
}

.as-search-results {
  display: grid;
  align-content: start;
  gap: 8px;
  margin-top: 12px;
  min-width: 0;
  min-height: 0;
  max-height: none;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-right: 6px;
  scrollbar-gutter: stable;
}

.as-result-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 5px;
  align-items: start;
  min-width: 0;
  width: 100%;
  border: 1px solid var(--as-line);
  border-radius: 16px;
  background: var(--as-white);
  color: var(--as-ink);
  padding: 11px 12px;
  text-align: left;
  overflow-wrap: anywhere;
}

.as-result-card:hover,
.as-result-card:focus,
.as-result-card.is-active {
  border-color: var(--as-focus);
  box-shadow: 0 0 0 4px rgba(157, 123, 98, 0.12);
}

.as-result-card.is-active {
  background:
    linear-gradient(180deg, rgba(244, 239, 234, 0.72), rgba(255, 253, 251, 0.94)),
    var(--as-white);
}

.as-result-card strong {
  grid-column: 1;
  color: var(--as-black);
  font-size: 15px;
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.as-result-card small {
  grid-column: 1;
  color: var(--as-muted);
  font-size: 12px;
  line-height: 1.3;
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.as-result-pill {
  grid-column: 2;
  grid-row: 1 / span 3;
  align-self: start;
  width: fit-content;
  max-width: 112px;
  border-radius: 999px;
  background: var(--as-cream);
  color: var(--as-focus);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.08em;
  line-height: 1;
  padding: 6px 9px;
  text-align: center;
  text-transform: uppercase;
  white-space: normal;
}

.as-chart-summary {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--as-line);
  min-width: 0;
  overflow-wrap: anywhere;
}

.as-chart-summary__top {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: flex-start;
}

.as-chart-summary__top h3 {
  font-size: clamp(22px, 1.9vw, 30px);
}

.as-chart-intake-detail {
  margin: 0 0 18px;
  min-height: 0;
}

.as-intake-summary {
  display: grid;
  gap: 20px;
  padding: 18px;
  border: 1px solid rgba(205, 188, 174, 0.9);
  border-radius: 24px;
  background:
    linear-gradient(180deg, rgba(255, 253, 251, 0.74), rgba(244, 239, 234, 0.96)),
    var(--as-cream);
}

.as-intake-browser {
  display: grid;
  gap: 14px;
}

.as-intake-browser__header,
.as-intake-summary__header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
}

.as-intake-browser h4,
.as-intake-summary h4 {
  margin: 4px 0 0;
  font-size: clamp(24px, 4vw, 34px);
}

.as-intake-summary__header {
  border-bottom: 1px solid rgba(157, 123, 98, 0.24);
  padding-bottom: 16px;
}

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

.as-intake-list__item {
  display: grid;
  gap: 5px;
  width: 100%;
  min-width: 0;
  border: 1px solid var(--as-line);
  border-radius: 18px;
  background: var(--as-white);
  color: var(--as-ink);
  padding: 13px;
  text-align: left;
  overflow-wrap: anywhere;
}

.as-intake-list__item:hover,
.as-intake-list__item:focus-visible,
.as-intake-list__item.is-active {
  border-color: var(--as-focus);
  box-shadow: 0 0 0 4px rgba(157, 123, 98, 0.12);
}

.as-intake-list__item span {
  color: var(--as-focus);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.as-intake-list__item strong {
  color: var(--as-black);
}

.as-intake-list__item small {
  color: var(--as-muted);
  line-height: 1.35;
}

.as-intake-summary__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.as-intake-summary__sections {
  display: grid;
  gap: 16px;
}

.as-intake-section {
  display: grid;
  gap: 12px;
  border: 1px solid rgba(226, 216, 206, 0.9);
  border-radius: 20px;
  background: rgba(255, 253, 251, 0.78);
  padding: 16px;
}

.as-intake-section h5 {
  margin: 0;
  color: var(--as-black);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.as-intake-summary dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
}

.as-intake-summary div {
  min-width: 0;
}

.as-intake-summary dt {
  color: var(--as-muted);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.as-intake-summary dd {
  margin: 4px 0 0;
  color: var(--as-black);
  font-family: Georgia, "Times New Roman", serif;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.as-client-summary dl,
.as-timeline {
  display: grid;
  gap: 8px;
  margin: 12px 0 0;
}

.as-client-summary dl > div,
.as-timeline article {
  border: 1px solid var(--as-line);
  border-radius: 16px;
  background: var(--as-white);
  padding: 10px 12px;
}

.as-client-summary dl {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.as-staff-tools {
  display: grid;
  gap: 8px;
  margin: 14px 0 18px;
  border-top: 1px solid var(--as-line);
  border-bottom: 1px solid var(--as-line);
  padding: 14px 0;
}

.as-staff-tools .as-button {
  width: 100%;
}

.as-staff-tools small {
  color: var(--as-muted);
  line-height: 1.35;
}

dt,
.as-timeline span {
  color: var(--as-focus);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

dd {
  margin: 4px 0 0;
  color: var(--as-black);
}

.as-staff-main {
  display: grid;
  gap: 18px;
  min-width: 0;
}

.as-staff-access-panel,
.as-staff-password-card,
.as-staff-manager-card {
  display: grid;
  gap: 18px;
  margin-bottom: 24px;
}

.as-staff-access-panel {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.as-password-form {
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  align-items: end;
}

.as-staff-manager-card .as-card__header p {
  margin-bottom: 0;
  max-width: 640px;
}

.as-staff-users-list {
  display: grid;
  gap: 12px;
}

.as-staff-user-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  border: 1px solid var(--as-line);
  border-radius: 20px;
  background: var(--as-white);
  padding: 14px;
}

.as-staff-user-card strong,
.as-staff-user-card small {
  display: block;
}

.as-staff-user-card strong {
  color: var(--as-black);
  font-weight: 900;
}

.as-staff-user-card small {
  margin-top: 4px;
  color: var(--as-muted);
  line-height: 1.45;
}

.as-staff-user-card__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.as-status-pill--active {
  background: #eef6ed;
  color: #3f6b3d;
}

.as-status-pill--disabled,
.as-status-pill--inactive,
.as-status-pill--blocked {
  background: #f8ece8;
  color: #994f3f;
}

.as-status-pill--pending,
.as-status-pill--pending-approval {
  background: var(--as-cream);
  color: var(--as-focus);
}

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

.as-calendar-card {
  display: grid;
  grid-template-rows: auto auto auto minmax(280px, 1fr);
  max-height: min(740px, calc(100dvh - 112px));
  overflow: visible;
}

.as-chart-card,
.as-visit-card,
.as-photos-card,
.as-legacy-card {
  min-height: 0;
  overflow: hidden;
}

.as-chart-card {
  display: grid;
  grid-template-rows: auto auto minmax(260px, 1fr) minmax(120px, 0.45fr);
  max-height: min(700px, calc(100dvh - 112px));
}

body.as-mode-staff.as-chart-selected .as-calendar-card {
  display: none;
}

body.as-mode-staff.as-chart-selected .as-chart-card {
  grid-template-rows: auto auto auto auto auto;
  min-height: auto;
  max-height: none;
  overflow: visible;
}

body.as-mode-staff.as-chart-selected .as-chart-card .as-chart-intake-detail,
body.as-mode-staff.as-chart-selected .as-chart-card .as-timeline {
  max-height: none;
  overflow: visible;
  padding-right: 0;
}

body.as-mode-staff.as-chart-selected .as-chart-intake-detail {
  margin-bottom: 22px;
}

body.as-mode-staff.as-chart-selected .as-intake-browser {
  gap: 12px;
}

body.as-mode-staff.as-chart-selected .as-intake-browser h4 {
  font-size: clamp(22px, 1.85vw, 30px);
  line-height: 0.98;
}

body.as-mode-staff.as-chart-selected .as-intake-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 10px;
}

body.as-mode-staff.as-chart-selected .as-intake-list__item {
  min-height: 74px;
  padding: 13px;
}

body.as-mode-staff.as-chart-selected .as-timeline {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 10px;
}

body.as-mode-staff.as-chart-selected .as-timeline article {
  min-height: 76px;
  padding: 13px 15px;
}

.as-chart-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: -2px 0 12px;
}

.as-chart-actions .as-button {
  min-width: 0;
  min-height: 34px;
  padding: 8px 11px;
  width: auto;
  white-space: nowrap;
}

.as-chart-section-heading,
.as-chart-detail-panel__header,
.as-timeline-card__top {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}

.as-chart-section-heading {
  margin-bottom: 10px;
}

.as-chart-section-heading h4,
.as-chart-detail-panel h4 {
  margin: 2px 0 0;
  color: var(--as-black);
  font-size: clamp(18px, 1.5vw, 22px);
  line-height: 1.1;
}

.as-chart-section-heading > span {
  border: 1px solid var(--as-line);
  border-radius: 999px;
  background: var(--as-cream);
  color: var(--as-focus);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.12em;
  padding: 6px 9px;
  text-transform: uppercase;
  white-space: nowrap;
}

.as-chart-attention,
.as-chart-history,
.as-chart-detail-panel {
  border: 1px solid rgba(226, 216, 206, 0.82);
  border-radius: 16px;
  background: rgba(255, 253, 251, 0.72);
  padding: 12px;
}

.as-attention-list {
  display: grid;
  gap: 8px;
}

.as-attention-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 10px;
  width: 100%;
  border: 1px solid rgba(157, 123, 98, 0.26);
  border-radius: 12px;
  background: #fffaf6;
  color: var(--as-ink);
  cursor: pointer;
  padding: 10px 11px;
  text-align: left;
}

.as-attention-item:hover,
.as-attention-item:focus-visible {
  border-color: var(--as-focus);
  box-shadow: 0 0 0 4px rgba(157, 123, 98, 0.12);
}

.as-attention-item span,
.as-timeline-card__top span {
  color: var(--as-focus);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.as-attention-item strong {
  grid-column: 1;
  color: var(--as-black);
  line-height: 1.15;
}

.as-attention-item small {
  grid-column: 1 / -1;
  color: var(--as-muted);
  line-height: 1.35;
}

.as-attention-item .as-workflow-badge {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: start;
}

.as-workflow-badge {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  border: 1px solid var(--as-line);
  border-radius: 999px;
  background: var(--as-white);
  color: var(--as-muted);
  font-size: 9px;
  font-style: normal;
  font-weight: 900;
  letter-spacing: 0.1em;
  line-height: 1.1;
  padding: 5px 8px;
  text-transform: uppercase;
}

.as-workflow-badge.is-attention {
  border-color: rgba(157, 123, 98, 0.42);
  background: #fff4e9;
  color: var(--as-focus);
}

.as-workflow-badge.is-complete {
  border-color: rgba(92, 126, 104, 0.36);
  background: #eef5ee;
  color: #3f7055;
}

.as-timeline-card {
  display: grid;
  gap: 6px;
  border-radius: 12px;
}

.as-chart-detail-panel {
  display: grid;
  gap: 12px;
}

.as-chart-detail-panel dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
}

.as-chart-detail-panel dl > div {
  min-width: 0;
  border: 1px solid var(--as-line);
  border-radius: 10px;
  background: var(--as-white);
  padding: 9px;
}

.as-panel-actions {
  display: flex;
  gap: 10px;
  align-items: center;
}

.as-panel-close {
  display: inline-flex;
  width: auto;
  height: 40px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0 13px;
  border: 1px solid var(--as-line);
  border-radius: 999px;
  background: #fff;
  color: var(--as-black);
  font-size: 0.76rem;
  font-weight: 800;
  line-height: 1.1;
}

.as-panel-close span[aria-hidden="true"] { font-size: 1rem; }

.as-panel-close:hover,
.as-panel-close:focus-visible {
  border-color: var(--as-focus);
  box-shadow: 0 0 0 4px rgba(157, 123, 98, 0.12);
  outline: 0;
}

.as-staff-task-card {
  display: none !important;
}

body.as-staff-panel-open {
  overflow: hidden;
}

body.as-staff-panel-open::before {
  position: fixed;
  inset: 0;
  z-index: 70;
  content: "";
  background: rgba(31, 27, 24, 0.38);
  backdrop-filter: blur(8px);
}

body.as-staff-panel-open #staff-mode {
  left: auto;
  width: 100%;
  transform: none;
}

#staff-workspace .as-staff-task-card.is-open {
  position: fixed;
  inset: 24px;
  z-index: 75;
  display: grid !important;
  width: min(1180px, calc(100vw - 32px));
  max-height: calc(100dvh - 48px);
  margin: auto;
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid rgba(226, 216, 206, 0.92);
  border-radius: 30px;
  background:
    linear-gradient(180deg, rgba(255, 253, 251, 0.98), rgba(248, 243, 238, 0.94)),
    var(--as-white);
  box-shadow: 0 32px 100px rgba(25, 20, 17, 0.34);
  padding: clamp(18px, 2.6vw, 34px);
}

#staff-workspace .as-staff-task-card.is-open .as-card__header {
  gap: 12px;
  margin-bottom: 12px;
}

#staff-workspace .as-staff-task-card.is-open .as-card__header h3 {
  font-size: clamp(1.18rem, 1.7vw, 1.7rem);
  line-height: 1.05;
}

#staff-workspace .as-staff-task-card.is-open .as-card__header p {
  font-size: 0.92rem;
  line-height: 1.42;
}

#staff-workspace .as-intake-review-form.as-staff-task-card.is-open {
  grid-template-columns: minmax(0, 1.12fr) minmax(360px, 0.88fr);
  align-items: start;
  width: min(1480px, calc(100vw - 32px));
  margin: auto;
}

#staff-workspace .as-intake-review-form.as-staff-task-card.is-open .as-card__header,
#staff-workspace .as-intake-review-form.as-staff-task-card.is-open .as-form-actions {
  grid-column: 1 / -1;
}

#staff-workspace .as-visit-card.as-staff-task-card.is-open {
  width: min(1540px, calc(100vw - 32px));
  height: calc(100dvh - 48px);
  max-height: calc(100dvh - 48px);
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
}

#staff-workspace .as-resource-manager-card.as-staff-task-card.is-open {
  width: min(1500px, calc(100vw - 32px));
  height: calc(100dvh - 48px);
  max-height: calc(100dvh - 48px);
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
}

#staff-workspace .as-photos-card.as-staff-task-card.is-open {
  width: min(1500px, calc(100vw - 32px));
  height: calc(100dvh - 48px);
  max-height: calc(100dvh - 48px);
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
}

.as-review-intake-detail {
  min-width: 0;
  max-height: min(760px, 72dvh);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-right: 8px;
  scrollbar-gutter: stable;
}

.as-review-intake-detail .as-intake-summary {
  box-shadow: none;
}

.as-status-pill {
  border-radius: 999px;
  background: var(--as-black);
  color: #fff;
  padding: 8px 12px;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.as-status-pill--cream {
  background: var(--as-cream);
  color: var(--as-focus);
}

.as-timeline article {
  display: grid;
  gap: 5px;
}

.as-timeline__button {
  cursor: pointer;
}

.as-timeline__button:hover,
.as-timeline__button:focus-visible {
  border-color: var(--as-focus);
  box-shadow: 0 0 0 4px rgba(157, 123, 98, 0.12);
  outline: 0;
}

.as-timeline small {
  color: var(--as-muted);
}

.as-note-form {
  display: grid;
  gap: 12px;
}

.as-visit-note-form {
  min-height: 0;
}

.as-visit-workspace {
  display: grid;
  grid-template-columns: minmax(340px, 0.74fr) minmax(520px, 1.26fr);
  gap: 18px;
  min-height: 0;
}

.as-visit-workspace__setup,
.as-visit-workspace__notes {
  display: grid;
  align-content: start;
  gap: 12px;
  min-width: 0;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-right: 6px;
  scrollbar-gutter: stable;
}

.as-visit-workspace__notes {
  grid-template-rows: auto auto auto auto;
}

.as-visit-workspace__notes textarea {
  min-height: 128px;
}

.as-visit-workspace__notes textarea[name="technicianNotes"] {
  min-height: clamp(180px, 28dvh, 320px);
}

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

.as-visit-fields .as-service-select {
  grid-column: 1 / -1;
}

.as-service-custom[hidden] {
  display: none !important;
}

.as-service-custom {
  grid-column: 1 / -1;
}

.as-multi-picker-label {
  min-width: 0;
}

.as-multi-picker {
  position: relative;
}

.as-multi-picker summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 48px;
  border: 1px solid var(--as-line);
  border-radius: 16px;
  background: #fff;
  color: var(--as-black);
  padding: 0 16px;
  cursor: pointer;
  font-weight: 850;
  list-style: none;
}

.as-multi-picker summary::-webkit-details-marker {
  display: none;
}

.as-multi-picker summary::after {
  content: "⌄";
  color: var(--as-muted);
  font-size: 18px;
  line-height: 1;
}

.as-multi-picker[open] summary {
  border-color: var(--as-focus);
  box-shadow: 0 0 0 4px rgba(157, 123, 98, 0.12);
}

.as-multi-picker__menu {
  position: absolute;
  inset-inline: 0;
  z-index: 7;
  display: grid;
  max-height: min(360px, 44dvh);
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid rgba(226, 216, 206, 0.94);
  border-radius: 18px;
  background: rgba(255, 253, 251, 0.98);
  box-shadow: 0 18px 46px rgba(31, 27, 24, 0.14);
  margin-top: 8px;
  padding: 12px;
}

.as-multi-picker__menu--compact {
  max-height: min(280px, 38dvh);
}

.as-multi-picker__menu .as-kicker {
  margin: 8px 6px 4px;
  font-size: 10px;
}

.as-multi-picker__actions {
  display: flex;
  gap: 8px;
  margin: 0 0 8px;
}

.as-multi-picker__actions button {
  min-height: 30px;
  border: 1px solid var(--as-line);
  border-radius: 999px;
  background: #fff;
  color: var(--as-black);
  cursor: pointer;
  flex: 1 1 0;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.as-multi-picker__actions .as-multi-picker__apply {
  border-color: var(--as-black);
  background: var(--as-black);
  color: #fff;
}

.as-multi-picker__actions button:hover,
.as-multi-picker__actions button:focus-visible {
  border-color: var(--as-focus);
  box-shadow: 0 0 0 3px rgba(157, 123, 98, 0.12);
  outline: 0;
}

.as-multi-picker__menu label {
  display: flex;
  align-items: center;
  gap: 9px;
  border-radius: 12px;
  padding: 7px 8px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0;
}

.as-multi-picker__menu label span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.as-multi-picker__menu label:hover {
  background: var(--as-cream);
}

.as-multi-picker__menu label:has(input:checked) {
  border-color: rgba(157, 123, 98, 0.48);
  background: rgba(246, 239, 232, 0.92);
}

.as-multi-picker__menu input {
  width: 16px;
  height: 16px;
  accent-color: var(--as-black);
}

.as-service-choice-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.as-service-choice {
  min-width: 0;
  border: 1px solid var(--as-line);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.86);
  color: var(--as-ink);
  padding: 9px 11px;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.04em;
  line-height: 1.1;
  text-align: center;
}

.as-service-choice:hover,
.as-service-choice:focus-visible,
.as-service-choice.is-active {
  border-color: var(--as-focus);
  box-shadow: 0 0 0 4px rgba(157, 123, 98, 0.12);
  outline: 0;
}

.as-service-choice.is-active {
  background: var(--as-black);
  color: #fff;
}

.as-multi-picker-label > input:not([type="hidden"]) {
  margin-top: 8px;
}

.as-review-service-context {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--as-line);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.72);
  padding: 10px;
}

.as-review-service-context > span {
  color: var(--as-muted);
  font-size: 12px;
  font-weight: 850;
}

.as-review-service-context .as-service-choice {
  padding: 8px 10px;
  font-size: 11px;
  text-align: left;
}

.as-resource-tool-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

.as-resource-manager-layout {
  display: grid;
  grid-template-columns: minmax(520px, 1.08fr) minmax(360px, 0.92fr);
  gap: 18px;
  min-height: 0;
}

.as-resource-library-form,
.as-resource-library-browser {
  min-width: 0;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-right: 6px;
  scrollbar-gutter: stable;
}

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

.as-resource-service-fieldset {
  margin: 0;
}

.as-resource-service-checks {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.as-resource-image-upload {
  grid-column: 1 / -1;
  position: relative;
  border: 1px dashed rgba(157, 123, 98, 0.72);
  border-radius: 22px;
  background: rgba(247, 242, 236, 0.58);
  padding: 14px;
  transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}

.as-resource-image-upload:hover,
.as-resource-image-upload:focus-within,
.as-resource-image-upload.is-dragging {
  border-color: var(--as-focus);
  background: rgba(247, 242, 236, 0.9);
  box-shadow: 0 0 0 4px rgba(157, 123, 98, 0.12);
}

.as-resource-image-upload input {
  position: absolute;
  inset: 0;
  cursor: pointer;
  opacity: 0;
}

.as-resource-image-upload__prompt {
  color: var(--as-black);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 22px;
  font-weight: 500;
  letter-spacing: 0;
}

.as-resource-image-upload small {
  color: var(--as-muted);
  font-size: 12px;
  line-height: 1.35;
}

.as-resource-image-preview {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  min-height: 92px;
  border: 1px solid rgba(226, 216, 206, 0.86);
  border-radius: 18px;
  background: #fff;
  padding: 8px;
}

.as-resource-image-preview img {
  display: block;
  width: 88px;
  height: 74px;
  border-radius: 14px;
  object-fit: cover;
}

.as-resource-image-preview .as-placeholder {
  grid-column: 1 / -1;
  min-height: 72px;
}

.as-resource-image-remove {
  grid-column: 1 / -1;
  justify-self: start;
  min-height: 40px;
  padding-inline: 18px;
}

.as-resource-library-browser {
  display: grid;
  align-content: start;
  gap: 12px;
  border: 1px solid rgba(226, 216, 206, 0.86);
  border-radius: 24px;
  background: rgba(255, 253, 251, 0.78);
  padding: 14px;
}

.as-resource-library-list {
  display: grid;
  gap: 10px;
}

.as-library-resource-card {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  border: 1px solid var(--as-line);
  border-radius: 18px;
  background: #fff;
  color: var(--as-ink);
  padding: 10px;
  text-align: left;
}

.as-library-resource-card:hover,
.as-library-resource-card:focus-visible,
.as-library-resource-card.is-active {
  border-color: var(--as-focus);
  box-shadow: 0 0 0 4px rgba(157, 123, 98, 0.12);
  outline: 0;
}

.as-library-resource-card__visual {
  display: grid;
  width: 54px;
  height: 54px;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(31, 27, 24, 0.08);
  border-radius: 16px;
  color: rgba(31, 27, 24, 0.62);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.as-library-resource-card__visual.has-image {
  background: #fff;
  border-color: rgba(31, 27, 24, 0.12);
}

.as-library-resource-card__visual img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.as-library-resource-card strong,
.as-library-resource-card small {
  min-width: 0;
}

.as-library-resource-card strong {
  display: block;
  color: var(--as-black);
  line-height: 1.05;
}

.as-library-resource-card small {
  display: block;
  color: var(--as-muted);
  line-height: 1.25;
  margin-top: 3px;
}

.as-library-resource-card__status {
  justify-self: end;
  border-radius: 999px;
  background: var(--as-cream);
  color: var(--as-focus);
  padding: 6px 8px;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.as-resource-builder {
  display: grid;
  gap: 12px;
  border: 1px solid rgba(226, 216, 206, 0.9);
  border-radius: 22px;
  background: rgba(255, 253, 251, 0.78);
  padding: 14px;
}

.as-resource-builder__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 0.42fr);
  gap: 14px;
  align-items: end;
}

.as-resource-builder h4 {
  margin: 3px 0 0;
  font-size: clamp(20px, 2.3vw, 28px);
  line-height: 1.02;
}

#staff-workspace .as-visit-card.as-staff-task-card.is-open .as-resource-builder h4 {
  font-size: clamp(18px, 1.45vw, 24px);
}

#staff-workspace .as-visit-card.as-staff-task-card.is-open .as-resource-list {
  max-height: min(500px, calc(100dvh - 470px));
}

.as-resource-filter {
  min-width: 0;
}

.as-selected-resource-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.as-selected-resource {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: 100%;
  border: 1px solid var(--as-line);
  border-radius: 999px;
  background: #fff;
  color: var(--as-black);
  padding: 7px 10px;
  font-weight: 850;
  text-align: left;
}

.as-selected-resource:hover,
.as-selected-resource:focus-visible {
  border-color: var(--as-focus);
  box-shadow: 0 0 0 4px rgba(157, 123, 98, 0.12);
  outline: 0;
}

.as-resource-swatch {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(31, 27, 24, 0.1);
  border-radius: 999px;
  color: transparent;
  font-size: 0;
}

.as-resource-swatch img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.as-resource-list {
  display: grid;
  gap: 12px;
  max-height: min(430px, 42dvh);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-right: 6px;
  scrollbar-gutter: stable;
}

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

.as-resource-group h5 {
  margin: 0;
  color: var(--as-muted);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.as-resource-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 8px;
}

.as-resource-card {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 9px 10px;
  align-items: center;
  min-width: 0;
  border: 1px solid var(--as-line);
  border-radius: 18px;
  background: #fff;
  color: var(--as-ink);
  padding: 9px;
  text-align: left;
}

.as-resource-card:hover,
.as-resource-card:focus-visible,
.as-resource-card.is-selected {
  border-color: var(--as-focus);
  box-shadow: 0 0 0 4px rgba(157, 123, 98, 0.12);
  outline: 0;
}

.as-resource-card.is-selected {
  opacity: 0.72;
}

.as-resource-card__visual {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(31, 27, 24, 0.08);
  border-radius: 14px;
  color: rgba(31, 27, 24, 0.62);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.as-resource-card__visual.has-image {
  background: #fff;
  border-color: rgba(31, 27, 24, 0.12);
}

.as-resource-card__visual img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.as-resource-card strong,
.as-resource-card small {
  grid-column: 2;
  min-width: 0;
}

.as-resource-card strong {
  color: var(--as-black);
  line-height: 1.05;
}

.as-resource-card small {
  color: var(--as-muted);
  line-height: 1.25;
}

.as-intake-review-form {
  margin: 0 0 14px;
  padding: 14px;
  border: 1px solid var(--as-line);
  border-radius: 20px;
  background: rgba(255, 253, 251, 0.88);
}

#staff-workspace .as-intake-review-form.as-staff-task-card.is-open > label,
#staff-workspace .as-intake-review-form.as-staff-task-card.is-open .as-inline-check {
  grid-column: 2;
}

.as-chart-card .as-chart-intake-detail,
.as-chart-card .as-intake-review-form,
.as-chart-card .as-timeline,
.as-visit-card .as-note-form,
.as-photos-card .as-photo-preview,
.as-legacy-card .as-note-form {
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-right: 8px;
  scrollbar-gutter: stable;
}

.as-chart-card .as-chart-intake-detail {
  margin-bottom: 14px;
}

.as-chart-card .as-intake-review-form {
  min-height: 0;
  max-height: min(300px, 36dvh);
}

.as-chart-card .as-timeline {
  max-height: min(180px, 24dvh);
  margin-top: 0;
}

.as-visit-card .as-note-form,
.as-legacy-card .as-note-form {
  max-height: min(460px, 50dvh);
}

#staff-workspace .as-visit-card.as-staff-task-card.is-open .as-note-form {
  max-height: none;
  min-height: 0;
  overflow: hidden;
  padding-right: 0;
}

.as-visit-card .as-visit-actions {
  position: sticky;
  bottom: 0;
  z-index: 2;
  margin-top: 4px;
  border-top: 1px solid rgba(226, 216, 206, 0.88);
  background:
    linear-gradient(180deg, rgba(255, 253, 251, 0.7), rgba(255, 253, 251, 0.98) 32%),
    rgba(255, 253, 251, 0.98);
  padding-top: 14px;
}

.as-photos-card .as-photo-preview {
  max-height: min(480px, 52dvh);
}

.as-chart-card .as-placeholder,
.as-calendar-card .as-placeholder {
  min-height: 110px;
}

.as-card__header--compact {
  margin-bottom: 0;
}

.as-inline-check {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: none;
}

.as-inline-check input {
  width: auto;
}

.as-appointments-toolbar {
  display: grid;
  gap: 9px;
  align-items: start;
  margin-bottom: 8px;
}

.as-calendar-presets {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
}

.as-appointments-toolbar .as-button,
.as-calendar-filter-drawer summary {
  min-width: 0;
  width: auto;
  min-height: 36px;
  padding: 8px 10px;
  border-radius: 999px;
  font-size: 13px;
  line-height: 1;
  white-space: nowrap;
}

.as-calendar-filter-drawer {
  position: relative;
  z-index: 3;
}

.as-calendar-filter-drawer summary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  border: 1px solid var(--as-line);
  background: rgba(255, 255, 255, 0.84);
  color: var(--as-black);
  cursor: pointer;
  font-weight: 900;
  list-style: none;
}

.as-calendar-filter-drawer summary::-webkit-details-marker {
  display: none;
}

.as-calendar-filter-drawer[open] summary {
  border-color: var(--as-black);
  background: var(--as-black);
  color: #fff;
}

.as-calendar-filter-panel {
  position: absolute;
  inset: calc(100% + 8px) 0 auto 0;
  display: grid;
  gap: 10px;
  border: 1px solid rgba(226, 216, 206, 0.98);
  border-radius: 22px;
  background: rgba(255, 253, 251, 0.98);
  box-shadow: 0 22px 55px rgba(31, 27, 24, 0.14);
  padding: 14px;
}

.as-calendar-date-bar,
.as-calendar-filter-grid,
.as-calendar-filter-actions {
  display: grid;
  gap: 8px;
}

.as-calendar-date-bar {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  align-items: end;
}

.as-calendar-filter-grid {
  align-items: start;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.as-calendar-filter-actions {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.as-filter-hint {
  margin: 0;
  color: color-mix(in srgb, var(--as-muted) 72%, #fff);
  font-size: 12px;
  line-height: 1.35;
}

.as-service-filter {
  gap: 5px;
  min-width: 0;
  color: color-mix(in srgb, var(--as-muted) 74%, var(--as-black));
  font-size: 9px;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.as-service-filter input {
  margin-top: 2px;
  min-height: 34px;
  font-size: 13px;
}

.as-service-filter input::placeholder {
  color: color-mix(in srgb, var(--as-muted) 55%, #fff);
}

.as-appointments-toolbar .is-active {
  border-color: var(--as-black);
  background: var(--as-black);
  color: #fff;
}

.as-calendar-list {
  display: grid;
  align-content: start;
  gap: 8px;
  min-height: min(300px, 42dvh);
  max-height: none;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-right: 6px;
  scrollbar-gutter: stable;
}

.as-calendar-day {
  display: grid;
  gap: 7px;
}

.as-calendar-day__heading {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: baseline;
  border-bottom: 1px solid var(--as-line);
  padding-bottom: 6px;
}

.as-calendar-day__heading strong {
  color: var(--as-black);
  font-size: 14px;
}

.as-calendar-day__heading small {
  color: color-mix(in srgb, var(--as-muted) 78%, #fff);
  font-size: 12px;
  font-weight: 800;
}

@media (min-width: 1180px) {
  .as-staff-layout {
    grid-template-columns: minmax(280px, 340px) minmax(0, 1fr);
  }

  .as-staff-main {
    grid-template-columns: minmax(420px, 0.92fr) minmax(520px, 1.08fr);
    grid-template-areas:
      "calendar chart";
    align-items: start;
  }

  .as-calendar-card {
    grid-area: calendar;
  }

  .as-chart-card {
    grid-area: chart;
  }

  body.as-mode-staff.as-chart-selected .as-staff-main {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "chart";
  }
}

@media (min-width: 901px) and (max-width: 1179px) {
  .as-staff-layout {
    grid-template-columns: minmax(240px, 290px) minmax(0, 1fr);
  }

  .as-calendar-card,
  .as-chart-card,
  .as-visit-card,
  .as-photos-card,
  .as-legacy-card {
    max-height: min(700px, calc(100dvh - 112px));
  }

  #staff-workspace .as-visit-card.as-staff-task-card.is-open {
    width: min(1120px, calc(100vw - 28px));
  }

  .as-visit-workspace {
    grid-template-columns: minmax(300px, 0.85fr) minmax(420px, 1.15fr);
  }

  #staff-workspace .as-resource-manager-card.as-staff-task-card.is-open {
    width: min(1120px, calc(100vw - 28px));
  }

  .as-resource-manager-layout {
    grid-template-columns: minmax(430px, 1fr) minmax(310px, 0.8fr);
  }

  .as-calendar-filter-panel {
    position: static;
    margin-top: 8px;
  }

  .as-calendar-date-bar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #calendar-apply-dates {
    grid-column: 1 / -1;
  }
}

@media (max-width: 900px) {
  #staff-workspace .as-visit-card.as-staff-task-card.is-open {
    inset: 10px;
    width: calc(100vw - 20px);
    height: calc(100dvh - 20px);
    max-height: calc(100dvh - 20px);
    border-radius: 24px;
  }

  .as-visit-workspace {
    grid-template-columns: 1fr;
    overflow-y: auto;
    padding-right: 4px;
  }

  #staff-workspace .as-resource-manager-card.as-staff-task-card.is-open {
    inset: 10px;
    width: calc(100vw - 20px);
    height: calc(100dvh - 20px);
    max-height: calc(100dvh - 20px);
    border-radius: 24px;
    overflow-y: auto;
  }

  #staff-workspace .as-photos-card.as-staff-task-card.is-open {
    inset: 10px;
    width: calc(100vw - 20px);
    height: calc(100dvh - 20px);
    max-height: calc(100dvh - 20px);
    border-radius: 24px;
  }

  .as-resource-manager-layout {
    grid-template-columns: 1fr;
  }

  .as-resource-library-form,
  .as-resource-library-browser {
    overflow: visible;
    padding-right: 0;
  }

  .as-visit-workspace__setup,
  .as-visit-workspace__notes {
    overflow: visible;
    padding-right: 0;
  }

  .as-visit-fields,
  .as-photo-metadata,
  .as-service-choice-grid,
  .as-resource-library-form .as-grid,
  .as-resource-service-checks {
    grid-template-columns: 1fr;
  }

  .as-photo-metadata label:nth-child(3),
  .as-photo-metadata label:nth-child(4) {
    grid-column: auto;
  }

  .as-resource-builder__header,
  .as-photo-service-group__header {
    display: grid;
    grid-template-columns: 1fr;
  }

  .as-photo-service-group__metrics {
    justify-content: flex-start;
    max-width: none;
  }

  .as-resource-grid {
    grid-template-columns: 1fr;
  }

  .as-photo-set-grid {
    grid-template-columns: repeat(auto-fill, minmax(132px, 1fr));
  }

  .as-resource-list {
    max-height: none;
  }
}

.as-appointment-item {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 8px;
  min-height: 0;
  border: 1px solid var(--as-line);
  border-radius: 15px;
  background: var(--as-white);
  padding: 8px 9px;
}

.as-appointment-item > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.as-appointment-item time {
  color: var(--as-focus);
  font-size: 12px;
  font-weight: 900;
}

.as-appointment-client {
  color: var(--as-black);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

.as-service-link {
  display: block;
  width: fit-content;
  max-width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--as-black);
  cursor: pointer;
  font: inherit;
  font-size: 14px;
  font-weight: 900;
  line-height: 1.16;
  text-align: left;
}

.as-service-link:hover,
.as-service-link:focus-visible {
  color: var(--as-focus);
  text-decoration: underline;
  text-underline-offset: 4px;
}

.as-appointment-item small {
  display: block;
  margin-top: 1px;
  color: color-mix(in srgb, var(--as-muted) 76%, #fff);
  font-size: 10.5px;
  line-height: 1.28;
  overflow-wrap: anywhere;
}

.as-appointment-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.as-appointment-manage-link {
  appearance: none;
  border: 0;
  padding: 0;
  background: transparent;
  color: var(--as-focus);
  cursor: pointer;
  font: inherit;
  font-size: 11px;
  font-weight: 900;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.as-photo-grid {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 18px;
  min-height: 0;
}

.as-photo-form {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  min-height: 0;
  overflow: hidden;
}

.as-photo-metadata {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.as-photo-metadata label:nth-child(3),
.as-photo-metadata label:nth-child(4) {
  grid-column: span 2;
}

.as-photo-workspace {
  grid-template-columns: minmax(190px, 260px) minmax(0, 1fr);
  align-items: start;
  overflow: hidden;
}

.as-photo-capture-panel {
  position: sticky;
  top: 0;
  display: grid;
  gap: 12px;
  min-width: 0;
}

.as-photo-capture-panel p {
  margin: 0;
  color: var(--as-muted);
  font-size: 13px;
  font-weight: 650;
  line-height: 1.45;
}

.as-photo-upload-compact {
  min-height: 0;
  aspect-ratio: 1 / 0.68;
  padding: 18px;
}

.as-upload {
  display: grid;
  min-height: 210px;
  place-items: center;
  border: 1px dashed var(--as-focus);
  border-radius: 24px;
  background: var(--as-cream);
  color: var(--as-black);
  text-align: center;
}

.as-upload.is-dragging {
  border-color: var(--as-black);
  background: #fff;
  box-shadow: 0 0 0 5px rgba(157, 123, 98, 0.12);
}

.as-upload--compact {
  min-height: 150px;
}

.as-document-upload {
  min-height: 160px;
}

.as-upload input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
}

.as-upload span {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 24px;
  font-weight: 500;
}

.as-upload--compact span {
  font-size: 22px;
}

.as-upload small {
  color: var(--as-muted);
}

.as-photo-preview {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: start;
  gap: 12px;
  min-height: 0;
}

.as-photo-preview--compact {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.as-photo-preview img,
.as-placeholder {
  width: 100%;
  min-height: 210px;
  border: 1px solid var(--as-line);
  border-radius: 22px;
  background: #fff;
  object-fit: cover;
}

.as-saved-photo {
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--as-line);
  border-radius: 22px;
  background: var(--as-white);
}

.as-photo-zoom-trigger {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: zoom-in;
}

.as-photo-zoom-trigger:focus-visible {
  outline: 2px solid var(--as-black);
  outline-offset: -4px;
}

.as-saved-photo img {
  display: block;
  width: 100%;
  border: 0;
  border-radius: 0;
  aspect-ratio: 4 / 3;
  min-height: 0;
  object-fit: cover;
}

.as-document-preview {
  display: grid;
  min-height: 210px;
  place-items: center;
  gap: 10px;
  padding: 24px;
  border: 0;
  background:
    linear-gradient(145deg, rgba(179, 151, 128, 0.16), rgba(255, 255, 255, 0.92)),
    #fff;
}

.as-document-preview span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 68px;
  min-height: 68px;
  border: 1px solid var(--as-line);
  border-radius: 18px;
  background: var(--as-black);
  color: var(--as-white);
  font-weight: 900;
  letter-spacing: 0.14em;
}

.as-document-preview strong {
  max-width: 100%;
  color: var(--as-black);
  font-size: 15px;
  overflow-wrap: anywhere;
}

.as-saved-photo figcaption {
  display: grid;
  gap: 4px;
  padding: 12px;
}

.as-saved-photo figcaption strong {
  color: var(--as-black);
  font-size: 14px;
}

.as-saved-photo figcaption small {
  color: var(--as-muted);
  line-height: 1.35;
}

.as-photo-caption-field {
  display: grid;
  gap: 5px;
  color: var(--as-muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.as-photo-caption-field textarea {
  min-height: 54px;
  resize: vertical;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.32;
  text-transform: none;
}

.as-photo-service-group {
  display: grid;
  grid-column: 1 / -1;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--as-line);
  border-radius: 26px;
  background: #fff;
}

.as-photo-service-group--pending {
  border-color: rgba(157, 123, 98, 0.42);
  background:
    linear-gradient(180deg, rgba(248, 243, 238, 0.72), rgba(255, 253, 251, 0.98)),
    #fff;
}

.as-photo-service-group__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid var(--as-line);
  padding-bottom: 12px;
}

.as-photo-service-group__header h4 {
  margin: 4px 0;
  font-size: clamp(22px, 3vw, 30px);
}

.as-photo-service-group__header small {
  color: var(--as-muted);
}

.as-photo-service-group__metrics {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
  max-width: 48%;
}

.as-photo-service-group__metrics span {
  border-radius: 999px;
  background: var(--as-cream);
  color: var(--as-focus);
  padding: 6px 9px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.as-photo-service-group__frame {
  display: grid;
}

.as-photo-set-grid {
  grid-template-columns: repeat(auto-fill, minmax(142px, 1fr));
  gap: 12px;
}

.as-photo-set-grid .as-saved-photo {
  margin: 0;
  min-width: 0;
}

.as-photo-set-grid .as-photo-zoom-trigger {
  min-height: 0;
}

.as-photo-set-grid .as-saved-photo img {
  height: 154px;
  min-height: 0;
}

.as-photo-preview > .as-saved-photo {
  max-width: 320px;
}

.as-photo-actions {
  position: sticky;
  bottom: 0;
  z-index: 2;
  border-top: 1px solid rgba(226, 216, 206, 0.88);
  background:
    linear-gradient(180deg, rgba(255, 253, 251, 0.7), rgba(255, 253, 251, 0.98) 32%),
    rgba(255, 253, 251, 0.98);
  padding-top: 12px;
}

.as-photo-preview > .as-saved-photo .as-saved-photo img,
.as-photo-preview > .as-saved-photo img {
  height: 180px;
  min-height: 0;
}

.as-photo-set-grid .as-saved-photo figcaption {
  min-height: 58px;
}

.as-photo-service-group__guidance {
  margin: 0;
  color: var(--as-muted);
  font-weight: 750;
  line-height: 1.35;
}

.as-photo-service-group__pager {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.as-photo-service-group__pager span {
  color: var(--as-muted);
  font-weight: 700;
  text-align: center;
}

.as-photo-upload-date {
  color: var(--as-black);
}

.as-photo-modal {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  place-items: center;
  padding: 24px;
}

.as-photo-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(31, 27, 24, 0.5);
  backdrop-filter: blur(12px);
}

.as-photo-modal__panel {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  width: min(1120px, 100%);
  max-height: min(860px, calc(100vh - 48px));
  overflow: hidden;
  border: 1px solid rgba(226, 216, 206, 0.92);
  border-radius: 30px;
  background:
    linear-gradient(180deg, rgba(255, 253, 251, 0.98), rgba(248, 243, 238, 0.96)),
    var(--as-white);
  box-shadow: 0 30px 90px rgba(25, 20, 17, 0.34);
}

.as-photo-modal__header,
.as-photo-modal__controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px;
}

.as-photo-modal__header {
  border-bottom: 1px solid var(--as-line);
}

.as-photo-modal__header h2 {
  margin: 2px 0 4px;
  font-size: clamp(24px, 4vw, 42px);
}

.as-photo-modal__header p:last-child {
  margin: 0;
  color: var(--as-muted);
}

.as-photo-modal__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  height: 44px;
  min-width: 44px;
  gap: 7px;
  padding: 0 14px;
  border: 1px solid var(--as-line);
  border-radius: 999px;
  background: var(--as-cream);
  color: var(--as-black);
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1;
  text-decoration: none;
}

.as-photo-modal__viewport {
  display: grid;
  place-items: center;
  min-height: 360px;
  overflow: auto;
  padding: 20px;
  overscroll-behavior: contain;
  cursor: default;
  background:
    radial-gradient(circle at 12% 0%, rgba(226, 207, 190, 0.22), transparent 30rem),
    #fffdfb;
}

.as-photo-modal__viewport.is-zoomed {
  cursor: grab;
}

.as-photo-modal__viewport.is-dragging {
  cursor: grabbing;
  user-select: none;
}

.as-photo-modal__viewport img,
.as-photo-modal__viewport iframe {
  max-width: 100%;
  border-radius: 18px;
  box-shadow: 0 18px 48px rgba(42, 34, 28, 0.16);
}

.as-photo-modal__viewport img {
  max-height: 68vh;
  transform-origin: center center;
  transition: max-width 180ms ease, max-height 180ms ease;
  pointer-events: none;
}

.as-photo-modal__viewport iframe {
  min-width: min(900px, 100%);
  height: 68vh;
  border: 1px solid var(--as-line);
  background: #fff;
  transition: width 180ms ease, height 180ms ease;
}

.as-photo-modal__viewport.is-document {
  place-items: start center;
}

.as-photo-modal__controls {
  border-top: 1px solid var(--as-line);
  background: rgba(255, 253, 251, 0.96);
}

.as-photo-modal__controls .as-button {
  width: auto;
  min-height: 38px;
  padding: 8px 12px;
  font-size: 13px;
}

.as-photo-tool {
  min-width: 42px;
  font-size: 20px;
  line-height: 1;
}

.as-photo-reset {
  min-width: 72px;
}

.as-photo-zoom-slider {
  display: grid;
  flex: 1 1 260px;
  min-width: min(320px, 44vw);
  gap: 8px;
  color: var(--as-muted);
  font-size: 13px;
  text-align: center;
}

.as-photo-zoom-slider span {
  color: var(--as-black);
  font-weight: 700;
}

.as-photo-zoom-slider input {
  width: 100%;
  accent-color: var(--as-black);
}

.as-photo-modal__hint {
  flex-basis: 100%;
  margin: 0;
  color: var(--as-muted);
  font-size: 13px;
  text-align: center;
}

.as-photo-preview--compact img,
.as-photo-preview--compact .as-placeholder {
  min-height: 150px;
}

.as-placeholder {
  display: grid;
  grid-column: 1 / -1;
  place-items: center;
  color: var(--as-muted);
  text-align: center;
  padding: 24px;
}

.as-code {
  overflow: auto;
  max-height: 640px;
  border: 1px solid var(--as-line);
  border-radius: 20px;
  background: #111;
  color: #f8f3ee;
  padding: 20px;
  font-size: 13px;
  line-height: 1.55;
}

.as-toast {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 20;
  max-width: min(360px, calc(100% - 36px));
  border-radius: 18px;
  background: var(--as-black);
  color: #fff;
  padding: 14px 16px;
  opacity: 0;
  transform: translateY(12px);
  pointer-events: none;
  transition: opacity 180ms ease, transform 180ms ease;
}

.as-toast.is-visible {
  opacity: 1;
  transform: none;
}

@media (max-width: 900px) {
  #staff-mode {
    left: auto;
    width: 100%;
    transform: none;
  }

  .as-header {
    position: sticky;
    align-items: center;
    flex-direction: row;
    gap: 10px;
    padding: 8px 12px;
  }

  .as-logo img {
    width: clamp(94px, 18vw, 128px);
  }

  .as-mobile-menu-toggle {
    display: inline-flex;
  }

  .as-header-auth {
    width: auto;
    margin-left: auto;
    align-items: flex-end;
    justify-content: center;
  }

  .as-header-auth__menu {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    z-index: 40;
    display: none;
    width: min(380px, calc(100vw - 24px));
    max-height: min(680px, calc(100dvh - 78px));
    overflow-y: auto;
    overscroll-behavior: contain;
    align-items: stretch;
    padding: 10px;
    border: 1px solid var(--as-line);
    border-radius: 24px;
    background: rgba(255, 253, 251, 0.98);
    box-shadow: 0 24px 70px rgba(34, 27, 22, 0.18);
  }

  .as-header-auth.is-open .as-header-auth__menu {
    display: grid;
    gap: 8px;
  }

  .as-header-auth__menu .as-nav {
    width: 100%;
    overflow: visible;
  }

  .as-header-auth__menu .as-nav__button {
    flex: 1 1 0;
  }

  .as-header-auth__menu .as-auth-toggle,
  .as-header-auth__menu .as-auth-link,
  .as-header-auth__menu .as-staff-session--header {
    width: 100%;
    max-width: none;
  }

  .as-staff-session--header {
    max-width: none;
  }

  .as-login-card--header {
    position: static;
    width: 100%;
    max-height: none;
    margin-top: 0;
    box-shadow: none;
  }

  .as-client-start-card {
    align-items: stretch;
    flex-direction: column;
  }

  .as-hero,
  .as-client-login,
  .as-client-start-card,
  .as-staff-access-panel,
  .as-password-form,
  .as-intake-shell,
  .as-staff-layout,
  .as-photo-grid {
    grid-template-columns: 1fr;
  }

  .as-client-login__image {
    min-height: 220px;
  }

  .as-client-login__image img {
    width: min(78%, 320px);
    min-height: 0;
  }

  .as-progress,
  .as-client-summary {
    position: static;
  }

  .as-client-summary,
  .as-calendar-card,
  .as-chart-card {
    max-height: min(720px, 78dvh);
  }

  body.as-mode-staff.as-chart-selected .as-chart-card {
    min-height: auto;
    max-height: none;
    overflow: visible;
  }

  body.as-mode-staff.as-chart-selected .as-chart-card .as-chart-intake-detail,
  body.as-mode-staff.as-chart-selected .as-chart-card .as-timeline {
    max-height: none;
    overflow: visible;
  }

  #staff-workspace .as-photo-grid {
    grid-template-columns: 1fr;
  }

  .as-photo-capture-panel {
    position: static;
  }

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

  .as-calendar-filter-panel {
    position: static;
    margin-top: 8px;
  }

  .as-calendar-date-bar,
  .as-calendar-filter-grid,
  .as-calendar-filter-actions {
    grid-template-columns: 1fr;
  }

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

  #staff-workspace .as-staff-task-card.is-open {
    inset: 14px;
    width: auto;
    max-height: calc(100dvh - 28px);
    border-radius: 24px;
  }

  #staff-workspace .as-intake-review-form.as-staff-task-card.is-open {
    grid-template-columns: 1fr;
  }

  #staff-workspace .as-intake-review-form.as-staff-task-card.is-open > label,
  #staff-workspace .as-intake-review-form.as-staff-task-card.is-open .as-inline-check {
    grid-column: 1;
  }

  .as-review-intake-detail {
    max-height: min(560px, 54dvh);
  }

  .as-progress {
    display: flex;
    overflow-x: auto;
    padding-bottom: 8px;
  }

  .as-step {
    min-width: 164px;
  }
}

@media (max-width: 640px) {
  body.as-client-signed-in .as-header,
  body.as-mode-staff.as-staff-signed-in .as-header,
  body.as-mode-staff.as-chart-selected .as-header {
    display: flex;
    min-height: 54px;
    gap: 8px;
    padding: 6px 10px;
  }

  .as-header {
    min-height: 54px;
  }

  .as-mobile-menu-toggle {
    min-height: 36px;
    padding: 7px 11px;
  }

  body.as-client-signed-in .as-logo img,
  body.as-mode-staff.as-staff-signed-in .as-logo img,
  body.as-mode-staff.as-chart-selected .as-logo img {
    width: 84px;
  }

  .as-header-auth__menu {
    width: min(340px, calc(100vw - 18px));
    max-height: calc(100dvh - 70px);
    right: -2px;
    border-radius: 20px;
  }

  body.as-client-signed-in .as-header-auth,
  body.as-mode-staff.as-staff-signed-in .as-header-auth {
    width: auto;
  }

  body.as-client-signed-in .as-staff-session--header,
  body.as-mode-staff.as-staff-signed-in .as-staff-session--header,
  body.as-mode-staff.as-chart-selected .as-staff-session--header {
    width: 100%;
    max-width: none;
  }

  .as-form-step,
  .as-service-log-section {
    gap: 0.72rem;
    padding: 0.82rem;
  }

  .as-question {
    padding: 0.82rem;
  }

  .as-choice,
  .as-compact-checks label,
  .as-multi-picker__menu label {
    min-height: 38px;
    padding-block: 7px;
  }

  #staff-workspace .as-staff-task-card.is-open .as-card__header h3 {
    font-size: 1.12rem;
  }

  main {
    width: min(100% - 22px, 1180px);
  }

  .as-grid,
  .as-checks,
  .as-photo-preview {
    grid-template-columns: 1fr;
  }

  .as-form-actions,
  .as-card__header,
  .as-intake-browser__header,
  .as-intake-summary__header,
  .as-staff-user-card {
    flex-direction: column;
    align-items: stretch;
  }

  .as-appointment-panel {
    grid-template-columns: 1fr;
  }

  .as-client-appointment-item {
    grid-template-columns: 1fr;
  }

  .as-client-appointment-item__actions {
    justify-content: stretch;
  }

  .as-client-appointment-item__actions .as-button {
    flex: 1 1 140px;
  }

  .as-client-appointment-manage__details {
    grid-template-columns: 1fr;
  }

  .as-client-appointment-manage__actions .as-button {
    flex: 1 1 180px;
  }

  .as-appointment-panel__side {
    width: 100%;
    margin-left: 0;
  }

  .as-staff-user-card {
    grid-template-columns: 1fr;
  }

  .as-staff-user-card__actions {
    justify-content: stretch;
  }

  .as-client-summary,
  .as-calendar-card,
  .as-chart-card {
    max-height: none;
  }

  .as-search-results,
  .as-calendar-list,
  .as-chart-card .as-chart-intake-detail,
  .as-chart-card .as-timeline {
    max-height: min(460px, 62dvh);
  }

  .as-chart-actions {
    grid-template-columns: 1fr;
  }

  .as-mobile-upload-actions,
  .as-photo-preview--compact,
  .as-intake-summary dl {
    grid-template-columns: 1fr;
  }

  .as-photo-workspace {
    gap: 12px;
  }

  .as-photo-capture-panel {
    gap: 8px;
  }

  .as-photo-capture-panel p {
    font-size: 12px;
  }

  .as-photo-upload-compact {
    min-height: 128px;
    aspect-ratio: auto;
    padding: 14px;
  }

  .as-photo-upload-compact span {
    font-size: 22px;
  }

  .as-photo-service-group {
    gap: 10px;
    padding: 12px;
    border-radius: 22px;
  }

  .as-photo-set-grid {
    grid-template-columns: repeat(auto-fill, minmax(132px, 1fr));
    gap: 10px;
  }

  .as-photo-set-grid .as-saved-photo img {
    height: 132px;
  }

  .as-appointment-item {
    grid-template-columns: 1fr;
  }

  .as-photo-modal {
    padding: 8px;
  }

  .as-photo-modal__panel {
    max-height: calc(100vh - 16px);
    border-radius: 22px;
  }

  .as-photo-modal__header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 10px;
    padding: 12px;
  }

  .as-photo-modal__header h2 {
    font-size: 24px;
  }

  .as-photo-modal__header p:last-child {
    font-size: 12px;
    line-height: 1.35;
  }

  .as-photo-modal__close {
    width: auto;
    height: 40px;
    min-width: 40px;
  }

  .as-photo-modal__controls {
    flex-flow: row wrap;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px;
  }

  .as-photo-modal__controls .as-button {
    width: auto;
    min-height: 36px;
    padding: 8px 11px;
    font-size: 12px;
  }

  .as-photo-tool {
    min-width: 38px;
    font-size: 18px;
  }

  .as-photo-reset {
    min-width: 68px;
  }

  .as-photo-zoom-slider {
    flex: 1 1 148px;
    min-width: 148px;
    gap: 5px;
  }

  .as-photo-modal__hint {
    display: none;
  }

  .as-photo-modal__viewport {
    min-height: 0;
    padding: 10px;
  }

  .as-photo-service-group__header,
  .as-photo-service-group__pager {
    flex-direction: column;
    align-items: stretch;
  }

  .as-button {
    width: 100%;
  }

  .as-header-auth__menu .as-button,
  .as-photo-modal__controls .as-button {
    width: auto;
  }
}

/* Workspace stabilization pass: keep useful records visible and reduce empty chrome. */
body.as-client-signed-in main {
  width: min(1120px, calc(100% - 28px));
}

body.as-client-signed-in #client-mode,
body.as-mode-staff.as-staff-signed-in #staff-mode,
body.as-mode-staff.as-chart-selected #staff-mode {
  padding-top: 14px;
}

body.as-client-signed-in .as-portal-heading,
body.as-client-signed-in .as-client-hero-card,
body.as-mode-staff.as-staff-signed-in .as-portal-heading,
body.as-mode-staff.as-staff-signed-in .as-staff-intro,
body.as-mode-staff.as-chart-selected .as-portal-heading,
body.as-mode-staff.as-chart-selected .as-staff-intro {
  display: none;
}

.as-client-private-content {
  width: 100%;
  max-width: 1120px;
  margin: 0 auto;
}

body.as-client-signed-in .as-client-flow-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 14px;
}

body.as-client-signed-in .as-appointment-panel,
body.as-client-signed-in .as-client-start-card,
body.as-client-signed-in .as-client-history-card {
  border-radius: 24px;
  box-shadow: 0 18px 44px rgba(34, 29, 25, 0.08);
}

body.as-client-signed-in .as-appointment-panel {
  align-items: center;
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 0;
  padding: 18px 20px;
}

body.as-client-signed-in .as-appointment-panel h3 {
  font-size: clamp(24px, 2.2vw, 34px);
}

body.as-client-signed-in .as-appointment-panel p {
  max-width: 70ch;
}

body.as-client-signed-in .as-client-start-card {
  align-items: center;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 18px 20px;
}

body.as-client-signed-in .as-client-start-card h3,
body.as-client-signed-in .as-client-history-card h3 {
  font-size: clamp(24px, 2.15vw, 34px);
}

body.as-client-signed-in .as-client-history-card {
  padding: 18px 20px 20px;
}

body.as-client-signed-in .as-client-history-card .as-intake-browser {
  grid-template-columns: minmax(260px, 0.36fr) minmax(0, 1fr);
  align-items: start;
  gap: 16px;
}

body.as-client-signed-in .as-client-history-card .as-intake-summary {
  max-height: none;
  padding: 16px;
}

body.as-client-signed-in .as-intake-summary__sections {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.as-client-signed-in .as-intake-shell {
  grid-template-columns: 220px minmax(0, 1fr);
  margin-top: 14px;
}

body.as-client-signed-in .as-form-step h3,
body.as-client-signed-in .as-form-step legend {
  font-size: clamp(24px, 2vw, 32px);
}

body.as-client-signed-in .as-form-step {
  gap: 14px;
}

body.as-mode-staff.as-staff-signed-in main,
body.as-mode-staff.as-chart-selected main {
  width: min(1740px, calc(100% - 24px));
}

body.as-mode-staff.as-staff-signed-in .as-staff-layout,
body.as-mode-staff.as-chart-selected .as-staff-layout {
  grid-template-columns: minmax(260px, 330px) minmax(0, 1fr);
  gap: 16px;
}

body.as-mode-staff.as-staff-signed-in .as-client-summary,
body.as-mode-staff.as-chart-selected .as-client-summary {
  display: flex;
  flex-direction: column;
  max-height: calc(100dvh - 106px);
  overflow-y: auto;
  padding: 16px;
}

body.as-mode-staff.as-staff-signed-in .as-client-summary h3,
body.as-mode-staff.as-staff-signed-in .as-calendar-card h3,
body.as-mode-staff.as-staff-signed-in .as-chart-card h3,
body.as-mode-staff.as-chart-selected .as-client-summary h3,
body.as-mode-staff.as-chart-selected .as-calendar-card h3,
body.as-mode-staff.as-chart-selected .as-chart-card h3 {
  font-size: clamp(26px, 2vw, 38px);
}

body.as-mode-staff.as-staff-signed-in .as-search-results,
body.as-mode-staff.as-chart-selected .as-search-results {
  flex: 0 0 clamp(180px, 28dvh, 320px);
  min-height: clamp(170px, 24dvh, 280px);
  max-height: min(380px, 40dvh);
  overflow: auto;
}

body.as-mode-staff.as-staff-signed-in.as-search-has-results .as-search-results,
body.as-mode-staff.as-chart-selected.as-search-has-results .as-search-results {
  flex: 1 1 clamp(320px, 46dvh, 560px);
  min-height: clamp(300px, 42dvh, 520px);
  max-height: none;
}

body.as-mode-staff.as-staff-signed-in .as-client-card,
body.as-mode-staff.as-chart-selected .as-client-card {
  padding: 12px 14px;
}

body.as-mode-staff.as-staff-signed-in .as-client-card strong,
body.as-mode-staff.as-chart-selected .as-client-card strong {
  font-size: 18px;
  line-height: 1.08;
  overflow-wrap: anywhere;
}

body.as-mode-staff.as-staff-signed-in .as-client-card p,
body.as-mode-staff.as-chart-selected .as-client-card p {
  font-size: 14px;
  overflow-wrap: anywhere;
}

body.as-mode-staff.as-staff-signed-in .as-chart-summary,
body.as-mode-staff.as-chart-selected .as-chart-summary {
  flex: 0 0 auto;
  padding-top: 14px;
}

body.as-mode-staff.as-search-has-results .as-chart-summary dl {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

body.as-mode-staff.as-staff-signed-in .as-calendar-card,
body.as-mode-staff.as-staff-signed-in .as-chart-card,
body.as-mode-staff.as-chart-selected .as-calendar-card,
body.as-mode-staff.as-chart-selected .as-chart-card {
  max-height: calc(100dvh - 106px);
  min-height: 520px;
  padding: 18px;
}

body.as-mode-staff.as-staff-signed-in .as-calendar-card,
body.as-mode-staff.as-chart-selected .as-calendar-card {
  grid-template-rows: auto auto auto minmax(320px, 1fr);
}

body.as-mode-staff.as-chart-selected .as-staff-main {
  grid-template-columns: minmax(0, 1fr);
}

body.as-mode-staff.as-chart-selected .as-chart-card {
  max-height: none;
  min-height: calc(100dvh - 112px);
  padding: 20px 24px;
}

body.as-mode-staff.as-chart-selected .as-chart-actions {
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 10px;
}

body.as-mode-staff.as-chart-selected .as-chart-intake-detail .as-intake-list,
body.as-mode-staff.as-chart-selected .as-timeline {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 10px;
}

#staff-workspace .as-staff-task-card.is-open {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
}

#staff-workspace .as-staff-task-card.is-open .as-review-intake-detail,
#staff-workspace .as-staff-task-card.is-open .as-visit-workspace,
#staff-workspace .as-staff-task-card.is-open .as-resource-manager,
#staff-workspace .as-staff-task-card.is-open .as-photo-form,
#staff-workspace .as-staff-task-card.is-open .as-document-workspace {
  min-height: 0;
  overflow: auto;
}

#staff-workspace .as-visit-card.is-open .as-visit-workspace {
  grid-template-columns: minmax(310px, 0.48fr) minmax(0, 1fr);
}

.as-photo-workspace {
  grid-template-columns: minmax(180px, 230px) minmax(0, 1fr);
  align-items: start;
}

.as-photo-upload-compact {
  min-height: 128px;
  aspect-ratio: auto;
  padding: 18px;
}

.as-photo-upload-actions {
  display: grid;
  gap: 10px;
}

.as-photo-camera-compact {
  min-height: 104px;
}

.as-photo-preview {
  max-height: calc(100dvh - 260px);
  overflow: auto;
}

.as-photo-preview > .as-saved-photo,
.as-photo-set-grid .as-saved-photo {
  max-width: none;
}

.as-photo-set-grid {
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
  gap: 12px;
}

.as-photo-set-grid .as-saved-photo img {
  height: 150px;
}

.as-photo-modal__panel {
  width: min(1180px, calc(100vw - 20px));
  height: min(900px, calc(100dvh - 20px));
}

.as-photo-modal__viewport {
  min-height: 0;
}

.as-photo-modal__viewport:focus-visible {
  outline: 2px solid var(--as-black);
  outline-offset: -6px;
}

@media (max-width: 1100px) {
  body.as-client-signed-in main,
  body.as-mode-staff.as-staff-signed-in main,
  body.as-mode-staff.as-chart-selected main {
    width: calc(100% - 18px);
  }

  body.as-client-signed-in .as-client-history-card .as-intake-browser,
  body.as-client-signed-in .as-intake-shell,
  body.as-mode-staff.as-staff-signed-in .as-staff-layout,
  body.as-mode-staff.as-chart-selected .as-staff-layout,
  #staff-workspace .as-visit-card.is-open .as-visit-workspace,
  .as-photo-workspace {
    grid-template-columns: minmax(0, 1fr);
  }

  body.as-client-signed-in .as-intake-summary__sections {
    grid-template-columns: minmax(0, 1fr);
  }

  body.as-mode-staff.as-staff-signed-in .as-client-summary,
  body.as-mode-staff.as-staff-signed-in .as-calendar-card,
  body.as-mode-staff.as-staff-signed-in .as-chart-card,
  body.as-mode-staff.as-chart-selected .as-client-summary,
  body.as-mode-staff.as-chart-selected .as-calendar-card,
  body.as-mode-staff.as-chart-selected .as-chart-card {
    max-height: none;
    min-height: 0;
  }

  body.as-mode-staff.as-chart-selected .as-staff-main {
    order: 1;
  }

  body.as-mode-staff.as-chart-selected .as-client-summary {
    order: 2;
  }
}

@media (max-width: 700px) {
  body.as-client-signed-in .as-logo img,
  body.as-mode-staff.as-staff-signed-in .as-logo img,
  body.as-mode-staff.as-chart-selected .as-logo img {
    width: 76px;
  }

  body.as-client-signed-in .as-header,
  body.as-mode-staff.as-staff-signed-in .as-header,
  body.as-mode-staff.as-chart-selected .as-header {
    min-height: 62px;
    padding: 8px 12px;
  }

  body.as-client-signed-in .as-appointment-panel,
  body.as-client-signed-in .as-client-start-card {
    grid-template-columns: minmax(0, 1fr);
  }

  body.as-mode-staff.as-chart-selected .as-chart-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .as-photo-upload-compact {
    min-height: 104px;
  }

  .as-photo-upload-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .as-photo-upload-actions .as-upload {
    min-height: 104px;
    padding: 12px;
  }

  .as-photo-upload-actions .as-upload span {
    font-size: 20px;
  }

  .as-photo-upload-actions .as-upload small {
    font-size: 11px;
    line-height: 1.25;
  }

  .as-photo-modal__controls {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) 56px 38px;
    gap: 6px;
    padding: 8px;
  }

  .as-photo-modal__controls .as-button {
    min-height: 34px;
    padding: 6px 8px;
    font-size: 11px;
  }

  .as-photo-reset {
    min-width: 0;
  }

  .as-photo-zoom-slider {
    min-width: 0;
  }
}

/* Stabilized workbench layout: prioritize records/results over decorative chrome. */
body.as-client-signed-in .as-header,
body.as-mode-staff.as-staff-signed-in .as-header,
body.as-mode-staff.as-chart-selected .as-header {
  min-height: 64px;
  padding-block: 6px;
}

body.as-client-signed-in .as-header-auth__menu,
body.as-mode-staff.as-staff-signed-in .as-header-auth__menu,
body.as-mode-staff.as-chart-selected .as-header-auth__menu {
  gap: 6px;
}

body.as-mode-staff.as-staff-signed-in .as-staff-layout,
body.as-mode-staff.as-chart-selected .as-staff-layout {
  align-items: stretch;
}

body.as-mode-staff.as-staff-signed-in .as-client-summary,
body.as-mode-staff.as-chart-selected .as-client-summary {
  max-height: calc(100dvh - 88px);
  min-height: calc(100dvh - 88px);
  gap: 12px;
  padding: 14px;
}

body.as-mode-staff.as-staff-signed-in .as-client-summary h3,
body.as-mode-staff.as-chart-selected .as-client-summary h3 {
  font-size: clamp(23px, 1.65vw, 32px);
}

body.as-mode-staff.as-staff-signed-in .as-search-results,
body.as-mode-staff.as-chart-selected .as-search-results {
  flex: 1 1 360px;
  min-height: 300px;
  max-height: none;
  padding-right: 4px;
}

body.as-mode-staff.as-staff-signed-in.as-search-has-results .as-search-results,
body.as-mode-staff.as-chart-selected.as-search-has-results .as-search-results {
  flex-basis: 520px;
  min-height: min(540px, 52dvh);
}

body.as-mode-staff.as-staff-signed-in .as-staff-tools,
body.as-mode-staff.as-chart-selected .as-staff-tools,
body.as-mode-staff.as-staff-signed-in .as-chart-summary,
body.as-mode-staff.as-chart-selected .as-chart-summary {
  flex: 0 0 auto;
}

body.as-mode-staff.as-search-has-results .as-staff-tools {
  padding-block: 10px;
}

body.as-mode-staff.as-search-has-results .as-staff-tools small {
  display: none;
}

body.as-mode-staff.as-search-has-results .as-chart-summary {
  border-top: 1px solid var(--as-line);
  margin-top: 0;
}

body.as-mode-staff.as-staff-signed-in .as-calendar-card,
body.as-mode-staff.as-chart-selected .as-chart-card {
  max-height: calc(100dvh - 88px);
  min-height: calc(100dvh - 88px);
}

body.as-mode-staff.as-staff-signed-in .as-calendar-card {
  grid-template-rows: auto auto auto minmax(430px, 1fr);
  overflow: hidden;
}

body.as-mode-staff.as-staff-signed-in .as-calendar-list {
  min-height: 430px;
  max-height: none;
}

body.as-mode-staff.as-chart-selected .as-calendar-card {
  display: none;
}

body.as-mode-staff.as-chart-selected .as-staff-main {
  grid-template-columns: minmax(0, 1fr);
}

body.as-mode-staff.as-chart-selected .as-chart-card {
  display: grid;
  grid-template-rows: auto auto auto minmax(180px, auto) auto auto;
  overflow: auto;
}

@media (min-width: 1101px) and (max-width: 1320px) {
  body.as-mode-staff.as-staff-signed-in main,
  body.as-mode-staff.as-chart-selected main {
    width: calc(100% - 18px);
  }

  body.as-mode-staff.as-staff-signed-in .as-staff-layout,
  body.as-mode-staff.as-chart-selected .as-staff-layout {
    grid-template-columns: minmax(230px, 300px) minmax(0, 1fr);
    gap: 12px;
  }

  body.as-mode-staff.as-staff-signed-in .as-staff-main {
    grid-template-columns: minmax(0, 0.96fr) minmax(0, 1.04fr);
    gap: 12px;
  }

  body.as-mode-staff.as-staff-signed-in .as-calendar-card,
  body.as-mode-staff.as-staff-signed-in .as-chart-card {
    min-width: 0;
    padding: 16px;
  }
}

body.as-mode-staff.as-chart-selected .as-chart-intake-detail {
  min-height: 220px;
}

body.as-mode-staff.as-chart-selected .as-chart-intake-detail .as-intake-list,
body.as-mode-staff.as-chart-selected .as-timeline {
  grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
}

#staff-workspace .as-staff-task-card.is-open {
  max-height: calc(100dvh - 80px);
  min-height: calc(100dvh - 80px);
}

#staff-workspace .as-visit-card.is-open .as-visit-workspace {
  grid-template-columns: minmax(360px, 0.42fr) minmax(0, 1fr);
}

#staff-workspace .as-visit-card.is-open .as-resource-builder h4 {
  font-size: clamp(18px, 1.25vw, 22px);
}

#staff-workspace .as-visit-card.is-open .as-resource-list {
  max-height: calc(100dvh - 520px);
}

.as-resource-card__visual.has-image,
.as-resource-swatch.has-image,
.as-library-resource-card__visual.has-image {
  background: #fff;
}

.as-resource-card__visual.has-image img,
.as-resource-swatch.has-image img,
.as-library-resource-card__visual.has-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.as-photo-workspace {
  grid-template-columns: minmax(160px, 220px) minmax(0, 1fr);
  gap: 14px;
}

.as-photo-upload-compact {
  min-height: 118px;
  aspect-ratio: auto;
  padding: 14px;
}

.as-photo-upload-compact span {
  font-size: clamp(22px, 2vw, 30px);
}

.as-photo-preview {
  max-height: calc(100dvh - 280px);
  overflow: auto;
}

.as-photo-set-grid {
  grid-template-columns: repeat(auto-fill, minmax(148px, 1fr));
}

.as-photo-set-grid .as-saved-photo img {
  height: 132px;
}

.as-photo-modal {
  padding: 10px;
}

.as-photo-modal__panel {
  width: min(1280px, calc(100vw - 20px));
  height: min(920px, calc(100dvh - 20px));
  max-height: none;
}

.as-photo-modal__header,
.as-photo-modal__controls {
  padding: 12px 14px;
}

.as-photo-modal__header h2 {
  font-size: clamp(22px, 3vw, 36px);
}

.as-photo-modal__viewport {
  min-height: 0;
  padding: 12px;
}

.as-photo-modal__viewport img {
  max-height: calc(100dvh - 190px);
}

@media (max-width: 1100px) {
  body.as-mode-staff.as-staff-signed-in .as-client-summary,
  body.as-mode-staff.as-chart-selected .as-client-summary,
  body.as-mode-staff.as-staff-signed-in .as-calendar-card,
  body.as-mode-staff.as-chart-selected .as-chart-card,
  #staff-workspace .as-staff-task-card.is-open {
    min-height: 0;
    max-height: none;
  }

  body.as-mode-staff.as-staff-signed-in .as-search-results,
  body.as-mode-staff.as-chart-selected .as-search-results {
    min-height: 260px;
    max-height: 56dvh;
  }

  #staff-workspace .as-visit-card.is-open .as-visit-workspace,
  .as-photo-workspace {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 900px) {
  body.as-client-signed-in .as-header,
  body.as-mode-staff.as-staff-signed-in .as-header,
  body.as-mode-staff.as-chart-selected .as-header {
    min-height: 54px;
    padding: 6px 10px;
  }

  body.as-client-signed-in .as-logo img,
  body.as-mode-staff.as-staff-signed-in .as-logo img,
  body.as-mode-staff.as-chart-selected .as-logo img {
    width: 78px;
  }

  .as-header-auth__menu {
    max-height: calc(100dvh - 62px);
  }

  .as-photo-modal__controls {
    grid-template-columns: 34px minmax(0, 1fr) 44px 34px;
  }
}

@media (max-width: 700px) {
  .as-photo-modal {
    padding: 0;
  }

  .as-photo-modal__panel {
    width: 100vw;
    height: 100dvh;
    border-radius: 0;
  }

  .as-photo-modal__header {
    align-items: center;
    gap: 10px;
  }

  .as-photo-modal__header p:last-child,
  .as-photo-modal__hint {
    display: none;
  }

  .as-photo-modal__viewport img {
    max-height: calc(100dvh - 150px);
  }

  #staff-workspace .as-visit-card.as-staff-task-card.is-open {
    height: calc(100dvh - 20px);
    min-height: 0;
    max-height: calc(100dvh - 20px);
    overflow: hidden;
  }

  #staff-workspace .as-visit-card.as-staff-task-card.is-open .as-note-form {
    min-height: 0;
    overflow: hidden;
  }

  #staff-workspace .as-visit-card.is-open .as-visit-workspace {
    display: block;
    overflow-y: auto;
    padding-right: 0;
  }

  #staff-workspace .as-visit-card.is-open .as-visit-workspace__setup,
  #staff-workspace .as-visit-card.is-open .as-visit-workspace__notes {
    display: grid;
    overflow: visible;
    padding-right: 0;
  }

  #staff-workspace .as-visit-card.is-open .as-visit-workspace__notes {
    margin-top: 16px;
  }
}

.as-chart-header-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  justify-content: flex-end;
}

.as-chart-exit {
  padding-inline: 1.1rem;
}

.as-empty-intake-action {
  align-items: flex-start;
  display: grid;
  gap: 0.85rem;
  justify-items: start;
  text-align: left;
}

.as-empty-intake-action .as-button {
  width: auto;
}

body.as-staff-intake-active #client-login,
body.as-staff-intake-active .as-appointment-panel,
body.as-staff-intake-active #client-intake-start-card,
body.as-staff-intake-active #client-intake-history-card {
  display: none !important;
}

body.as-staff-intake-active .as-client-flow-grid {
  display: block;
}

body.as-staff-intake-active .as-intake-shell {
  margin-top: clamp(1rem, 2vw, 1.5rem);
}

body.as-staff-intake-active .as-intake-workspace-bar {
  display: none;
}

body.as-staff-intake-active #staff-intake-cancel {
  display: inline-flex;
}

@media (max-width: 700px) {
  .as-intake-workspace-bar {
    align-items: stretch;
    flex-direction: column;
    gap: 14px;
  }

  .as-intake-workspace-bar__actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .as-intake-workspace-bar__actions .as-button {
    min-width: 0;
    padding-inline: 12px;
  }
}

/* Final portal usability pass: keep mobile inputs from triggering iOS zoom and make overlay panels usable. */
input,
select,
textarea,
button {
  font-size: max(16px, 1rem);
}

html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

.as-search-clear {
  width: 100%;
  margin-top: 0.65rem;
}

body.as-mode-staff.as-staff-signed-in .as-search-results,
body.as-mode-staff.as-chart-selected .as-search-results {
  min-height: 320px;
  max-height: calc(100dvh - 460px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

#staff-workspace .as-photos-card.as-staff-task-card.is-open,
#staff-workspace .as-service-log-card.as-staff-task-card.is-open,
#staff-workspace .as-service-report-card.as-staff-task-card.is-open {
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr);
  height: calc(100dvh - 48px);
  max-height: calc(100dvh - 48px);
  overflow: hidden;
}

#staff-workspace .as-photos-card.as-staff-task-card.is-open .as-card__header,
#staff-workspace .as-service-log-card.as-staff-task-card.is-open .as-card__header,
#staff-workspace .as-service-report-card.as-staff-task-card.is-open .as-card__header {
  min-height: 0;
}

#staff-workspace .as-photos-card.as-staff-task-card.is-open .as-photo-form,
#staff-workspace .as-service-log-card.as-staff-task-card.is-open .as-service-log-form,
#staff-workspace .as-service-report-card.as-staff-task-card.is-open {
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding-right: 6px;
}

#staff-workspace .as-photos-card.as-staff-task-card.is-open .as-photo-workspace {
  min-height: 0;
}

#staff-workspace .as-photos-card.as-staff-task-card.is-open .as-photo-preview {
  max-height: none;
}

.as-service-log-form {
  display: grid;
  gap: 1rem;
}

.as-service-log-stages {
  display: grid;
  gap: 0.85rem;
}

.as-service-log-stage-map {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.as-service-log-stage-map span {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  min-width: 0;
  border: 1px solid rgba(226, 216, 206, 0.92);
  border-radius: 14px;
  background: rgba(255, 253, 251, 0.76);
  color: var(--as-muted);
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1.18;
  padding: 8px 10px;
}

.as-service-log-stage-map strong {
  display: inline-grid;
  width: 22px;
  height: 22px;
  place-items: center;
  border-radius: 999px;
  background: var(--as-ink);
  color: var(--as-white);
  font-size: 0.68rem;
}

.as-service-log-stage {
  display: grid;
  gap: 0.75rem;
  border: 1px solid rgba(157, 123, 98, 0.24);
  border-radius: 18px;
  background: rgba(255, 253, 251, 0.86);
  padding: 0.95rem;
}

.as-service-log-stage__header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.85rem;
  align-items: start;
}

.as-service-log-stage__header > span {
  display: inline-flex;
  border-radius: 999px;
  background: var(--as-ink);
  color: var(--as-white);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  padding: 0.45rem 0.6rem;
  text-transform: uppercase;
  white-space: nowrap;
}

.as-service-log-stage h4 {
  margin: 0.1rem 0 0;
  color: var(--as-ink);
  font-family: var(--as-serif);
  font-size: clamp(1.05rem, 1.55vw, 1.35rem);
  font-weight: 500;
  line-height: 1.14;
}

.as-stage-note {
  max-width: 1120px;
  margin: 0;
  color: var(--as-muted);
  font-size: 0.86rem;
  line-height: 1.45;
}

.as-service-log-stage--manager {
  border-color: rgba(157, 123, 98, 0.36);
  background: #fff8f0;
}

.as-service-log-stage--owner {
  border-color: rgba(31, 27, 24, 0.2);
  background: #f7f1ea;
}

.as-service-log-stage--follow-up {
  grid-column: 1 / -1;
  border-color: rgba(83, 111, 91, 0.24);
  background: #f6faf4;
}

.as-service-log-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
}

.as-service-log-section {
  display: grid;
  align-content: start;
  gap: 0.72rem;
  min-width: 0;
  padding: 0.9rem;
  border: 1px solid rgba(226, 216, 206, 0.74);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.5);
}

.as-service-log-section--wide {
  grid-column: 1 / -1;
}

.as-service-log-section--photos {
  grid-column: 1 / -1;
}

.as-service-log-readback {
  display: grid;
  gap: 1rem;
  padding: 0.95rem;
  border: 1px solid rgba(20, 20, 20, 0.14);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(255, 252, 246, 0.96), rgba(255, 255, 255, 0.72));
  box-shadow: 0 16px 38px rgba(18, 15, 11, 0.08);
}

.as-service-log-readback[hidden] {
  display: none;
}

.as-service-log-readback__header {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.as-service-log-readback__header h4 {
  margin: 0;
  color: var(--as-ink);
  font-family: var(--as-serif);
  font-size: clamp(1.1rem, 1.8vw, 1.45rem);
  font-weight: 500;
}

.as-service-log-readback__header span {
  max-width: 46%;
  color: var(--as-muted);
  font-size: 0.82rem;
  line-height: 1.4;
  text-align: right;
}

.as-service-log-readback__sections {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
}

.as-service-log-readback__section {
  display: grid;
  gap: 0.65rem;
  min-width: 0;
  padding: 0.85rem;
  border: 1px solid var(--as-line);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.72);
}

.as-service-log-readback__section--photos {
  grid-column: 1 / -1;
}

.as-service-log-readback__section h5 {
  margin: 0;
  color: var(--as-accent);
  font-size: 0.76rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.as-service-log-readback__list {
  display: grid;
  gap: 0.5rem;
  margin: 0;
}

.as-service-log-readback__list div {
  display: grid;
  grid-template-columns: minmax(112px, 0.42fr) minmax(0, 1fr);
  gap: 0.65rem;
  min-width: 0;
}

.as-service-log-readback__list dt,
.as-service-log-readback__list dd {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 0.83rem;
  line-height: 1.35;
}

.as-service-log-readback__list dt {
  color: var(--as-muted);
}

.as-service-log-readback__list dd {
  margin: 0;
  color: var(--as-ink);
}

.as-service-log-readback__photos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 0.7rem;
}

.as-service-log-section h3 {
  margin: 0;
  color: var(--as-accent);
  font-size: 0.82rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.as-service-log-photo-grid,
.as-service-log-status-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
}

.as-service-log-photo-preview {
  min-height: 170px;
  max-height: 360px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.as-saved-photo--compact {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  min-height: 0;
  padding: 10px;
}

.as-saved-photo--compact img {
  width: 92px;
  height: 76px;
  border-radius: 14px;
  object-fit: cover;
}

.as-service-report-card {
  min-height: 0;
}

.as-report-filters {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  align-items: end;
}

.as-report-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.as-report-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
  gap: 10px;
  margin: 12px 0;
}

.as-report-summary article {
  border: 1px solid var(--as-line);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.72);
  padding: 14px;
}

.as-report-summary strong {
  display: block;
  color: var(--as-black);
  font-size: clamp(1.45rem, 3vw, 2.2rem);
  line-height: 1;
}

.as-report-summary span {
  color: var(--as-muted);
  font-size: 0.75rem;
  font-weight: 850;
}

.as-report-list {
  display: grid;
  gap: 10px;
  max-height: min(560px, 58dvh);
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding-right: 6px;
}

.as-report-row {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  border: 1px solid var(--as-line);
  border-radius: 18px;
  background: var(--as-white);
  padding: 12px;
}

.as-report-row time {
  color: var(--as-focus);
  font-size: 0.85rem;
  font-weight: 900;
}

.as-report-row > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.as-report-row strong,
.as-report-row small {
  overflow-wrap: anywhere;
}

.as-report-row strong {
  color: var(--as-black);
  font-size: 1rem;
}

.as-report-row small {
  color: var(--as-muted);
  font-size: 0.82rem;
  line-height: 1.35;
}

.as-report-photo-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 76px));
  gap: 8px;
  margin-top: 6px;
}

.as-report-photo-thumb {
  display: grid;
  gap: 4px;
  min-width: 0;
  margin: 0;
}

.as-report-photo-thumb img {
  width: 76px;
  aspect-ratio: 1;
  object-fit: cover;
  border: 1px solid var(--as-line);
  border-radius: 12px;
  background: var(--as-cream);
}

.as-report-photo-thumb figcaption {
  color: var(--as-muted);
  font-size: 0.68rem;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.as-report-row__actions {
  justify-content: end;
}

.as-compact-checks {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0.5rem;
}

.as-compact-checks .as-inline-check {
  min-width: 0;
}

@media (max-width: 900px) {
  body.as-mode-staff.as-staff-signed-in .as-search-results,
  body.as-mode-staff.as-chart-selected .as-search-results {
    min-height: 260px;
    max-height: 44dvh;
  }

  #staff-workspace .as-photos-card.as-staff-task-card.is-open,
  #staff-workspace .as-service-log-card.as-staff-task-card.is-open,
  #staff-workspace .as-service-report-card.as-staff-task-card.is-open {
    inset: 8px;
    width: calc(100vw - 16px);
    height: calc(100dvh - 16px);
    max-height: calc(100dvh - 16px);
    padding: 16px;
    border-radius: 24px;
  }

  .as-service-log-grid,
  .as-service-log-stage-map,
  .as-service-log-photo-grid,
  .as-service-log-status-row,
  .as-service-log-readback__sections {
    grid-template-columns: 1fr;
  }

  .as-service-log-readback__header {
    display: grid;
  }

  .as-service-log-readback__header span {
    max-width: none;
    text-align: left;
  }

  .as-service-log-readback__list div {
    grid-template-columns: 1fr;
    gap: 0.18rem;
  }

  #staff-workspace .as-photos-card.as-staff-task-card.is-open .as-photo-workspace {
    grid-template-columns: 1fr;
  }

  .as-report-filters,
  .as-report-summary {
    grid-template-columns: 1fr 1fr;
  }

  .as-report-row {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .as-report-row__actions {
    justify-content: stretch;
  }

  .as-report-row__actions .as-button {
    width: 100%;
  }
}

@media (max-width: 700px) {
  input,
  select,
  textarea,
  button {
    font-size: 16px !important;
  }

  body.as-mode-staff.as-staff-signed-in .as-search-results,
  body.as-mode-staff.as-chart-selected .as-search-results {
    max-height: none;
  }

  .as-service-log-section {
    padding: 0.85rem;
    border-radius: 18px;
  }

  .as-service-log-stage {
    padding: 0.85rem;
  }

  .as-report-filters,
  .as-report-summary,
  .as-saved-photo--compact {
    grid-template-columns: 1fr;
  }

  .as-saved-photo--compact img {
    width: 100%;
    height: 160px;
  }
}

body.as-mode-staff.as-chart-selected .as-timeline {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

.as-timeline-group {
  display: grid;
  gap: 10px;
  border: 1px solid rgba(226, 216, 206, 0.76);
  border-radius: 16px;
  background: rgba(255, 253, 251, 0.72);
  padding: 12px;
}

.as-timeline-group__heading {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}

.as-timeline-group__heading h5 {
  margin: 2px 0 0;
  color: var(--as-black);
  font-size: clamp(17px, 1.25vw, 21px);
  line-height: 1.1;
}

.as-timeline-group__heading > span {
  border: 1px solid var(--as-line);
  border-radius: 999px;
  background: var(--as-cream);
  color: var(--as-focus);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.12em;
  padding: 6px 9px;
  text-transform: uppercase;
  white-space: nowrap;
}

.as-timeline-group__items {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 10px;
}

.as-timeline-card.is-expanded {
  border-color: var(--as-focus);
  background: #fffaf6;
  box-shadow: 0 0 0 4px rgba(157, 123, 98, 0.12);
}

.as-timeline-card__detail {
  border-top: 1px solid rgba(226, 216, 206, 0.82);
  margin-top: 4px;
  padding-top: 9px;
}

.as-timeline-card__detail dl {
  display: grid;
  gap: 7px;
  margin: 0;
}

.as-timeline-card__detail dl > div {
  display: grid;
  grid-template-columns: minmax(86px, 0.34fr) minmax(0, 1fr);
  gap: 8px;
}

.as-timeline-card__detail dt,
.as-timeline-card__detail dd {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 0.78rem;
  line-height: 1.3;
}

.as-timeline-card__detail dt {
  color: var(--as-muted);
}

.as-timeline-card__detail dd {
  margin: 0;
  color: var(--as-ink);
}

.as-calendar-provider-filter {
  display: grid;
  gap: 6px;
}

.as-multi-picker--calendar summary {
  min-height: 44px;
  padding-inline: 14px;
}

.as-multi-picker--calendar .as-multi-picker__menu {
  position: static;
  max-height: 230px;
  min-width: min(280px, 80vw);
  margin-top: 7px;
  padding: 9px;
  box-shadow: inset 0 0 0 1px rgba(226, 216, 206, 0.42);
}

.as-multi-picker--calendar .as-multi-picker__menu label {
  min-height: 34px;
  border: 1px solid transparent;
  background: rgba(255, 255, 255, 0.7);
  padding: 7px 9px;
}

.as-multi-picker--calendar .as-multi-picker__menu input {
  flex: 0 0 auto;
}

.as-multi-picker--calendar .as-kicker {
  margin-top: 2px;
}

#staff-workspace .as-service-log-readback__photos {
  grid-template-columns: repeat(auto-fill, minmax(220px, 260px));
  justify-content: start;
}

#staff-workspace .as-service-log-readback__photos .as-saved-photo--compact,
#staff-workspace #service-log-photo-preview .as-saved-photo--compact {
  grid-template-columns: 72px minmax(0, 1fr);
  max-width: 260px;
  align-items: start;
  gap: 10px;
  padding: 8px;
}

#staff-workspace .as-service-log-readback__photos .as-saved-photo--compact img,
#staff-workspace #service-log-photo-preview .as-saved-photo--compact img {
  width: 72px;
  height: 60px;
  max-height: 60px;
  border-radius: 12px;
}

@media (max-width: 720px) {
  .as-timeline-group__heading {
    display: grid;
    grid-template-columns: 1fr;
  }

  .as-timeline-card__detail dl > div,
  .as-timeline-group__items {
    grid-template-columns: 1fr;
  }
}

/* Staff Dashboard v2: approved first-pass dashboard target. */
body.as-mode-staff.as-staff-dashboard-visible main {
  padding: 24px;
  background:
    linear-gradient(180deg, rgba(246, 237, 225, 0.92) 0%, rgba(255, 253, 249, 0.98) 34%),
    var(--as-cream);
}

body.as-mode-staff.as-staff-dashboard-visible #staff-mode {
  max-width: 1440px;
  padding: 0;
}

body.as-mode-staff.as-staff-dashboard-visible .as-staff-layout {
  display: block;
  min-height: auto;
}

body.as-mode-staff.as-staff-dashboard-visible .as-client-summary,
body.as-mode-staff.as-staff-dashboard-visible .as-staff-main {
  display: none;
}

.as-staff-dashboard-v2 {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 24px;
  min-height: min(960px, calc(100dvh - 48px));
  color: var(--as-charcoal);
}

.as-dashboard-v2__rail {
  display: grid;
  grid-template-rows: auto 1fr auto auto;
  gap: 18px;
  min-width: 0;
  padding: 24px 16px;
  border-radius: 34px;
  background: #070605;
  color: #fffaf2;
  box-shadow: 0 28px 70px rgba(49, 37, 24, 0.24);
}

.as-dashboard-v2__brand {
  display: grid;
  gap: 4px;
  color: #fffaf2;
  text-decoration: none;
}

.as-dashboard-v2__brand img {
  display: block;
  width: min(142px, 100%);
  height: auto;
}

.as-dashboard-v2__brand span {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.4rem, 4vw, 3.5rem);
  line-height: 0.92;
}

.as-dashboard-v2__brand small,
.as-dashboard-v2__quick p,
.as-dashboard-v2__status-card span,
.as-dashboard-v2-panel .as-kicker,
.as-dashboard-v2-flow .as-kicker {
  color: #c6ad93;
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.as-dashboard-v2__nav {
  display: grid;
  align-content: start;
  gap: 10px;
  margin-top: 12px;
  padding: 18px 0;
}

.as-dashboard-v2__nav button,
.as-dashboard-v2__mobile-menu button,
.as-dashboard-v2-flow button,
.as-dashboard-v2-card button,
.as-dashboard-v2__quick button,
.as-dashboard-v2__session button,
.as-dashboard-v2-row button,
.as-dashboard-v2__status-card button {
  min-width: 0;
  border: 0;
  font: inherit;
  cursor: pointer;
}

.as-dashboard-v2__nav button {
  position: relative;
  width: 100%;
  padding: 13px 16px 13px 36px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.07);
  color: rgba(255, 250, 242, 0.88);
  text-align: left;
  font-size: 0.9rem;
  font-weight: 800;
}

.as-dashboard-v2__nav button::before {
  position: absolute;
  top: 50%;
  left: 18px;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: currentColor;
  content: "";
  transform: translateY(-50%);
}

.as-dashboard-v2__nav button.is-active {
  background: #fffaf2;
  color: var(--as-black);
}

.as-dashboard-v2__quick,
.as-dashboard-v2__session {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 18px;
  border-radius: 22px;
  background: #fffaf2;
  color: var(--as-black);
}

.as-dashboard-v2__quick strong,
.as-dashboard-v2__session strong {
  overflow-wrap: anywhere;
  font-size: 0.95rem;
}

.as-dashboard-v2__quick span,
.as-dashboard-v2__session span {
  color: var(--as-muted);
  font-size: 0.76rem;
  line-height: 1.45;
}

.as-dashboard-v2__quick button,
.as-dashboard-v2__session button {
  justify-self: start;
  margin-top: 4px;
  padding: 9px 14px;
  border-radius: 999px;
  background: var(--as-black);
  color: var(--as-white);
  font-size: 0.78rem;
  font-weight: 900;
}

.as-dashboard-v2__content {
  min-width: 0;
  padding: clamp(18px, 2vw, 28px);
  border: 1px solid rgba(219, 202, 181, 0.8);
  border-radius: 42px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.88), rgba(248, 240, 229, 0.72)),
    #fffdf9;
  box-shadow: 0 26px 70px rgba(62, 44, 28, 0.15);
}

.as-dashboard-v2__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 340px);
  gap: 24px;
  align-items: start;
  margin-bottom: 22px;
}

.as-dashboard-v2__header h2 {
  margin: 0;
  color: var(--as-black);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.8rem, 5vw, 4.4rem);
  line-height: 0.95;
  letter-spacing: 0;
}

.as-dashboard-v2__header p:not(.as-kicker) {
  max-width: 650px;
  margin: 12px 0 0;
  color: var(--as-muted);
  font-size: 0.98rem;
  line-height: 1.55;
}

.as-dashboard-v2__status-card {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 6px 12px;
  align-items: center;
  padding: 18px;
  border: 1px solid var(--as-line);
  border-radius: 26px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 14px 34px rgba(62, 44, 28, 0.08);
}

.as-dashboard-v2__status-card span {
  display: inline-grid;
  place-items: center;
  min-height: 32px;
  padding: 0 16px;
  border-radius: 999px;
  background: var(--as-black);
  color: var(--as-white);
}

.as-dashboard-v2__status-card strong,
.as-dashboard-v2__status-card small {
  grid-column: 2;
  min-width: 0;
  overflow-wrap: anywhere;
}

.as-dashboard-v2__status-card strong {
  color: var(--as-charcoal);
  font-size: 0.95rem;
}

.as-dashboard-v2__status-card small {
  color: var(--as-muted);
  font-size: 0.78rem;
}

.as-dashboard-v2__status-card button {
  grid-row: 1 / span 2;
  grid-column: 3;
  align-self: center;
  padding: 11px 15px;
  border-radius: 999px;
  background: var(--as-black);
  color: var(--as-white);
  font-size: 0.8rem;
  font-weight: 900;
}

.as-dashboard-v2__mobile-menu {
  display: none;
}

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

.as-dashboard-v2-card {
  display: grid;
  gap: 8px;
  min-width: 0;
  min-height: 170px;
  padding: 18px;
  border: 1px solid var(--as-line);
  border-radius: 28px;
  background:
    linear-gradient(180deg, rgba(247, 234, 221, 0.56), rgba(255, 253, 249, 0.92)),
    var(--as-white);
  box-shadow: 0 16px 38px rgba(62, 44, 28, 0.09);
}

.as-dashboard-v2-card:nth-child(3) {
  background:
    linear-gradient(180deg, rgba(218, 229, 208, 0.52), rgba(255, 253, 249, 0.92)),
    var(--as-white);
}

.as-dashboard-v2-card--attention {
  background:
    linear-gradient(180deg, rgba(225, 202, 174, 0.64), rgba(255, 253, 249, 0.92)),
    var(--as-white);
}

.as-dashboard-v2-card span {
  min-height: 36px;
  color: var(--as-black);
  font-size: 0.86rem;
  font-weight: 900;
  line-height: 1.25;
}

.as-dashboard-v2-card strong {
  color: var(--as-black);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.4rem, 4vw, 3.35rem);
  line-height: 0.9;
}

.as-dashboard-v2-card small {
  color: var(--as-focus);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.as-dashboard-v2-card button {
  justify-self: start;
  align-self: end;
  padding: 0;
  background: transparent;
  color: var(--as-black);
  font-size: 0.78rem;
  font-weight: 900;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.as-dashboard-v2__workgrid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 332px);
  gap: 22px;
  align-items: stretch;
}

.as-dashboard-v2-panel {
  min-width: 0;
  border: 1px solid var(--as-line);
  border-radius: 32px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 20px 52px rgba(62, 44, 28, 0.11);
}

.as-dashboard-v2-panel--appointments {
  display: grid;
  grid-template-rows: auto minmax(180px, 1fr) auto;
  min-height: 374px;
  padding: 22px;
}

.as-dashboard-v2-panel__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: start;
  margin-bottom: 16px;
  padding: 20px;
  border-radius: 24px;
  background: rgba(246, 237, 225, 0.78);
}

.as-dashboard-v2-panel h3,
.as-dashboard-v2-flow h3 {
  margin: 0;
  color: var(--as-black);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.65rem, 3vw, 2.25rem);
  line-height: 1.05;
}

.as-dashboard-v2-panel p:not(.as-kicker),
.as-dashboard-v2-flow p:not(.as-kicker) {
  margin: 8px 0 0;
  color: var(--as-muted);
  font-size: 0.86rem;
  line-height: 1.45;
}

#staff-dashboard-sync-chip {
  padding: 10px 14px;
  border-radius: 999px;
  background: var(--as-black);
  color: var(--as-white);
  font-size: 0.78rem;
  font-weight: 900;
  white-space: nowrap;
}

.as-dashboard-v2-list {
  display: grid;
  align-content: start;
  gap: 10px;
  min-width: 0;
}

.as-dashboard-v2-list .as-placeholder {
  min-height: 96px;
  border: 1px dashed var(--as-line);
  border-radius: 20px;
  background: rgba(255, 253, 249, 0.72);
  color: var(--as-muted);
}

.as-dashboard-v2-row {
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  min-width: 0;
  padding: 12px;
  border: 1px solid rgba(219, 202, 181, 0.78);
  border-radius: 18px;
  background: rgba(255, 253, 249, 0.92);
}

.as-dashboard-v2-row time {
  color: var(--as-focus);
  font-size: 0.88rem;
  font-weight: 900;
}

.as-dashboard-v2-row div {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.as-dashboard-v2-row strong,
.as-dashboard-v2-row small,
.as-dashboard-v2-activity-row strong,
.as-dashboard-v2-activity-row small {
  min-width: 0;
  overflow-wrap: anywhere;
}

.as-dashboard-v2-row strong {
  color: var(--as-black);
  font-size: 0.92rem;
}

.as-dashboard-v2-row small,
.as-dashboard-v2-activity-row small {
  color: var(--as-muted);
  font-size: 0.78rem;
  line-height: 1.35;
}

.as-dashboard-v2-row button {
  padding: 8px 11px;
  border-radius: 999px;
  background: var(--as-black);
  color: var(--as-white);
  font-size: 0.74rem;
  font-weight: 900;
}

.as-dashboard-v2-panel__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

.as-dashboard-v2__rightcol {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  gap: 20px;
  min-width: 0;
}

.as-dashboard-v2-panel--activity {
  padding: 24px;
}

.as-dashboard-v2-activity-row {
  display: grid;
  gap: 3px;
  padding: 11px 14px;
  border: 1px solid var(--as-line);
  border-radius: 16px;
  background: rgba(246, 237, 225, 0.72);
}

.as-dashboard-v2-panel--pending {
  padding: 24px;
  background: var(--as-black);
  color: var(--as-white);
}

.as-dashboard-v2-panel--pending .as-kicker,
.as-dashboard-v2-panel--pending h3,
.as-dashboard-v2-panel--pending p {
  color: var(--as-white);
}

.as-dashboard-v2-panel--pending p {
  opacity: 0.76;
}

.as-dashboard-v2-panel--pending dl {
  display: grid;
  gap: 10px;
  margin: 18px 0 0;
}

.as-dashboard-v2-panel--pending dl > div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding-top: 10px;
  border-top: 1px solid rgba(255, 250, 242, 0.22);
}

.as-dashboard-v2-panel--pending dt {
  color: rgba(255, 250, 242, 0.86);
  font-size: 0.82rem;
  font-weight: 800;
}

.as-dashboard-v2-panel--pending dd {
  margin: 0;
  color: var(--as-white);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.5rem;
  line-height: 1;
}

.as-dashboard-v2-flow {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) repeat(4, auto);
  gap: 12px;
  align-items: center;
  margin-top: 22px;
  padding: 20px 24px;
  border: 1px solid var(--as-line);
  border-radius: 30px;
  background: rgba(246, 237, 225, 0.84);
  box-shadow: 0 14px 34px rgba(62, 44, 28, 0.08);
}

.as-dashboard-v2-flow button {
  padding: 11px 16px;
  border-radius: 999px;
  background: var(--as-white);
  color: var(--as-black);
  font-size: 0.82rem;
  font-weight: 900;
  box-shadow: inset 0 0 0 1px var(--as-line);
}

.as-dashboard-v2-flow button:first-of-type {
  background: var(--as-black);
  color: var(--as-white);
  box-shadow: none;
}

@media (max-width: 1100px) {
  body.as-mode-staff.as-staff-dashboard-visible main {
    padding: 16px;
  }

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

  .as-dashboard-v2__rail {
    display: none;
  }

  .as-dashboard-v2__content {
    border-radius: 32px;
  }

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

  .as-dashboard-v2__mobile-menu:not([hidden]) {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 16px;
  }

  .as-dashboard-v2__mobile-menu button {
    padding: 12px 10px;
    border-radius: 999px;
    background: var(--as-black);
    color: var(--as-white);
    font-size: 0.8rem;
    font-weight: 900;
  }

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

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

  .as-dashboard-v2__rightcol {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
  }

  .as-dashboard-v2-flow {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .as-dashboard-v2-flow > div {
    grid-column: 1 / -1;
  }
}

@media (max-width: 640px) {
  body.as-mode-staff.as-staff-dashboard-visible main {
    padding: 10px;
    overflow-x: hidden;
  }

  .as-dashboard-v2__content {
    padding: 16px;
    border-radius: 26px;
  }

  .as-dashboard-v2__header h2 {
    font-size: clamp(2.35rem, 13vw, 3.1rem);
  }

  .as-dashboard-v2__status-card {
    grid-template-columns: 1fr auto;
  }

  .as-dashboard-v2__status-card span,
  .as-dashboard-v2__status-card strong,
  .as-dashboard-v2__status-card small {
    grid-column: 1;
  }

  .as-dashboard-v2__status-card button {
    grid-row: 1 / span 3;
    grid-column: 2;
  }

  .as-dashboard-v2__mobile-menu:not([hidden]),
  .as-dashboard-v2__cards,
  .as-dashboard-v2__rightcol,
  .as-dashboard-v2-flow {
    grid-template-columns: 1fr;
  }

  .as-dashboard-v2-card {
    min-height: 138px;
  }

  .as-dashboard-v2-panel--appointments {
    padding: 14px;
  }

  .as-dashboard-v2-panel__header,
  .as-dashboard-v2-row {
    grid-template-columns: 1fr;
  }

  #staff-dashboard-sync-chip,
  .as-dashboard-v2-row button {
    justify-self: start;
  }

  .as-dashboard-v2-panel__actions .as-button {
    width: 100%;
  }
}

@media (max-width: 1180px) {
  .as-public-nav {
    display: none;
  }

  .as-public-menu-toggle {
    display: inline-flex;
  }

  .as-public-service-grid,
  .as-public-path-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .as-public-hero {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .as-service-hero,
  .as-service-conversation,
  .as-service-gallery,
  .as-service-cta {
    grid-template-columns: 1fr;
  }

  .as-public-hero h1,
  .as-public-section h2,
  .as-service-hero h1,
  .as-service-section h2 {
    max-width: 14ch;
  }

  .as-public-hero__media,
  .as-service-hero__media {
    height: 430px;
    max-height: 430px;
    min-height: 430px;
  }

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

@media (max-width: 860px) {
  .as-header {
    gap: 10px;
  }

  body:not(.as-mode-staff):not(.as-client-signed-in) .as-header-auth {
    display: none;
  }

  .as-public-menu-toggle {
    order: 2;
  }

  .as-header-auth {
    order: 3;
  }

  .as-public-split,
  .as-public-split--media,
  .as-public-education,
  .as-public-gift-card,
  .as-public-portal-heading,
  .as-public-contact,
  .as-public-cta-band,
  .as-service-education-wrap {
    grid-template-columns: 1fr;
  }

  .as-public-contact,
  .as-public-cta-band,
  .as-service-cta {
    display: grid;
    justify-items: start;
  }

  .as-public-mini-cards,
  .as-public-value-grid,
  .as-public-timeline,
  .as-service-grid,
  .as-service-proof-grid,
  .as-service-related-grid {
    grid-template-columns: 1fr;
  }

  .as-service-path {
    top: 66px;
  }

  .as-public-sticky-cta {
    display: none;
  }
}

@media (max-width: 640px) {
  body {
    overflow-x: hidden;
  }

  main {
    width: min(100% - 22px, 1180px);
  }

  .as-public-mobile-menu {
    inset: 66px 10px auto 10px;
  }

  .as-public-hero,
  .as-service-hero {
    padding-top: 22px;
  }

  .as-public-hero h1,
  .as-service-hero h1 {
    font-size: clamp(34px, 9.5vw, 44px);
  }

  .as-public-section h2,
  .as-service-section h2,
  .as-service-cta h2,
  .as-service-related h2 {
    font-size: clamp(28px, 8vw, 36px);
  }

  .as-public-hero__media,
  .as-service-hero__media {
    height: 300px;
    max-height: 320px;
    min-height: 300px;
    border-radius: 20px;
  }

  .as-public-service-grid,
  .as-public-path-grid,
  .as-service-options {
    grid-template-columns: 1fr;
  }

  .as-public-service-card {
    grid-template-rows: 150px auto;
    border-radius: 18px;
  }

  .as-public-section,
  .as-service-section {
    padding: 34px 0;
  }

  .as-public-choice-card,
  .as-public-mini-cards article,
  .as-public-path-grid article,
  .as-public-value-grid article,
  .as-public-timeline article,
  .as-service-card,
  .as-service-option,
  .as-service-education,
  .as-service-step,
  .as-service-proof,
  .as-service-related-card {
    border-radius: 20px;
  }

  .as-public-education,
  .as-public-cta-band,
  .as-public-contact,
  .as-service-cta,
  .as-service-related {
    border-radius: 20px;
  }

  .as-service-step {
    grid-template-columns: 1fr;
  }

  .as-service-gallery figure,
  .as-service-gallery figure:first-child {
    min-height: 260px;
  }

  .as-public-sticky-cta {
    right: 10px;
    bottom: max(12px, env(safe-area-inset-bottom));
    left: auto;
    justify-content: center;
    max-width: calc(100% - 20px);
    padding: 9px 13px;
  }
}

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

  html {
    scroll-behavior: auto;
  }

  .as-public-service-card {
    transition: none;
  }

  .as-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .as-public-service-card:hover,
  .as-public-service-card:focus-visible,
  .as-service-related-card:hover,
  .as-service-related-card:focus-visible {
    transform: none;
  }
}

@media (max-width: 720px) {
  .as-chart-section-heading,
  .as-chart-detail-panel__header,
  .as-timeline-card__top,
  .as-service-log-stage__header {
    display: grid;
    grid-template-columns: 1fr;
  }

  .as-chart-detail-panel dl {
    grid-template-columns: 1fr;
  }

  .as-service-log-stage,
  .as-chart-attention,
  .as-chart-history,
  .as-chart-detail-panel {
    padding: 12px;
  }
}

@media (max-width: 640px) {
  #staff-workspace .as-service-log-card.as-staff-task-card.is-open {
    min-width: 0;
    overflow-x: hidden;
  }

  #staff-workspace .as-service-log-card.as-staff-task-card.is-open .as-card__header,
  #staff-workspace .as-service-log-card.as-staff-task-card.is-open .as-service-log-form,
  .as-service-log-stage-map,
  .as-service-log-stages,
  .as-service-log-stage,
  .as-service-log-section {
    min-width: 0;
    max-width: 100%;
  }

  #staff-workspace .as-service-log-card.as-staff-task-card.is-open .as-card__header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: start;
  }

  #staff-workspace .as-service-log-card.as-staff-task-card.is-open .as-card__header > div {
    min-width: 0;
  }

  #staff-workspace .as-service-log-card.as-staff-task-card.is-open .as-panel-close {
    width: 36px;
    height: 36px;
    font-size: 22px;
  }

  #staff-workspace .as-service-log-card.as-staff-task-card.is-open .as-service-log-form {
    overflow-x: hidden;
    padding-right: 0;
  }

  #staff-workspace .as-service-log-card.as-staff-task-card.is-open .as-card__header h3,
  #staff-workspace .as-service-log-card.as-staff-task-card.is-open .as-card__header p,
  .as-service-log-stage h4,
  .as-service-log-stage p,
  .as-service-log-section h3 {
    overflow-wrap: anywhere;
  }

  .as-service-log-stage__header > span {
    width: fit-content;
    max-width: 100%;
    white-space: normal;
  }
}

/* Staff dashboard route cleanup: align the workspace with the current public art direction. */
body.as-mode-staff.as-staff-dashboard-visible main {
  width: min(1280px, calc(100% - 32px));
  padding: clamp(20px, 3vw, 40px) 0;
  background:
    radial-gradient(circle at 78% 8%, rgba(224, 207, 187, 0.28), transparent 28rem),
    linear-gradient(180deg, #fffdfb 0%, #f8f4ef 100%);
}

body.as-mode-staff.as-staff-dashboard-visible #staff-mode {
  max-width: none;
}

.as-staff-dashboard-v2 {
  grid-template-columns: minmax(180px, 220px) minmax(0, 1fr);
  gap: clamp(16px, 2.6vw, 28px);
  min-height: 0;
  font-family: var(--as-current-site-font);
}

.as-dashboard-v2__rail {
  grid-template-rows: auto auto 1fr auto;
  gap: 16px;
  padding: 18px;
  border: 1px solid rgba(226, 216, 206, 0.9);
  border-radius: 24px;
  background: rgba(255, 253, 251, 0.9);
  color: var(--as-black);
  box-shadow: 0 18px 48px rgba(42, 34, 28, 0.08);
}

.as-dashboard-v2__brand {
  color: var(--as-black);
}

.as-dashboard-v2__brand img {
  width: min(128px, 100%);
}

.as-dashboard-v2__brand span,
.as-dashboard-v2__header h2,
.as-dashboard-v2-card strong,
.as-dashboard-v2-panel h3,
.as-dashboard-v2-flow h3,
.as-dashboard-v2-panel--pending dd {
  font-family: var(--as-current-site-font);
  font-weight: 400;
  letter-spacing: 0;
}

.as-dashboard-v2__brand span {
  font-size: clamp(2rem, 2.6vw, 2.9rem);
  line-height: 1;
}

.as-dashboard-v2__brand small,
.as-dashboard-v2__quick p,
.as-dashboard-v2__status-card span,
.as-dashboard-v2-panel .as-kicker,
.as-dashboard-v2-flow .as-kicker {
  color: var(--as-focus);
  letter-spacing: 0.13em;
}

.as-dashboard-v2__nav {
  gap: 8px;
  margin-top: 0;
  padding: 8px 0 0;
}

.as-dashboard-v2__nav button {
  border: 1px solid rgba(226, 216, 206, 0.78);
  background: rgba(255, 255, 255, 0.72);
  color: var(--as-black);
  font-weight: 700;
}

.as-dashboard-v2__nav button.is-active {
  border-color: var(--as-black);
  background: var(--as-black);
  color: var(--as-white);
}

.as-dashboard-v2__quick,
.as-dashboard-v2__session {
  border: 1px solid rgba(226, 216, 206, 0.78);
  background: #fff;
}

.as-dashboard-v2__quick {
  align-self: start;
}

.as-dashboard-v2__quick button,
.as-dashboard-v2__session button {
  min-height: 38px;
  align-self: start;
  justify-self: start;
  padding: 9px 14px;
}

.as-dashboard-v2__content {
  padding: clamp(22px, 3vw, 40px);
  border-color: rgba(226, 216, 206, 0.84);
  border-radius: 26px;
  background: rgba(255, 253, 251, 0.92);
  box-shadow: 0 18px 54px rgba(42, 34, 28, 0.08);
}

.as-dashboard-v2__header {
  grid-template-columns: minmax(0, 1fr) minmax(240px, 340px);
  margin-bottom: 24px;
}

.as-dashboard-v2__header h2 {
  font-size: clamp(3rem, 5vw, 4.65rem);
  line-height: 1.02;
}

.as-dashboard-v2__header p:not(.as-kicker) {
  color: var(--as-muted);
  font-size: 1rem;
  line-height: 1.6;
}

.as-dashboard-v2__status-card,
.as-dashboard-v2-card,
.as-dashboard-v2-panel,
.as-dashboard-v2-flow {
  border-color: rgba(226, 216, 206, 0.88);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.8);
  box-shadow: 0 10px 28px rgba(42, 34, 28, 0.055);
}

.as-dashboard-v2__cards {
  gap: 12px;
}

.as-dashboard-v2-card {
  min-height: 144px;
  padding: 18px;
}

.as-dashboard-v2-card:nth-child(3),
.as-dashboard-v2-card--attention {
  background: rgba(255, 255, 255, 0.8);
}

.as-dashboard-v2-card span {
  min-height: 0;
  font-size: 0.9rem;
  font-weight: 700;
}

.as-dashboard-v2-card strong {
  font-size: clamp(2.2rem, 4vw, 3.1rem);
}

.as-dashboard-v2-card small {
  color: var(--as-focus);
  letter-spacing: 0.11em;
}

.as-dashboard-v2-card button,
.as-dashboard-v2__quick button,
.as-dashboard-v2__session button,
.as-dashboard-v2-row button,
.as-dashboard-v2__status-card button,
.as-dashboard-v2-flow button:first-of-type {
  background: var(--as-black);
  color: var(--as-white);
}

.as-dashboard-v2-card button {
  padding: 0;
  background: transparent;
  color: var(--as-black);
  text-decoration: underline;
  text-underline-offset: 4px;
}

.as-dashboard-v2__workgrid {
  grid-template-columns: minmax(0, 1fr) minmax(260px, 330px);
  gap: 18px;
}

.as-dashboard-v2-panel--appointments {
  min-height: 340px;
  padding: 18px;
}

.as-dashboard-v2-panel__header {
  border: 1px solid rgba(226, 216, 206, 0.72);
  border-radius: 20px;
  background: #f8f3ee;
}

.as-dashboard-v2-panel h3,
.as-dashboard-v2-flow h3 {
  font-size: clamp(1.55rem, 2.4vw, 2.15rem);
  line-height: 1.12;
}

.as-dashboard-v2-panel--pending {
  background: var(--as-black);
}

.as-dashboard-v2-flow {
  background: #f8f3ee;
}

.as-dashboard-v2-flow button {
  background: #fff;
}

@media (max-width: 1100px) {
  .as-staff-dashboard-v2 {
    grid-template-columns: 1fr;
  }

  .as-dashboard-v2__rail {
    display: none;
  }

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

  .as-dashboard-v2__status-card {
    width: 100%;
    max-width: none;
  }
}

@media (max-width: 640px) {
  body.as-mode-staff.as-staff-dashboard-visible main {
    width: min(100% - 20px, 1280px);
    padding-block: 12px;
  }

  .as-dashboard-v2__content {
    padding: 16px;
    border-radius: 22px;
  }

  .as-dashboard-v2__header {
    gap: 14px;
    margin-bottom: 18px;
  }

  .as-dashboard-v2__header h2 {
    font-size: clamp(2.45rem, 13vw, 3.25rem);
    line-height: 1.02;
  }

  .as-dashboard-v2__header p:not(.as-kicker) {
    max-width: 34ch;
    font-size: 0.95rem;
  }

  .as-dashboard-v2__status-card {
    grid-template-columns: 1fr auto;
    padding: 14px;
  }

  .as-dashboard-v2__status-card span,
  .as-dashboard-v2__status-card strong,
  .as-dashboard-v2__status-card small {
    grid-column: 1;
  }

  .as-dashboard-v2__status-card button {
    grid-row: 1 / span 3;
    grid-column: 2;
  }
}
.as-staff-product-nav {
  grid-column: 1;
  grid-row: 1 / span 3;
  position: sticky;
  top: 18px;
  display: grid;
  grid-template-columns: 1fr;
  align-content: start;
  gap: 2px;
  max-height: calc(100dvh - 36px);
  overflow: auto;
  padding: 12px;
  border: 1px solid #26211d;
  border-radius: 20px;
  background: #11100e;
  box-shadow: 0 20px 60px rgba(31, 23, 16, 0.2);
}

.as-staff-layout {
  grid-template-columns: 220px minmax(0, 1fr) !important;
  align-items: start;
}

.as-staff-product-nav a {
  min-width: 0;
  padding: 10px 12px;
  border: 0;
  border-radius: 11px;
  color: #fffaf4;
  text-decoration: none;
  transition: background 180ms ease, transform 180ms ease;
}

.as-staff-product-nav a:hover,
.as-staff-product-nav a:focus-visible {
  background: #2c2722;
}

.as-staff-product-nav span,
.as-staff-product-nav small {
  display: block;
}

.as-staff-product-nav span {
  font-weight: 750;
}

.as-staff-product-nav small {
  margin-top: 3px;
  color: #bdb2a7;
  font-size: 11px;
  line-height: 1.35;
}

@media (max-width: 1100px) {
  .as-staff-product-nav {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .as-staff-layout {
    grid-template-columns: 1fr !important;
  }
  .as-staff-product-nav {
    grid-column: 1;
    grid-row: auto;
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-height: none;
    border-radius: 16px;
  }
  .as-staff-product-nav a { padding: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .as-staff-product-nav a { transition: none; }
}
.as-client-dashboard {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  grid-column: 1 / -1;
}

.as-client-dashboard[hidden] { display: none; }
.as-client-dashboard .as-card { min-width: 0; }
.as-client-dashboard__list { display: grid; gap: 10px; margin: 14px 0 18px; padding-left: 20px; }
.as-client-dashboard__empty { color: var(--as-muted); }
.as-client-dashboard__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; }
.as-client-dashboard__actions .as-button { display: inline-flex; align-items: center; gap: 6px; margin-top: 0 !important; }
.as-client-dashboard__products #client-favourite-colours .as-client-dashboard__list { color: var(--as-wine); }
.as-client-dashboard__orders .as-client-dashboard__list > li { padding-bottom: 10px; border-bottom: 1px solid rgba(223, 211, 199, 0.8); line-height: 1.5; }
.as-client-dashboard__orders .as-client-dashboard__list > li:last-child { border-bottom: 0; }

.as-client-priority {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(260px, .6fr);
  align-items: center;
  gap: clamp(20px, 4vw, 52px);
  padding: clamp(24px, 4vw, 48px);
  border: 1px solid var(--as-line);
  border-radius: 28px;
  background: linear-gradient(120deg, #f4ebe3, #fffaf6 58%, #f1e1da);
  box-shadow: var(--as-shadow);
}

.as-client-priority[hidden] { display: none; }
.as-client-priority h3 { margin: 6px 0 10px; font: 500 clamp(1.8rem, 3.2vw, 3.2rem)/1.02 var(--as-display); }
.as-client-priority p { max-width: 62ch; color: var(--as-muted); }
.as-client-priority__actions { display: grid; gap: 14px; justify-items: stretch; }
.as-client-priority__actions > .as-button { justify-content: center; }
.as-client-priority__secondary { display: grid; gap: 8px; }
.as-client-priority__secondary a { color: var(--as-wine); text-decoration: underline; text-underline-offset: 4px; }

@media (max-width: 700px) {
  .as-client-dashboard { grid-template-columns: minmax(0, 1fr); }
  .as-client-priority { grid-template-columns: 1fr; border-radius: 20px; }
}

/* Client portal: compact workspace navigation and place-preserving dashboard. */
.as-client-portal-nav {
  display: none;
}

body.as-client-signed-in .as-header {
  position: sticky;
  top: 0;
  z-index: 80;
  min-height: 88px;
  border-bottom: 1px solid rgba(226, 216, 206, 0.9);
  background: rgba(255, 253, 251, 0.96);
  backdrop-filter: blur(18px);
}

body.as-client-signed-in .as-public-nav,
body.as-client-signed-in .as-public-menu-toggle,
body.as-client-signed-in .as-public-mobile-menu,
body.as-client-signed-in .as-header-auth__menu > .as-nav {
  display: none !important;
}

body.as-client-signed-in .as-client-portal-nav:not([hidden]) {
  display: flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
  margin-left: auto;
  padding: 5px;
  overflow-x: auto;
  border: 1px solid var(--as-line);
  border-radius: 999px;
  background: var(--as-cream);
  scrollbar-width: none;
}

body.as-client-signed-in .as-client-portal-nav::-webkit-scrollbar {
  display: none;
}

.as-client-portal-nav a {
  flex: 0 0 auto;
  padding: 9px 12px;
  border-radius: 999px;
  color: var(--as-muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  text-decoration: none;
}

.as-client-portal-nav a:hover,
.as-client-portal-nav a:focus-visible,
.as-client-portal-nav a.is-active {
  background: var(--as-white);
  color: var(--as-black);
  box-shadow: 0 4px 14px rgba(34, 29, 25, 0.08);
}

.as-client-portal-nav .as-client-portal-nav__external {
  color: #75433f;
}

body.as-client-signed-in .as-header-auth {
  margin-left: 8px;
}

body.as-client-signed-in .as-staff-session--header {
  gap: 8px;
  padding: 4px 4px 4px 12px;
  border: 1px solid var(--as-line);
  border-radius: 999px;
  background: var(--as-white);
}

body.as-client-signed-in .as-staff-session--header span {
  max-width: 150px;
  overflow: hidden;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.as-client-signed-in .as-staff-session--header .as-button {
  min-height: 36px;
  padding: 8px 12px;
}

body.as-client-signed-in main {
  width: min(1240px, calc(100% - 28px));
}

body.as-client-signed-in .as-client-private-content {
  max-width: 1240px;
  gap: 18px;
}

.as-client-welcome {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  padding: clamp(20px, 3vw, 34px);
  overflow: hidden;
  border: 1px solid rgba(226, 216, 206, 0.9);
  border-radius: 28px;
  background: linear-gradient(120deg, #fffdfb 0%, #f4ebe4 100%);
}

.as-client-welcome h2 {
  max-width: 740px;
  margin: 4px 0 8px;
  font-size: clamp(31px, 4vw, 52px);
  line-height: 0.98;
}

.as-client-welcome p:last-child {
  max-width: 720px;
  margin: 0;
  color: var(--as-muted);
}

body.as-client-signed-in .as-client-flow-grid {
  grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
  gap: 16px;
}

body.as-client-signed-in .as-appointment-panel {
  grid-column: span 7;
  align-content: space-between;
  align-items: start;
  grid-template-columns: minmax(0, 1fr);
  scroll-margin-top: 108px;
}

body.as-client-signed-in .as-appointment-panel__side {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
}

.as-client-forms-group {
  display: grid;
  grid-column: span 5;
  gap: 12px;
  align-content: start;
  min-width: 0;
  scroll-margin-top: 108px;
}

body.as-client-signed-in .as-client-start-card {
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  min-height: 0;
}

body.as-client-signed-in .as-client-start-card .as-button {
  justify-self: start;
}

body.as-client-signed-in .as-client-history-card {
  min-height: 0;
  padding: 14px 16px;
}

body.as-client-signed-in .as-client-history-card .as-intake-browser {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
}

body.as-client-signed-in .as-client-history-card .as-intake-browser__header {
  margin: 0;
}

body.as-client-signed-in .as-client-history-card .as-intake-browser__header h4 {
  margin: 2px 0 0;
  font-size: 20px;
}

body.as-client-signed-in .as-client-history-card .as-placeholder {
  min-height: 0;
  padding: 12px 0 0;
  border: 0;
  border-top: 1px solid var(--as-line);
  border-radius: 0;
  background: transparent;
  text-align: left;
}

body.as-client-signed-in .as-client-dashboard {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 16px;
}

body.as-client-signed-in .as-client-dashboard .as-card {
  display: flex;
  flex-direction: column;
  grid-column: span 4;
  min-height: 260px;
  padding: 20px;
  scroll-margin-top: 108px;
  border-radius: 24px;
  box-shadow: 0 14px 36px rgba(34, 29, 25, 0.07);
}

body.as-client-signed-in .as-client-dashboard .as-client-dashboard__history,
body.as-client-signed-in .as-client-dashboard .as-client-dashboard__care {
  grid-column: span 6;
}

body.as-client-signed-in .as-client-dashboard .as-button {
  align-self: flex-start;
  margin-top: auto;
}

body.as-client-signed-in .as-client-dashboard__list {
  margin: 12px 0 18px;
  padding-left: 18px;
}

body.as-client-signed-in .as-client-dashboard__empty {
  margin: 10px 0 18px;
  line-height: 1.55;
}

@media (max-width: 1080px) {
  body.as-client-signed-in .as-client-portal-nav a:nth-child(4),
  body.as-client-signed-in .as-client-portal-nav a:nth-child(5),
  body.as-client-signed-in .as-client-portal-nav a:nth-child(6) {
    display: none;
  }

  body.as-client-signed-in .as-staff-session--header span {
    display: none;
  }
}

@media (max-width: 820px) {
  body.as-client-signed-in .as-header {
    flex-wrap: wrap;
    padding-bottom: 10px;
  }

  body.as-client-signed-in .as-client-portal-nav:not([hidden]) {
    order: 3;
    width: 100%;
    margin: 0;
  }

  body.as-client-signed-in .as-client-portal-nav a:nth-child(n) {
    display: block;
  }

  .as-client-welcome {
    align-items: flex-start;
    flex-direction: column;
  }

  body.as-client-signed-in .as-appointment-panel,
  .as-client-forms-group {
    grid-column: 1 / -1;
  }

  body.as-client-signed-in .as-client-dashboard .as-card,
  body.as-client-signed-in .as-client-dashboard .as-client-dashboard__history,
  body.as-client-signed-in .as-client-dashboard .as-client-dashboard__care {
    grid-column: span 6;
  }
}

@media (max-width: 560px) {
  body.as-client-signed-in main {
    width: min(100% - 18px, 1240px);
  }

  body.as-client-signed-in .as-header {
    min-height: 0;
    padding: 8px 10px;
  }

  body.as-client-signed-in .as-logo img {
    width: 116px;
  }

  body.as-client-signed-in .as-client-dashboard .as-card,
  body.as-client-signed-in .as-client-dashboard .as-client-dashboard__history,
  body.as-client-signed-in .as-client-dashboard .as-client-dashboard__care {
    grid-column: 1 / -1;
    min-height: 0;
  }

  .as-client-welcome,
  body.as-client-signed-in .as-appointment-panel,
  body.as-client-signed-in .as-client-start-card {
    padding: 18px;
  }
}
/* Restored approved integrated Performance presentation. */
/* Management Performance portal */
html.as-protected-staff-route body:not(.as-mode-staff) > * { visibility: hidden !important; }
html.as-protected-staff-route body:not(.as-mode-staff)::before { content: "Opening secure management view…"; position: fixed; z-index: 9999; inset: 0; display: grid; place-items: center; visibility: visible; background: #f5f0e9; color: #1d1b19; font: 700 .82rem/1.4 Arial, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.as-performance { width: min(100%, 1480px); margin: 0 auto; padding: clamp(1rem, 2vw, 2rem); color: #181716; }
.as-performance__header { display: flex; justify-content: space-between; gap: 1.5rem; align-items: flex-start; margin-bottom: 1.25rem; }
.as-performance__header h2 { margin: .2rem 0; font-size: clamp(2rem, 4vw, 3.5rem); }
.as-performance__header-actions { display: flex; gap: .65rem; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.as-performance__freshness { font-size: .8rem; color: #625d57; }
.as-performance__filters { display: grid; grid-template-columns: repeat(3, minmax(150px, 1fr)) minmax(220px, 1.6fr); gap: .75rem; padding: 1rem; border: 1px solid #ddd6ce; background: #f8f5f1; }
.as-performance__filters label { display: grid; gap: .35rem; font-size: .76rem; letter-spacing: .06em; text-transform: uppercase; }
.as-performance__filters select, .as-performance__filters input { width: 100%; min-height: 42px; border: 1px solid #c9c0b7; background: #fff; padding: .55rem .65rem; }
.as-performance__tabs { display: flex; gap: .4rem; overflow-x: auto; padding: 1rem 0 .65rem; border-bottom: 1px solid #ddd6ce; }
.as-performance__tabs button { flex: 0 0 auto; border: 0; background: transparent; padding: .65rem .8rem; color: #625d57; cursor: pointer; }
.as-performance__tabs button.is-active { background: #1d1b19; color: #fff; }
.as-performance__notice { margin: 1rem 0; padding: .8rem 1rem; background: #f4eadf; border-left: 4px solid #8d5949; }
.as-performance__notice.is-warning { background: #fff4df; border-left-color: #b37323; }
.as-performance-kpis { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); gap: .8rem; }
.as-performance-kpis article, .as-performance-panel { border: 1px solid #ddd6ce; background: #fff; padding: 1rem; }
.as-performance-kpis span, .as-performance-kpis small { display: block; color: #625d57; }
.as-performance-kpis strong { display: block; font-size: clamp(1.5rem, 3vw, 2.35rem); margin: .45rem 0; }
.as-performance-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin-top: .8rem; }
.as-performance-panel h3 { margin-top: .2rem; }
.as-performance-big { font-size: 2.5rem; margin: .6rem 0; }
.as-performance-breakdown { display: grid; gap: .5rem; }
.as-performance-breakdown div { display: flex; justify-content: space-between; border-bottom: 1px solid #eee8e1; padding-bottom: .45rem; }

/* Shared All Six portal application shell — Color Picker / Catalog system. */
body.as-mode-staff,
body.as-mode-client {
  --as-portal-ink: #211c19;
  --as-portal-paper: #f6f1e9;
  --as-portal-surface: #fffdf9;
  --as-portal-wine: #713d3d;
  --as-portal-rose: #bd746c;
  --as-portal-line: #d9d0c3;
  --as-portal-muted: #766e67;
  --as-portal-shadow: 0 20px 55px rgba(58, 39, 29, 0.1);
  background: var(--as-portal-paper);
  color: var(--as-portal-ink);
}

body.as-mode-staff .as-staff-layout {
  display: grid;
  grid-template-columns: minmax(280px, 320px) minmax(0, 1fr) !important;
  gap: 16px;
  align-items: start;
}

.as-staff-product-nav,
.as-dashboard-v2__rail {
  display: none !important;
}

.as-portal-shell-nav {
  position: fixed;
  z-index: 2147483646;
  inset: var(--as-performance-viewport-top, 0px) auto auto var(--as-performance-viewport-left, 0px);
  display: grid;
  align-content: start;
  gap: 18px;
  width: min(320px, var(--as-performance-viewport-width, 100dvw));
  height: var(--as-performance-viewport-height, 100dvh);
  max-height: var(--as-performance-viewport-height, 100dvh);
  overflow: auto;
  padding: 18px 14px;
  border: 1px solid var(--as-portal-line);
  border-radius: 0 20px 20px 0;
  background: var(--as-portal-surface);
  box-shadow: var(--as-portal-shadow);
  transform: translateX(calc(-100% - 28px));
  transition: transform 220ms ease;
}

body.as-staff-nav-open .as-portal-shell-nav { transform: translateX(0); }
body.as-staff-nav-open { overflow: hidden !important; }

.as-portal-shell-nav__heading { display:flex;align-items:center;justify-content:space-between;padding:4px 10px 12px;border-bottom:1px solid var(--as-portal-line); }
.as-portal-shell-nav__heading strong { font:800 .82rem/1.2 "DM Sans",var(--as-current-site-font),sans-serif;letter-spacing:.08em;text-transform:uppercase; }
.as-portal-shell-nav__heading button { display:inline-flex;align-items:center;justify-content:center;gap:6px;width:auto;height:38px;padding:0 12px;border:1px solid var(--as-portal-line);border-radius:999px;background:var(--as-portal-surface);font-size:.72rem;font-weight:800;cursor:pointer; }

.as-dashboard-action-detail { display:grid;gap:12px;margin-top:12px;padding:14px;border:1px solid var(--as-portal-line);border-radius:14px;background:#f8f1ea; }
.as-dashboard-action-detail[hidden] { display:none !important; }
.as-dashboard-action-detail__heading { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;align-items:start; }
.as-dashboard-action-detail__heading span,.as-dashboard-action-detail__heading strong,.as-dashboard-action-detail__heading small { grid-column:1; }
.as-dashboard-action-detail__heading span { color:var(--as-portal-wine);font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase; }
.as-dashboard-action-detail__heading small { color:var(--as-portal-muted); }
.as-dashboard-action-detail__heading button { grid-column:2;grid-row:1 / span 3;align-self:start;border:1px solid var(--as-portal-line);border-radius:999px;background:var(--as-portal-surface);padding:7px 11px;font-weight:750;cursor:pointer; }
.as-dashboard-action-detail__actions { display:flex;gap:8px;flex-wrap:wrap; }
.as-dashboard-action-detail__actions button { min-height:38px;border:1px solid var(--as-portal-wine);border-radius:999px;background:var(--as-portal-wine);color:#fff;padding:8px 13px;font-weight:750;cursor:pointer; }

.as-portal-shell-nav__brand {
  display: block;
  width: 128px;
  margin: 0 auto 2px;
}

.as-portal-shell-nav__brand img {
  display: block;
  width: 100%;
  height: auto;
}

.as-portal-shell-nav nav,
.as-portal-shell-nav nav section {
  display: grid;
  gap: 4px;
}

.as-portal-shell-nav nav {
  gap: 15px;
}

.as-portal-shell-nav nav h2 {
  margin: 0 10px 4px;
  color: var(--as-portal-muted);
  font-family: "DM Sans", var(--as-current-site-font), sans-serif;
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.as-portal-shell-nav nav button,
.as-portal-shell-nav nav a {
  display: flex;
  align-items: center;
  min-height: 38px;
  margin: 0;
  padding: 8px 10px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--as-portal-ink);
  font: 700 0.82rem/1.2 "DM Sans", var(--as-current-site-font), sans-serif;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}

.as-portal-shell-nav nav button:hover,
.as-portal-shell-nav nav button:focus-visible,
.as-portal-shell-nav nav a:hover,
.as-portal-shell-nav nav a:focus-visible {
  background: #f1e9df;
  outline: 2px solid transparent;
}

.as-portal-shell-nav nav button.is-active,
.as-portal-shell-nav nav a[aria-current="page"] {
  background: var(--as-portal-wine);
  color: #fff;
}

.as-portal-shell-nav__session {
  display: grid;
  gap: 4px;
  padding: 12px;
  border-top: 1px solid var(--as-portal-line);
  color: var(--as-portal-muted);
  font-size: 0.75rem;
}

.as-portal-shell-nav__session strong {
  color: var(--as-portal-ink);
  font-size: 0.84rem;
}

.as-portal-shell-nav__session button {
  justify-self: start;
  margin-top: 6px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--as-portal-wine);
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.as-portal-utility {
  grid-column: 1 / -1;
  grid-row: 1;
  position: sticky;
  top: 12px;
  z-index: 12;
  display: grid;
  grid-template-columns: auto auto minmax(180px, 1fr) auto auto;
  gap: 12px;
  align-items: center;
  min-height: 62px;
  padding: 10px 14px;
  border: 1px solid var(--as-portal-line);
  border-radius: 18px;
  background: rgba(255, 253, 249, 0.94);
  box-shadow: 0 12px 30px rgba(58, 39, 29, 0.08);
  backdrop-filter: blur(14px);
}

.as-portal-utility__menu {
  display: inline-flex;
  width: 44px;
  padding: 0;
  font-size: 1.2rem;
}

.as-portal-utility__location {
  display: grid;
  gap: 2px;
  min-width: 150px;
}

.as-portal-utility__location strong {
  color: var(--as-portal-ink);
  font-size: 0.83rem;
}

.as-portal-utility__location span {
  color: var(--as-portal-muted);
  font-size: 0.72rem;
}

.as-portal-utility__location span span { display: inline; }

.as-dashboard-client-search { display:grid;gap:9px;margin-top:12px; }
.as-dashboard-client-search label { font-weight:750;font-size:.76rem; }
.as-dashboard-client-search input { width:100%;min-height:44px;border:1px solid var(--as-portal-line);border-radius:10px;padding:0 12px;background:#fff; }
.as-dashboard-client-search button { min-height:42px;border:0;border-radius:10px;background:#111;color:#fff;font-weight:800;cursor:pointer; }

.as-portal-utility__search input {
  width: 100%;
  min-height: 40px;
  border: 1px solid var(--as-portal-line);
  border-radius: 10px;
  padding: 0 12px;
  background: #fff;
  color: var(--as-portal-ink);
  font: 500 0.82rem/1.2 "DM Sans", var(--as-current-site-font), sans-serif;
}

.as-portal-utility__search button,
.as-portal-utility__health,
.as-portal-utility__actions,
.as-portal-utility__back,
.as-portal-utility__menu {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0 12px;
  border: 1px solid var(--as-portal-line);
  border-radius: 10px;
  background: var(--as-portal-surface);
  color: var(--as-portal-ink);
  font: 750 0.76rem/1.2 "DM Sans", var(--as-current-site-font), sans-serif;
  text-decoration: none;
  white-space: nowrap;
}

.as-portal-utility__back {
  gap: 7px;
  cursor: pointer;
}

.as-portal-utility__back[hidden] { display: none !important; }

button.as-portal-utility__actions { cursor: pointer; }

.as-portal-utility__search button {
  border-color: var(--as-portal-wine);
  background: var(--as-portal-wine);
  color: #fff;
}

.as-dashboard-v2__mobile-menu {
  grid-column: 2 / -1;
  grid-row: 2;
}

body.as-mode-staff .as-staff-layout > .as-staff-dashboard-v2 {
  grid-column: 1 / -1;
  grid-row: 2;
}

body.as-mode-staff .as-staff-layout > .as-client-summary,
body.as-mode-staff .as-staff-layout > .as-staff-main {
  grid-column: auto;
  grid-row: 2;
}

.as-staff-dashboard-v2 {
  display: block;
  min-height: 0;
}

.as-staff-dashboard-v2[hidden] {
  display: none;
}

.as-dashboard-v2__content {
  padding: clamp(18px, 2.3vw, 28px);
  border: 1px solid var(--as-portal-line);
  border-radius: 20px;
  background: var(--as-portal-surface);
  box-shadow: var(--as-portal-shadow);
}

.as-dashboard-v2__header {
  grid-template-columns: minmax(0, 1fr) minmax(230px, 310px);
  gap: 18px;
  align-items: center;
  margin-bottom: 18px;
}

.as-dashboard-v2__header h2 {
  margin: 0;
  font-family: "Playfair Display", Georgia, serif;
  font-size: clamp(2.1rem, 3vw, 2.75rem);
  font-weight: 500;
  line-height: 1;
}

.as-dashboard-v2__header p:not(.as-kicker) {
  margin-top: 8px;
  font-size: 0.86rem;
  line-height: 1.45;
}

.as-dashboard-v2__header-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 13px;
}

.as-dashboard-v2__header-actions .as-button {
  min-height: 38px;
  padding: 0 14px;
  border-radius: 10px;
}

.as-dashboard-v2__status-card {
  grid-template-columns: auto minmax(0, 1fr);
  padding: 13px;
  border: 1px solid var(--as-portal-line);
  border-radius: 14px;
  background: #fbf7f1;
  box-shadow: none;
}

.as-dashboard-v2__status-card span {
  min-height: 28px;
  padding: 0 10px;
  border-radius: 8px;
  background: var(--as-portal-wine);
  font-size: 0.68rem;
}

.as-dashboard-v2__status-card strong,
.as-dashboard-v2__status-card small {
  grid-column: 2;
}

.as-dashboard-v2__cards {
  gap: 10px;
  margin-bottom: 16px;
}

.as-dashboard-v2-card {
  gap: 5px;
  min-height: 112px;
  padding: 14px;
  border: 1px solid var(--as-portal-line);
  border-radius: 14px;
  background: #fff;
  box-shadow: none;
}

.as-dashboard-v2-card:nth-child(3),
.as-dashboard-v2-card--attention {
  background: #fff;
}

.as-dashboard-v2-card span {
  min-height: 0;
  font-size: 0.76rem;
}

.as-dashboard-v2-card strong {
  font-family: "Playfair Display", Georgia, serif;
  font-size: clamp(1.65rem, 2.4vw, 2.15rem);
  font-weight: 500;
}

.as-dashboard-v2-card small {
  color: var(--as-portal-muted);
  font-size: 0.68rem;
  letter-spacing: 0;
  text-transform: none;
}

.as-dashboard-v2-card button {
  font-size: 0.7rem;
}

.as-dashboard-v2__workgrid {
  grid-template-columns: minmax(0, 1fr) minmax(290px, 340px);
  gap: 14px;
}

/* The dashboard owns one search entry point only: “Find a client” routes to
   the dedicated Clients workspace. Scope this suppression to the dashboard;
   the Clients route intentionally reuses the panel class for its primary
   search and results column. */
.as-staff-dashboard-v2 .as-dashboard-v2-panel--client-search { display: none !important; }

.as-dashboard-v2-panel {
  border: 1px solid var(--as-portal-line);
  border-radius: 16px;
  background: #fff;
  box-shadow: none;
}

.as-dashboard-v2-panel--appointments {
  min-height: 340px;
  padding: 16px;
}

.as-dashboard-v2-panel__header {
  margin-bottom: 12px;
  padding: 13px;
  border: 0;
  border-radius: 12px;
  background: var(--as-portal-paper);
}

.as-dashboard-v2-panel h3 {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 1.35rem;
  font-weight: 500;
}

#staff-dashboard-sync-chip {
  padding: 7px 9px;
  border-radius: 8px;
  background: var(--as-portal-wine);
  font-size: 0.68rem;
}

.as-dashboard-v2__rightcol {
  gap: 12px;
}

.as-dashboard-v2-panel--search,
.as-dashboard-v2-panel--activity,
.as-dashboard-v2-panel--pending {
  padding: 16px;
}

.as-dashboard-v2-panel--pending {
  background: #f3e7e3;
  color: var(--as-portal-ink);
}

.as-dashboard-v2-panel--pending .as-kicker,
.as-dashboard-v2-panel--pending h3,
.as-dashboard-v2-panel--pending p,
.as-dashboard-v2-panel--pending dt,
.as-dashboard-v2-panel--pending dd {
  color: var(--as-portal-ink);
}

.as-dashboard-v2-panel--pending dl > div {
  border-color: rgba(113, 61, 61, 0.18);
}

.as-dashboard-v2-row {
  grid-template-columns: 68px minmax(0, 1fr) auto;
  padding: 10px;
  border-color: var(--as-portal-line);
  border-radius: 12px;
}

.as-dashboard-v2-row button {
  border-radius: 8px;
  background: var(--as-portal-wine);
}

.as-dashboard-v2-flow {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin-top: 14px;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.as-dashboard-v2-flow article {
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--as-portal-line);
  border-radius: 12px;
  background: #fff;
}

.as-dashboard-v2-flow article span {
  color: var(--as-portal-muted);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.as-dashboard-v2-flow article strong,
.as-dashboard-v2-flow article a {
  color: var(--as-portal-ink);
  font-size: 0.76rem;
  line-height: 1.35;
}

body.as-performance-visible.as-mode-staff .as-staff-layout {
  grid-template-columns: minmax(0, 1fr) !important;
}

/* Route-specific workspaces prevent the old three-module pile-up. */
body.as-mode-staff.as-staff-workbench-clients .as-staff-layout {
  grid-template-columns: minmax(280px, 360px) minmax(0, 1fr) !important;
}

body.as-mode-staff .as-client-portal-nav { display: none !important; }

body.as-mode-staff.as-staff-workbench-clients .as-client-summary {
  display: flex !important;
  grid-column: 1;
}

body.as-mode-staff.as-staff-workbench-clients .as-staff-main {
  grid-column: 2;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-areas: "chart" !important;
}

body.as-mode-staff.as-staff-workbench-clients .as-chart-card {
  grid-area: chart;
  min-width: 0;
  width: 100%;
}

body.as-mode-staff.as-staff-workbench-clients .as-calendar-card { display: none !important; }

body.as-mode-staff.as-staff-workbench-calendar .as-client-summary { display: none !important; }
body.as-mode-staff.as-staff-workbench-calendar .as-staff-main {
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-areas: "calendar" !important;
}
body.as-mode-staff.as-staff-workbench-calendar .as-calendar-card {
  grid-area: calendar;
  display: grid !important;
  grid-template-rows: auto auto auto auto !important;
  max-height: none !important;
  min-height: 0 !important;
  overflow: visible !important;
}
body.as-mode-staff.as-staff-workbench-calendar .as-calendar-list {
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  overscroll-behavior: auto;
}
body.as-mode-staff.as-staff-workbench-calendar .as-chart-card { display: none !important; }

body.as-mode-staff.as-staff-workbench-settings .as-client-summary,
body.as-mode-staff.as-staff-workbench-settings .as-staff-main { display: none !important; }

/* Service Logs is a full management workspace, not a modal floating over
   Clients. Client-level creation remains inside the selected chart. */
body[data-staff-route="service-logs"].as-mode-staff .as-client-summary { display: none !important; }
body[data-staff-route="service-logs"].as-mode-staff .as-staff-main {
  display: block !important;
  grid-column: 1 / -1 !important;
}
body[data-staff-route="service-logs"].as-mode-staff .as-staff-main > :not(.as-service-report-card) { display: none !important; }
body[data-staff-route="service-logs"] #staff-workspace .as-service-report-card.as-staff-task-card.is-open {
  position: static;
  inset: auto;
  z-index: auto;
  display: grid !important;
  width: 100%;
  height: auto;
  max-height: none;
  margin: 0;
  padding: clamp(18px, 2.4vw, 30px);
  overflow: visible;
  border-radius: 20px;
  box-shadow: var(--as-portal-shadow);
}
body[data-staff-route="service-logs"] #staff-workspace .as-service-report-card .as-panel-close { display: none; }
body[data-staff-route="service-logs"] #staff-workspace .as-service-report-card.as-staff-task-card.is-open { grid-template-rows: auto auto auto auto; }
body[data-staff-route="service-logs"] #staff-workspace .as-service-report-card.as-staff-task-card.is-open { padding-right: clamp(18px, 2.4vw, 30px); }
body[data-staff-route="service-logs"] .as-report-list { max-height: none; }

.as-performance-visible .as-staff-layout > :not(.as-performance):not(.as-portal-shell-nav):not(.as-portal-utility):not(.as-performance-nav-scrim) {
  display: none !important;
}

.as-performance-visible .as-portal-utility {
  display: grid !important;
}

.as-performance-visible .as-portal-shell-nav { display:grid !important; }
.as-performance-visible .as-portal-shell-nav { z-index: 2147483646; }

.as-performance-visible.as-performance-nav-open .as-portal-shell-nav,
body.as-staff-nav-open .as-portal-shell-nav {
  transform: translateX(0);
}

body.as-performance-visible.as-performance-nav-open,
body.as-staff-nav-open {
  overflow: hidden !important;
}

.as-performance-nav-scrim {
  position: fixed;
  z-index: 2147483645;
  inset: var(--as-performance-viewport-top, 0px) auto auto var(--as-performance-viewport-left, 0px);
  width: var(--as-performance-viewport-width, 100dvw);
  height: var(--as-performance-viewport-height, 100dvh);
  margin: 0;
  padding: 0;
  border: 0;
  background: rgba(33, 28, 25, 0.34);
  cursor: pointer;
}

/* The public header and sticky Performance controls must remain beneath the
   modal navigation surface at browser zoom and narrow visual viewports. */
body.as-performance-visible.as-performance-nav-open > .as-header,
body.as-performance-visible.as-performance-nav-open .as-portal-utility,
body.as-performance-visible.as-performance-nav-open [data-performance-app] {
  z-index: auto !important;
}

.as-performance-nav-scrim[hidden] {
  display: none !important;
}

.as-performance-visible .as-portal-utility {
  grid-column: 1;
  grid-row: 1;
}

.as-performance-visible .as-portal-utility__menu {
  display: inline-flex;
}

.as-performance-visible .as-performance {
  grid-column: 1;
  grid-row: 2;
  width: 100%;
  padding: clamp(16px, 2vw, 24px);
  border: 1px solid var(--as-portal-line);
  border-radius: 20px;
  background: var(--as-portal-surface);
  box-shadow: var(--as-portal-shadow);
}

/* Performance is an independent full-width application. This final namespace
   prevents portal card/grid rules from compressing the approved dashboard. */
body.as-performance-visible [data-performance-app] {
  display: block;
  position: relative;
  grid-column: 1 / -1 !important;
  grid-row: 2 !important;
  flex: 1 1 100%;
  flex-basis: 100%;
  flex-shrink: 0;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin-inline: 0 !important;
  transform: none !important;
  overflow: visible;
}

/* Route-scoped acceptance guard: closed disclosure menus must not retain their
   absolutely positioned children as layout or overlap targets. */
body.as-performance-visible [data-performance-app] .as-performance__export:not([open]) > button {
  display: none !important;
}

@media (min-width: 1181px) {
  body.as-performance-visible [data-performance-app] {
    min-height: calc(100dvh - 112px);
  }
}

.as-performance__header h2,
.as-performance-panel h3 {
  font-family: "Playfair Display", Georgia, serif;
  color: var(--as-portal-ink);
}

.as-performance__tabs button.is-active,
.as-performance .as-button--dark {
  background: var(--as-portal-wine);
  color: #fff;
}

.as-performance__filters,
.as-performance-kpis article,
.as-performance-panel {
  border-color: var(--as-portal-line);
  background: var(--as-portal-surface);
}

@media (max-width: 1180px) {
  body.as-mode-staff .as-staff-layout,
  body.as-performance-visible.as-mode-staff .as-staff-layout {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .as-portal-shell-nav { display:grid !important; }

  .as-portal-utility,
  body.as-mode-staff .as-staff-layout > .as-staff-dashboard-v2,
  body.as-mode-staff .as-staff-layout > .as-client-summary,
  body.as-mode-staff .as-staff-layout > .as-staff-main,
  .as-performance-visible .as-performance,
  .as-dashboard-v2__mobile-menu {
    grid-column: 1 !important;
  }

  .as-portal-utility {
    grid-row: 1;
  }

  .as-portal-utility__menu {
    display: inline-flex;
  }

  .as-dashboard-v2__mobile-menu {
    grid-row: 2;
  }

  body.as-mode-staff .as-staff-layout > .as-staff-dashboard-v2,
  body.as-mode-staff .as-staff-layout > .as-client-summary,
  body.as-mode-staff .as-staff-layout > .as-staff-main,
  .as-performance-visible .as-performance {
    grid-row: 3;
  }

  .as-dashboard-v2__mobile-menu:not([hidden]) {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 7px;
  }

  .as-dashboard-v2__mobile-menu button,
  .as-dashboard-v2__mobile-menu a {
    min-height: 42px;
    padding: 8px;
    border: 1px solid var(--as-portal-line);
    border-radius: 10px;
    background: var(--as-portal-surface);
    color: var(--as-portal-ink);
    font-size: 0.74rem;
    font-weight: 750;
    text-align: center;
    text-decoration: none;
  }

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

  .as-dashboard-v2__rightcol {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .as-dashboard-v2-flow {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .as-portal-utility {
    position: static;
    grid-template-columns: auto auto minmax(0, 1fr) auto;
    padding: 9px;
  }

  .as-portal-utility__back span:last-child { display: none; }

  .as-portal-utility__search {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  .as-portal-utility__health {
    display: none;
  }

  .as-portal-utility__actions {
    padding-inline: 8px;
  }

  .as-dashboard-v2__mobile-menu:not([hidden]) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .as-dashboard-v2__content {
    padding: 14px;
  }

  .as-dashboard-v2__header,
  .as-dashboard-v2__cards,
  .as-dashboard-v2__rightcol,
  .as-dashboard-v2-flow {
    grid-template-columns: minmax(0, 1fr);
  }

  .as-dashboard-v2-card {
    min-height: 104px;
  }

  .as-dashboard-v2-row {
    grid-template-columns: 60px minmax(0, 1fr);
  }

  .as-dashboard-v2-row button {
    grid-column: 2;
    justify-self: start;
  }

  .as-performance-visible .as-performance {
    border-radius: 14px;
    padding: 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .as-portal-shell-nav *,
  .as-portal-utility *,
  .as-staff-dashboard-v2 *,
  .as-performance * {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }

  .as-performance-visible .as-portal-shell-nav {
    transition: none !important;
  }
}
.as-performance-breakdown dt { color: #625d57; }
.as-performance-table-wrap { overflow: auto; border: 1px solid #ddd6ce; background: #fff; }
.as-performance-table { width: 100%; border-collapse: collapse; font-size: .86rem; }
.as-performance-table th, .as-performance-table td { padding: .7rem .8rem; border-bottom: 1px solid #eee8e1; text-align: left; white-space: nowrap; }
.as-performance-table th { position: sticky; top: 0; background: #f5f1ec; text-transform: uppercase; font-size: .7rem; letter-spacing: .06em; }
.as-performance-pill { display: inline-block; border-radius: 999px; padding: .2rem .55rem; background: #ece8e3; text-transform: capitalize; }
.as-performance-pill--future_booked { background: #f0e2d1; }
.as-performance-pill--fresh { background: #efe6dc; }
.as-performance-pill--lapsed { background: #f7dfda; }
.as-performance button:focus-visible, .as-performance select:focus-visible, .as-performance input:focus-visible, .as-performance a:focus-visible { outline: 3px solid #8d5949; outline-offset: 2px; }
.as-performance-context { border-left: 4px solid #8d5949; background: #f8f5f1; padding: .8rem 1rem; margin: 0 0 1rem; }
.as-performance-context p { margin: .3rem 0; }
.as-performance-empty { padding: 3rem 1rem; text-align: center; border: 1px dashed #c9c0b7; background: #faf8f5; }

.as-performance-readiness {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
  gap: clamp(22px, 4vw, 56px);
  align-items: center;
  min-height: 320px;
  padding: clamp(28px, 5vw, 70px);
  border: 1px solid var(--as-portal-line);
  background: linear-gradient(135deg, #fffdf9 0%, #f7efe8 100%);
}

.as-performance-readiness__copy h3 {
  max-width: 720px;
  margin: 0 0 16px;
  font: 500 clamp(2rem, 4vw, 3.75rem)/0.98 Georgia, "Times New Roman", serif;
  letter-spacing: -0.045em;
}

.as-performance-readiness__copy > p:not(.as-kicker) {
  max-width: 660px;
  color: var(--as-portal-muted);
  font-size: 1rem;
}

.as-performance-readiness__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.as-performance-readiness__checks { display: grid; gap: 10px; }
.as-performance-readiness__checks article { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 12px; align-items: start; padding: 17px; border: 1px solid var(--as-portal-line); border-radius: 14px; background: rgba(255, 253, 249, 0.88); }
.as-performance-readiness__checks article > span { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 999px; background: #24392f; color: #fff; font-weight: 900; }
.as-performance-readiness__checks article.is-pending > span { background: var(--as-portal-wine); }
.as-performance-readiness__checks strong { display: block; margin-bottom: 3px; }
.as-performance-readiness__checks p { margin: 0; color: var(--as-portal-muted); font-size: 0.8rem; }

@media (max-width: 800px) {
  .as-performance-readiness { grid-template-columns: 1fr; padding: 26px 20px; }
  .as-performance-readiness__copy h3 { font-size: clamp(2rem, 10vw, 3rem); }
}
.as-performance-link { color: #5f352b; font-weight: 750; text-decoration-thickness: .08em; text-underline-offset: .2em; }
.as-performance-profile { display: grid; gap: 1rem; }
.as-performance-profile > h3 { margin: 0; font-size: clamp(2rem, 4vw, 3.25rem); overflow-wrap: anywhere; }
.as-performance-profile > h4 { margin: .5rem 0 0; }
.as-performance-profile-meta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin: 0; }
.as-performance-profile-meta div { min-width: 0; border: 1px solid #ddd6ce; background: #f8f5f1; padding: .8rem; }
.as-performance-profile-meta dt { color: #625d57; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; }
.as-performance-profile-meta dd { margin: .35rem 0 0; overflow-wrap: anywhere; }
.as-performance .as-kicker { color: #6b4934; }
.as-performance-print-report { display: none; }
@media (max-width: 900px) { .as-performance__header { display: grid; } .as-performance__header-actions { justify-content: flex-start; } .as-performance__filters { grid-template-columns: repeat(2, 1fr); } .as-performance-kpis { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .as-performance__filters, .as-performance-kpis, .as-performance-grid, .as-performance-profile-meta { grid-template-columns: 1fr; } .as-performance-table th, .as-performance-table td { white-space: normal; min-width: 9rem; } }

/* Performance editorial presentation — protected management portal only */
.as-performance {
  --performance-ink: #1d1b19;
  --performance-muted: #6f6861;
  --performance-line: #d8d0c6;
  --performance-paper: #fffdf8;
  --performance-canvas: #f4efe7;
  --performance-green: #985f50;
  --performance-clay: #a86f5c;
  --performance-rose: #d7b9b1;
  --performance-stone: #a69b8e;
  --performance-gold: #b48446;
  --performance-accent-dark: #713d3d;
  --performance-display: "Playfair Display", Didot, "Bodoni 72", "Times New Roman", serif;
  --performance-sans: "DM Sans", Arial, sans-serif;
  max-width: 1600px;
  overflow: visible;
  background: var(--performance-canvas);
  color: var(--performance-ink);
  font-family: var(--performance-sans);
  font-variant-numeric: tabular-nums;
}
.as-performance button,
.as-performance input,
.as-performance select { font: inherit; }
.as-performance a { color: inherit; }
.as-performance__header {
  position: relative;
  min-height: 116px;
  padding: clamp(1.1rem, 3vw, 2.2rem) clamp(1rem, 4vw, 3rem);
  margin: 0;
  border-bottom: 1px solid var(--performance-line);
  background:
    radial-gradient(circle at 86% 16%, rgb(215 185 177 / .34), transparent 28%),
    linear-gradient(135deg, #fffdf8 0%, #f4e8de 100%);
}
.as-performance.is-overview .as-performance__header { min-height: clamp(150px, 18vw, 220px); align-items: flex-end; }
.as-performance__header > div:first-child { max-width: 880px; }
.as-performance__header .as-kicker { margin: 0 0 .8rem; color: var(--performance-clay); }
.as-performance__header h2 {
  max-width: 900px;
  margin: 0;
  font-family: Didot, "Bodoni 72", "Times New Roman", serif;
  font-size: clamp(2.35rem, 6vw, 6.6rem);
  font-weight: 400;
  letter-spacing: -.045em;
  line-height: .92;
}
.as-performance:not(.is-overview) .as-performance__header h2 { font-size: clamp(1.35rem, 2vw, 2rem); }
#performance-page-deck { max-width: 690px; margin: 1.1rem 0 0; color: var(--performance-muted); font-size: clamp(.98rem, 1.5vw, 1.18rem); line-height: 1.55; }
.as-performance__header-actions { position: absolute; top: 1.2rem; right: clamp(1rem, 4vw, 3rem); }
.as-performance__freshness { border: 0; border-bottom: 1px solid var(--performance-line); background: transparent; padding: .35rem 0; cursor: pointer; text-align: left; }
.as-performance:not(.is-overview) .as-performance__header { position: sticky; top: 0; z-index: 13; min-height: 66px; padding-block: .72rem; box-shadow: 0 10px 28px rgb(29 27 25 / .06); }
.as-performance:not(.is-overview) .as-performance__header .as-kicker { margin-bottom: .2rem; font-size: .62rem; }
.as-performance:not(.is-overview) #performance-page-deck { max-width: 620px; margin: .3rem 0 0; font-size: .78rem; line-height: 1.35; }
.as-performance:not(.is-overview) .as-performance__header-actions { top: .65rem; }
.as-performance:not(.is-overview) .as-performance__controls { position: sticky; top: 66px; z-index: 12; }
.as-performance__export { position: relative; }
.as-performance__export summary { cursor: pointer; list-style: none; border: 1px solid var(--performance-ink); padding: .62rem .9rem; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; }
.as-performance__export summary::-webkit-details-marker { display: none; }
.as-performance__export[open] { z-index: 25; }
.as-performance__export[open]::before { content: ""; position: fixed; inset: 0; }
.as-performance__export > button { position: absolute; right: 0; z-index: 1; width: 155px; border: 1px solid var(--performance-ink); background: var(--performance-paper); padding: .75rem; text-align: left; cursor: pointer; }
.as-performance__export > button:first-of-type { top: calc(100% + .35rem); }
.as-performance__export > button:last-of-type { top: calc(100% + 3rem); }
.as-performance__controls {
  position: relative;
  z-index: 14;
  display: grid;
  grid-template-columns: minmax(250px, .75fr) minmax(0, 2fr);
  gap: 1px;
  border-bottom: 1px solid var(--performance-line);
  background: var(--performance-line);
}
.as-performance__date-control,
.as-performance__filters { min-width: 0; background: var(--performance-paper); }
.as-performance__date-control > summary {
  min-height: 74px;
  display: grid;
  align-content: center;
  gap: .2rem;
  padding: .85rem 1.25rem;
  cursor: pointer;
  list-style: none;
}
.as-performance__date-control > summary::-webkit-details-marker { display: none; }
.as-performance__date-control > summary::after { content: "Edit dates"; grid-column: 2; grid-row: 1 / 3; align-self: center; justify-self: end; color: var(--performance-clay); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.as-performance__date-control > summary span { font-family: Didot, "Bodoni 72", serif; font-size: 1.25rem; }
.as-performance__date-control > summary small { color: var(--performance-muted); }
.as-performance__date-popover {
  position: absolute;
  left: 0;
  top: calc(100% + 1px);
  z-index: 20;
  width: min(720px, calc(100vw - 2rem));
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
  padding: 1.25rem;
  border: 1px solid var(--performance-ink);
  background: var(--performance-paper);
  box-shadow: 0 24px 54px rgb(29 27 25 / .16);
}
.as-performance__date-row {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
}
.as-performance__date-popover label,
.as-performance__filters label { display: grid; align-content: center; gap: .3rem; color: var(--performance-muted); font-size: .69rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.as-performance__date-popover input,
.as-performance__date-popover select,
.as-performance__filters input,
.as-performance__filters select { width: 100%; min-height: 42px; padding: .5rem .6rem; border: 0; border-bottom: 1px solid var(--performance-line); border-radius: 0; background: transparent; color: var(--performance-ink); }
.as-performance__date-popover button { align-self: end; }
.as-performance__filters { grid-template-columns: repeat(4, minmax(140px, 1fr)); gap: 1rem; padding: .8rem 1.25rem; border: 0; }
.as-performance__filter-toggle { display: none; }
.as-performance__apply-filters { position: sticky; z-index: 3; bottom: 0; grid-column: 1 / -1; width: 100%; min-height: 48px; box-shadow: 0 -8px 18px var(--performance-paper); }
.as-performance__filters .is-hidden { display: none; }
.as-performance__employee-group { position: relative; align-self: stretch; min-width: 0; }
.as-performance__employee-group > summary { min-height: 100%; display: grid; align-content: center; gap: .3rem; padding: .25rem .6rem .5rem; border-bottom: 1px solid var(--performance-line); cursor: pointer; list-style: none; }
.as-performance__employee-group > summary::-webkit-details-marker { display: none; }
.as-performance__employee-group > summary span { color: var(--performance-muted); font-size: .69rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.as-performance__employee-group > summary strong { overflow: hidden; font-size: .86rem; text-overflow: ellipsis; white-space: nowrap; }
.as-performance__employee-group > div { position: absolute; z-index: 32; top: calc(100% + .35rem); left: 0; width: min(390px, calc(100vw - 2rem)); max-height: min(620px, 72vh); overflow: auto; padding: .9rem; border: 1px solid var(--performance-ink); background: var(--performance-paper); box-shadow: 0 20px 44px rgb(29 27 25 / .18); }
.as-performance__scope-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .35rem; margin-bottom: .8rem; }
.as-performance__scope-actions button { min-height: 42px; border: 1px solid var(--performance-line); background: transparent; cursor: pointer; }
.as-performance__scope-actions button.is-active { border-color: var(--performance-ink); background: var(--performance-ink); color: #fff; }
.as-performance__group-selection-actions { display: flex; flex-wrap: wrap; gap: .35rem; margin-bottom: .55rem; }
.as-performance__group-selection-actions button { min-height: 34px; padding: .35rem .55rem; border: 1px solid var(--performance-line); background: transparent; color: var(--performance-ink); font-size: .68rem; cursor: pointer; }
.as-performance__employee-group fieldset { margin: 0 0 .8rem; padding: .7rem; border: 1px solid var(--performance-line); }
.as-performance__employee-group legend { padding: 0 .3rem; color: var(--performance-muted); font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
#performance-employee-group-options { display: grid; grid-template-columns: 1fr 1fr; gap: .25rem .7rem; }
#performance-employee-group-options label { min-width: 0; display: grid; grid-template-columns: auto 1fr; align-items: start; gap: .08rem .4rem; padding: .35rem 0; font-size: .76rem; text-transform: none; letter-spacing: 0; }
#performance-employee-group-options label input { grid-row: 1 / 3; width: 16px; min-height: 16px; margin: .12rem 0 0; }
#performance-employee-group-options label span { overflow-wrap: anywhere; }
#performance-employee-group-options label small { color: var(--performance-muted); font-size: .62rem; }
.as-performance__filter-subhead { margin: .65rem 0 .35rem; color: var(--performance-muted); font-size: .66rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.as-performance__clear-service-filters { margin: 0 0 .7rem; }
#performance-service-category-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .35rem; margin-bottom: .8rem; }
#performance-service-category-options label { min-width: 0; display: grid; grid-template-columns: auto 1fr; align-items: start; gap: .08rem .4rem; padding: .55rem; border: 1px solid var(--performance-line); font-size: .76rem; text-transform: none; letter-spacing: 0; }
#performance-service-category-options label:has(input:checked) { border-color: var(--performance-clay); background: rgb(168 111 92 / .08); }
#performance-service-category-options label input { grid-row: 1 / 3; width: 16px; min-height: 16px; margin: .12rem 0 0; }
#performance-service-category-options label span { font-weight: 750; }
#performance-service-category-options label small,
#performance-service-family-options label small,
#performance-service-options label small { color: var(--performance-muted); font-size: .62rem; font-weight: 500; letter-spacing: 0; text-transform: none; }
#performance-service-family-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem; margin-bottom: .8rem; }
#performance-service-family-options label { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: .08rem .4rem; padding: .5rem; border: 1px solid var(--performance-line); font-size: .76rem; text-transform: none; letter-spacing: 0; }
#performance-service-family-options label:has(input:checked) { border-color: var(--performance-clay); background: rgb(168 111 92 / .08); }
#performance-service-family-options label input { grid-row: 1 / 3; width: 16px; min-height: 16px; margin: .12rem 0 0; }
#performance-service-family-options label span { overflow-wrap: anywhere; font-weight: 750; }
#performance-service-options { display: grid; gap: .2rem; }
#performance-service-options label { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: start; gap: .4rem; padding: .35rem 0; font-size: .76rem; text-transform: none; letter-spacing: 0; }
#performance-service-options label input { width: 16px; min-height: 16px; margin: .12rem 0 0; }
#performance-service-options label span { overflow-wrap: anywhere; }
.as-performance__scope-help { margin: .6rem 0 0; color: var(--performance-muted); font-size: .7rem; line-height: 1.45; }
.as-performance__tabs {
  display: grid;
  grid-template-columns: .75fr 1.35fr 1.45fr 1fr 1fr;
  gap: 0;
  padding: 0 1rem;
  overflow-x: auto;
  border-bottom: 1px solid var(--performance-line);
  background: var(--performance-paper);
}
.as-performance__tabs > div { display: flex; align-items: flex-end; min-width: max-content; padding: .65rem .3rem 0; }
.as-performance__tabs > div > span { align-self: flex-start; margin: .12rem .25rem 0; color: var(--performance-stone); font-size: .6rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.as-performance__tabs button { position: relative; padding: 1.2rem .72rem .85rem; color: var(--performance-muted); font-size: .78rem; }
.as-performance__tabs button.is-active { background: transparent; color: var(--performance-ink); font-weight: 750; }
.as-performance__tabs button.is-active::after { content: ""; position: absolute; right: .6rem; bottom: -1px; left: .6rem; height: 3px; background: var(--performance-clay); }
.as-performance__section-select { display: none; }
.as-performance__notice {
  width: calc(100% - 2rem);
  margin: 1rem;
  padding: .65rem .85rem;
  border: 0;
  border-left: 3px solid var(--performance-green);
  background: rgb(168 111 92 / .09);
  color: var(--performance-muted);
  text-align: left;
  font-size: .76rem;
  cursor: pointer;
}
.as-performance__notice.is-warning { background: rgb(180 132 70 / .12); border-left-color: var(--performance-gold); }
.as-performance__content { display: grid; gap: clamp(1rem, 2vw, 1.6rem); padding: clamp(1rem, 3vw, 3rem); }
.as-performance-executive { position: relative; padding: clamp(1.4rem, 2.8vw, 2.7rem); background: var(--performance-ink); color: #fffaf3; }
.as-performance-executive__periods { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.as-performance-executive__periods > .as-kicker { margin: 0; color: #d8b89f; }
.as-performance-filter-scope { display: flex; align-items: baseline; justify-content: space-between; gap: .75rem; margin: 1rem 0 .35rem; padding: .7rem .85rem; border: 1px solid rgb(216 184 159 / .45); background: rgb(255 250 243 / .08); color: #fffaf3; }
.as-performance-filter-scope strong { font-size: .82rem; letter-spacing: .02em; }
.as-performance-filter-scope span { color: #d8cfc5; font-size: .75rem; text-align: right; }
.as-executive-period-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: min(610px, 72%); border: 1px solid rgb(255 250 243 / .32); }
.as-executive-period-tabs button { min-width: 0; padding: .68rem .78rem; border: 0; border-right: 1px solid rgb(255 250 243 / .22); background: transparent; color: #fffaf3; text-align: left; cursor: pointer; }
.as-executive-period-tabs button:last-child { border-right: 0; }
.as-executive-period-tabs button span,
.as-executive-period-tabs button small { display: block; }
.as-executive-period-tabs button span { font-size: .72rem; font-weight: 750; letter-spacing: .03em; }
.as-executive-period-tabs button small { margin-top: .2rem; overflow: hidden; color: #cec7bd; font-size: .61rem; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.as-executive-period-tabs button.is-active { background: #fffaf3; color: var(--performance-ink); box-shadow: 0 8px 24px rgb(0 0 0 / .18); }
.as-executive-period-tabs button.is-active small { color: var(--performance-muted); }
.as-performance-executive > h2 { max-width: 930px; margin: .25rem 0 .65rem; color: #fffaf3; font-family: Didot, "Bodoni 72", serif; font-size: clamp(2rem, 4vw, 4rem); font-weight: 400; letter-spacing: -.04em; line-height: 1.02; }
.as-performance-executive > .as-kicker { color: #d8b89f; }
.as-performance-executive > p:not(.as-kicker) { max-width: 720px; color: #cec7bd; font-size: 1.04rem; line-height: 1.6; }
.as-performance-hero-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: clamp(1.15rem, 2.5vw, 2.4rem); border-top: 1px solid currentColor; }
.as-performance-hero-metric { min-width: 0; padding: 1.1rem 1rem 0 0; }
.as-performance-hero-metric + .as-performance-hero-metric { padding-left: 1rem; border-left: 1px solid rgb(255 255 255 / .25); }
.as-performance-hero-metric span,
.as-performance-hero-metric small,
.as-performance-hero-metric em { display: block; }
.as-performance-hero-metric span { color: inherit; font-size: .71rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.as-performance-hero-metric strong { display: block; margin: .45rem 0; font-family: Didot, "Bodoni 72", serif; font-size: clamp(1.65rem, 3vw, 3.5rem); font-weight: 400; line-height: 1; }
.as-performance-hero-metric small { color: inherit; opacity: .68; }
.as-performance-hero-metric em { margin: .35rem 0; font-size: .75rem; font-style: normal; }
.as-performance-hero-metric .is-positive { color: #f0b8a6; }
.as-performance-hero-metric .is-negative { color: #e5a89a; }
.as-performance__content > .as-performance-hero-metrics { margin: 0; padding: 1.4rem; background: var(--performance-ink); color: #fffaf3; }
.as-performance-story-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--performance-line); }
.as-performance-section { min-width: 0; padding: clamp(1.25rem, 3vw, 2.7rem); border: 0; background: var(--performance-paper); }
.as-performance-section__header { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; margin-bottom: 1.4rem; }
.as-performance-section__header h3,
.as-performance-section > h3,
.as-frequency h3 { max-width: 780px; margin: .25rem 0 0; font-family: Didot, "Bodoni 72", serif; font-size: clamp(1.55rem, 2.8vw, 2.7rem); font-weight: 400; letter-spacing: -.025em; line-height: 1.08; }
.as-performance-text-action,
.as-performance-row-action { border: 0; border-bottom: 1px solid currentColor; background: transparent; color: var(--performance-clay); padding: .18rem 0; cursor: pointer; font-size: .77rem; font-weight: 750; text-decoration: none; white-space: nowrap; }
.as-service-return-cell > strong,
.as-service-return-cell > small,
.as-service-return-cell > .as-performance-row-action { display: block; width: max-content; }
.as-service-return-cell > small,
.as-performance-muted { margin-top: .14rem; color: var(--performance-muted); font-size: .72rem; line-height: 1.3; }
.as-service-return-cell > .as-performance-row-action { margin-top: .32rem; }
.as-comparison-bars { display: grid; gap: 1rem; }
.as-comparison-bars > div { display: grid; grid-template-columns: minmax(110px, .85fr) minmax(140px, 1.5fr) minmax(85px, .65fr); gap: .7rem; align-items: center; }
.as-comparison-bars > div > span { color: var(--performance-muted); font-size: .78rem; }
.as-comparison-bars > div > div { position: relative; height: 16px; background: #ebe5dc; }
.as-comparison-bars i,
.as-comparison-bars b { position: absolute; left: 0; display: block; width: var(--bar); }
.as-comparison-bars i { top: 0; height: 8px; background: var(--performance-clay); }
.as-comparison-bars b { bottom: 0; height: 5px; background: var(--performance-stone); }
.as-comparison-bars strong { font-family: Didot, "Bodoni 72", serif; font-size: 1.3rem; font-weight: 400; }
.as-comparison-bars small { grid-column: 3; color: var(--performance-muted); font-size: .68rem; }
.as-performance-conversion { text-align: center; }
.as-conversion-ring { width: min(230px, 72vw); aspect-ratio: 1; display: grid; place-content: center; margin: 1rem auto; border-radius: 50%; background: radial-gradient(circle, var(--performance-paper) 0 57%, transparent 58%), conic-gradient(var(--performance-green) 0 var(--returned), #e8e1d7 var(--returned) 100%); }
.as-conversion-ring strong { font-family: Didot, "Bodoni 72", serif; font-size: 3.4rem; font-weight: 400; }
.as-conversion-ring span { max-width: 120px; color: var(--performance-muted); font-size: .75rem; }
.as-performance-conversion dl,
.as-performance-profile-meta,
.as-daily-timeline dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 1rem 0 0; }
.as-performance-conversion dl div,
.as-performance-profile-meta div,
.as-daily-timeline dl div { padding: .7rem; border: 0; border-top: 1px solid var(--performance-line); background: transparent; }
.as-performance-conversion dt,
.as-performance-profile-meta dt,
.as-daily-timeline dt { color: var(--performance-muted); font-size: .67rem; letter-spacing: .07em; text-transform: uppercase; }
.as-performance-conversion dd,
.as-performance-profile-meta dd,
.as-daily-timeline dd { margin: .25rem 0 0; }
.as-client-journey { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; margin: 1.2rem 0; border: 1px solid var(--performance-line); }
.as-client-journey > * { position: relative; min-width: 0; min-height: 120px; display: grid; align-content: center; gap: .3rem; padding: 1rem; border: 0; border-right: 1px solid var(--performance-line); background: var(--performance-paper); text-align: left; cursor: pointer; }
.as-client-journey > *:last-child { border-right: 0; }
.as-client-journey > *:not(:last-child)::after { content: "›"; position: absolute; z-index: 1; top: 50%; right: -.38rem; color: var(--performance-clay); font-size: 1.5rem; transform: translateY(-50%); }
.as-client-journey span { color: var(--performance-muted); font-size: .72rem; text-transform: uppercase; }
.as-client-journey strong { font-family: Didot, "Bodoni 72", serif; font-size: 2rem; font-weight: 400; }
.as-client-journey small { color: var(--performance-muted); }
.as-performance-interpretation { max-width: 900px; color: var(--performance-muted); }
.as-client-clock,
.as-health-ribbon { display: grid; grid-template-columns: repeat(8, minmax(100px, 1fr)); overflow-x: auto; border: 1px solid var(--performance-line); }
.as-client-clock button,
.as-health-ribbon button { min-height: 105px; display: grid; align-content: center; gap: .4rem; padding: .8rem; border: 0; border-right: 1px solid var(--performance-line); background: var(--performance-paper); text-align: left; cursor: pointer; }
.as-client-clock button:nth-child(-n+4),
.as-health-ribbon button:nth-child(-n+4) { box-shadow: inset 0 4px var(--performance-green); }
.as-client-clock button:nth-child(n+5),
.as-health-ribbon button:nth-child(n+5) { box-shadow: inset 0 4px var(--performance-clay); }
.as-client-clock button.is-urgent { background: #f5e8e3; }
.as-client-clock button span,
.as-health-ribbon button span { color: var(--performance-muted); font-size: .72rem; }
.as-client-clock button strong,
.as-health-ribbon button strong { font-family: Didot, "Bodoni 72", serif; font-size: 2rem; font-weight: 400; }
.as-health-ribbon button.is-active { color: #fff; background: var(--performance-ink); }
.as-health-ribbon button.is-active span { color: #e2dbd2; }
.as-recovery-ladder,
.as-capacity-summary { display: grid; grid-template-columns: 1fr auto; }
.as-recovery-ladder > div,
.as-capacity-summary > * { padding: .8rem 0; border-bottom: 1px solid var(--performance-line); }
.as-recovery-ladder > div { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 1rem; }
.as-recovery-ladder span,
.as-capacity-summary span { color: var(--performance-muted); }
.as-recovery-ladder strong,
.as-capacity-summary strong { font-family: Didot, "Bodoni 72", serif; font-size: 1.65rem; font-weight: 400; }
.as-tech-quadrant { position: relative; min-height: 360px; margin-top: 1rem; border-left: 1px solid var(--performance-ink); border-bottom: 1px solid var(--performance-ink); background: linear-gradient(90deg, transparent 49.8%, var(--performance-line) 50%, transparent 50.2%), linear-gradient(0deg, transparent 49.8%, var(--performance-line) 50%, transparent 50.2%); }
.as-tech-quadrant > a { position: absolute; z-index: 3; top: var(--y); left: var(--x); width: var(--size); aspect-ratio: 1; display: grid; place-items: center; border: 2px solid rgb(255 253 248 / .8); border-radius: 50%; background: var(--performance-clay); color: #fff; text-decoration: none; transform: translate(-50%, -50%); box-shadow: 0 3px 10px rgb(29 27 25 / .18); }
.as-tech-quadrant > a:nth-of-type(3n) { background: #8e4f49; }
.as-tech-quadrant > a:nth-of-type(3n+1) { background: var(--performance-gold); }
.as-tech-quadrant > a:hover, .as-tech-quadrant > a:focus-visible { z-index: 8; outline: 3px solid var(--performance-ink); outline-offset: 3px; }
.as-tech-quadrant > a::after { content: attr(title); position: absolute; z-index: 20; bottom: calc(100% + .65rem); left: 50%; width: max-content; max-width: min(250px, 70vw); padding: .55rem .65rem; border: 1px solid var(--performance-ink); background: var(--performance-ink); color: var(--performance-paper); font-size: .68rem; font-weight: 650; line-height: 1.35; text-align: left; white-space: normal; opacity: 0; pointer-events: none; transform: translateX(-50%); box-shadow: 0 12px 24px rgb(29 27 25 / .2); }
.as-tech-quadrant > a:hover::after, .as-tech-quadrant > a:focus-visible::after { opacity: 1; }
.as-tech-quadrant > a span { position: absolute; top: 100%; left: 50%; padding-top: .15rem; color: var(--performance-muted); font-size: .62rem; white-space: nowrap; transform: translate(calc(-50% + var(--label-offset, 0px)), calc(var(--label-offset, 0px) * .34)); }
.as-tech-quadrant .axis-y,
.as-tech-quadrant .axis-x { position: absolute; color: var(--performance-muted); font-size: .65rem; letter-spacing: .08em; text-transform: uppercase; }
.as-tech-quadrant .axis-y { top: 0; left: .4rem; }
.as-tech-quadrant .axis-x { right: 0; bottom: .4rem; }
.as-quadrant-name { position: absolute; z-index: 1; color: #9a9087; font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.as-quadrant-name.is-upper-left { top: .5rem; left: 1.2rem; }
.as-quadrant-name.is-upper-right { top: .5rem; right: .7rem; }
.as-quadrant-name.is-lower-left { bottom: .7rem; left: 1.2rem; }
.as-quadrant-name.is-lower-right { right: .7rem; bottom: .7rem; }
.as-benchmark { position: absolute; z-index: 2; color: var(--performance-muted); font-size: .56rem; }
.as-benchmark.is-revenue { top: var(--benchmark); right: 0; left: 0; border-top: 1px dashed #b48446; text-align: right; }
.as-benchmark.is-return { top: 0; bottom: 0; left: var(--benchmark); border-left: 1px dashed #a86f5c; writing-mode: vertical-rl; }
.as-tech-size-legend { display: flex; gap: .35rem; align-items: center; margin-top: .75rem; color: var(--performance-muted); font-size: .68rem; }
.as-tech-size-legend i { display: block; border-radius: 50%; background: var(--performance-clay); }
.as-tech-size-legend i:nth-child(1) { width: 10px; height: 10px; }.as-tech-size-legend i:nth-child(2) { width: 16px; height: 16px; }.as-tech-size-legend i:nth-child(3) { width: 22px; height: 22px; }
.as-tech-visualizations { min-width: 0; overflow: hidden; border: 1px solid var(--performance-line); background: var(--performance-paper); }
.as-tech-viz-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: clamp(1.1rem, 2.5vw, 2rem); border-bottom: 1px solid var(--performance-line); }
.as-tech-viz-header h3,
.as-tech-viz-slide > header h3 { max-width: 780px; margin: .22rem 0 0; font-family: Didot, "Bodoni 72", serif; font-size: clamp(1.45rem, 2.5vw, 2.45rem); font-weight: 400; letter-spacing: -.025em; line-height: 1.08; }
.as-tech-viz-arrows { display: flex; align-items: center; gap: .5rem; flex: 0 0 auto; }
.as-tech-viz-arrows button { width: 42px; height: 42px; border: 1px solid var(--performance-ink); border-radius: 50%; background: transparent; color: var(--performance-ink); cursor: pointer; font: inherit; font-size: 1.1rem; }
.as-tech-viz-arrows button:hover,
.as-tech-viz-arrows button:focus-visible { background: var(--performance-ink); color: var(--performance-paper); outline: 0; }
.as-tech-viz-arrows button:disabled { border-color: var(--performance-line); color: var(--performance-stone); cursor: default; background: transparent; }
.as-tech-viz-arrows span { min-width: 3.2rem; color: var(--performance-muted); font-size: .72rem; text-align: center; }
.as-tech-viz-tabs { display: flex; gap: 0; overflow-x: auto; border-bottom: 1px solid var(--performance-line); scrollbar-width: thin; }
.as-tech-viz-tabs button { min-width: max-content; padding: .78rem 1rem; border: 0; border-right: 1px solid var(--performance-line); background: transparent; color: var(--performance-muted); cursor: pointer; font: inherit; font-size: .7rem; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.as-tech-viz-tabs button[aria-selected="true"] { background: var(--performance-ink); color: var(--performance-paper); }
.as-tech-viz-tabs button:focus-visible { position: relative; z-index: 1; outline: 2px solid var(--performance-gold); outline-offset: -3px; }
.as-tech-viz-track { display: flex; align-items: flex-start; overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: var(--performance-clay) var(--performance-line); }
.as-tech-viz-slide { min-width: 100%; scroll-snap-align: start; scroll-snap-stop: always; padding: clamp(1.1rem, 2.5vw, 2rem); }
.as-tech-viz-slide > header { margin-bottom: 1rem; }
.as-tech-viz-help,
.as-tech-viz-note { color: var(--performance-muted); font-size: .72rem; line-height: 1.5; }
.as-tech-viz-help { margin: 0; padding: .8rem clamp(1.1rem, 2.5vw, 2rem); border-top: 1px solid var(--performance-line); }
.as-tech-viz-note { margin: 1rem 0 0; }
.as-tech-viz-mode-note { margin: 0; padding: .8rem clamp(1.1rem, 2.5vw, 2rem); border-bottom: 1px solid var(--performance-line); background: #f4ede3; color: var(--performance-muted); font-size: .72rem; line-height: 1.5; }
.as-tech-viz-mode-note strong { color: var(--performance-ink); }
.as-tech-viz-legend { display: flex; flex-wrap: wrap; gap: .7rem 1.1rem; margin: .75rem 0 1rem; color: var(--performance-muted); font-size: .68rem; }
.as-tech-viz-legend span { display: inline-flex; align-items: center; gap: .35rem; }
.as-tech-viz-legend i { width: 10px; height: 10px; border-radius: 50%; }
.as-tech-viz-legend .is-same,
.as-tech-return-stack .is-same { background: var(--performance-green); }
.as-tech-viz-legend .is-switched,
.as-tech-return-stack .is-switched { background: var(--performance-gold); }
.as-tech-viz-legend .is-other,
.as-tech-return-stack .is-other { background: #b77a67; }
.as-tech-viz-legend .is-no-return,
.as-tech-return-stack .is-no-return { background: #7d403e; }
.as-tech-viz-legend .is-clients,
.as-tech-reach-stack .is-clients { background: var(--performance-clay); }
.as-tech-viz-legend .is-repeat,
.as-tech-reach-stack .is-repeat { background: var(--performance-gold); }
.as-tech-return-mix { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .15rem 1.4rem; }
.as-tech-return-mix > a { display: grid; gap: .38rem; padding: .7rem 0; border-bottom: 1px solid var(--performance-line); color: var(--performance-ink); text-decoration: none; }
.as-tech-return-mix > a:hover strong,
.as-tech-return-mix > a:focus-visible strong { color: var(--performance-clay); text-decoration: underline; text-underline-offset: .18em; }
.as-tech-return-mix > a:focus-visible { outline: 2px solid var(--performance-gold); outline-offset: 3px; }
.as-tech-return-mix header { display: flex; align-items: baseline; justify-content: space-between; gap: .7rem; }
.as-tech-return-mix header strong { overflow: hidden; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.as-tech-return-mix header span,
.as-tech-return-mix small { color: var(--performance-muted); font-size: .64rem; }
.as-tech-return-stack { display: flex; width: 100%; height: 13px; overflow: hidden; background: #ede7de; }
.as-tech-return-stack i { width: var(--share); min-width: 0; height: 100%; }
.as-tech-client-reach { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .15rem 1.4rem; }
.as-tech-client-reach > a { display: grid; gap: .38rem; padding: .7rem 0; border-bottom: 1px solid var(--performance-line); color: var(--performance-ink); text-decoration: none; }
.as-tech-client-reach > a:hover strong,
.as-tech-client-reach > a:focus-visible strong { color: var(--performance-clay); text-decoration: underline; text-underline-offset: .18em; }
.as-tech-client-reach > a:focus-visible { outline: 2px solid var(--performance-gold); outline-offset: 3px; }
.as-tech-client-reach header { display: flex; align-items: baseline; justify-content: space-between; gap: .7rem; }
.as-tech-client-reach header strong { overflow: hidden; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.as-tech-client-reach header span,
.as-tech-client-reach small { color: var(--performance-muted); font-size: .64rem; }
.as-tech-reach-stack { display: flex; width: 100%; height: 13px; overflow: hidden; background: #ede7de; }
.as-tech-reach-stack i { width: var(--share); min-width: 0; height: 100%; }
.as-tech-work-mix { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; border: 1px solid var(--performance-line); background: var(--performance-line); }
.as-tech-work-mix > a { min-width: 0; display: grid; gap: .85rem; padding: 1rem; background: var(--performance-paper); color: var(--performance-ink); text-decoration: none; }
.as-tech-work-mix > a:hover,
.as-tech-work-mix > a:focus-visible { position: relative; z-index: 1; box-shadow: inset 0 0 0 2px var(--performance-gold); outline: 0; }
.as-tech-work-mix header { display: flex; justify-content: space-between; gap: .65rem; align-items: baseline; }
.as-tech-work-mix header span { color: var(--performance-clay); font-size: .75rem; font-weight: 750; }
.as-tech-work-mix dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .65rem; margin: 0; }
.as-tech-work-mix dt { color: var(--performance-muted); font-size: .56rem; letter-spacing: .05em; text-transform: uppercase; }
.as-tech-work-mix dd { margin: .25rem 0 0; font-family: Didot, "Bodoni 72", serif; font-size: 1.15rem; }
.as-tech-work-mix p { margin: 0; color: var(--performance-muted); font-size: .64rem; line-height: 1.45; }
.as-tech-work-mix p strong { color: var(--performance-ink); }
.as-tech-retention-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--performance-line); border: 1px solid var(--performance-line); }
.as-tech-retention-grid > a { min-width: 0; display: grid; gap: .85rem; padding: 1rem; background: var(--performance-paper); color: var(--performance-ink); text-decoration: none; }
.as-tech-retention-grid > a:hover,
.as-tech-retention-grid > a:focus-visible { position: relative; z-index: 1; box-shadow: inset 0 0 0 2px var(--performance-gold); outline: 0; }
.as-tech-retention-grid header { display: flex; justify-content: space-between; gap: .65rem; align-items: baseline; }
.as-tech-retention-grid header span { color: var(--performance-muted); font-size: .63rem; }
.as-tech-retention-grid dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin: 0; }
.as-tech-retention-grid dt { color: var(--performance-muted); font-size: .61rem; letter-spacing: .05em; text-transform: uppercase; }
.as-tech-retention-grid dd { display: grid; gap: .28rem; margin: .35rem 0 0; }
.as-tech-retention-grid dd > span { display: block; height: 7px; background: #ebe5dc; }
.as-tech-retention-grid dd i { display: block; width: var(--share); height: 100%; background: var(--performance-clay); }
.as-tech-retention-grid dd strong { font-size: .72rem; }
.as-tech-retention-grid dd small { color: var(--performance-muted); font-size: .62rem; }
.as-tech-rankings { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; border: 1px solid var(--performance-line); background: var(--performance-line); }
.as-tech-rankings > section { padding: 1rem; background: var(--performance-paper); }
.as-tech-rankings h4 { margin: 0 0 .6rem; font-family: Didot, "Bodoni 72", serif; font-size: 1.4rem; font-weight: 400; }
.as-tech-rankings ol { display: grid; gap: .25rem; margin: 0; padding: 0; list-style: none; }
.as-tech-rankings li a { display: grid; grid-template-columns: minmax(100px, .9fr) minmax(70px, 1.2fr) auto; gap: .6rem; align-items: center; padding: .45rem 0; border-bottom: 1px solid var(--performance-line); color: var(--performance-ink); font-size: .69rem; text-decoration: none; }
.as-tech-rankings li a:hover span,
.as-tech-rankings li a:focus-visible span { color: var(--performance-clay); text-decoration: underline; text-underline-offset: .18em; }
.as-tech-rankings li a:focus-visible { outline: 2px solid var(--performance-gold); outline-offset: 2px; }
.as-tech-rankings li i { display: block; width: var(--share); max-width: 100%; height: 7px; background: var(--performance-clay); }
.as-tech-rankings li strong { font-size: .64rem; font-weight: 650; white-space: nowrap; }
.as-service-bars,
.as-room-pulse { display: grid; gap: .8rem; }
.as-service-bars button,
.as-room-pulse article { display: grid; grid-template-columns: minmax(130px, .8fr) minmax(140px, 2fr) auto; gap: .7rem; align-items: center; padding: .55rem 0; border: 0; border-bottom: 1px solid var(--performance-line); background: transparent; text-align: left; }
.as-service-bars button { cursor: pointer; }
.as-service-bars i,
.as-room-pulse i { width: var(--bar); min-width: 4px; height: 10px; background: var(--performance-clay); }
.as-service-bars strong,
.as-room-pulse strong { font-family: Didot, "Bodoni 72", serif; font-size: 1.25rem; font-weight: 400; }
.as-service-bars small,
.as-room-pulse small { grid-column: 2 / -1; color: var(--performance-muted); }
.as-appointment-pattern { display: grid; grid-template-columns: auto auto minmax(220px, 1fr); gap: 1rem; align-items: baseline; padding: .9rem 1rem; border-left: 3px solid var(--performance-gold); background: #f7eee5; }
.as-appointment-pattern span { color: var(--performance-muted); font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }.as-appointment-pattern p { margin: 0; color: var(--performance-muted); font-size: .78rem; }
.as-booking-pattern-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--performance-line); background: var(--performance-line); gap: 1px; }
.as-booking-pattern-metrics .as-performance-hero-metric { min-width: 0; padding: 1rem; background: var(--performance-paper); color: var(--performance-ink); }
.as-booking-pattern-metrics .as-performance-hero-metric + .as-performance-hero-metric { border-left: 0; }
.as-booking-pattern-cohort { width: 100%; border: 0; font: inherit; text-align: left; cursor: pointer; transition: background-color .18s ease, box-shadow .18s ease; }
.as-booking-pattern-cohort:hover,
.as-booking-pattern-cohort:focus-visible { background: #f7eee5; box-shadow: inset 0 0 0 2px var(--performance-gold); outline: 0; }
.as-booking-pattern-cohort.is-active { background: var(--performance-ink); color: #fff; }
.as-booking-pattern-cohort em { margin-top: .7rem; color: inherit; font-weight: 750; opacity: 1; }
.as-booking-pattern-filter { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem .85rem; border-left: 3px solid var(--performance-gold); background: #f7eee5; color: var(--performance-ink); font-size: .75rem; }
.as-booking-pattern-filter button { min-height: 34px; padding: .35rem .65rem; border: 1px solid var(--performance-ink); background: transparent; color: inherit; font: inherit; font-weight: 750; cursor: pointer; }
.as-booking-pattern-tabs { display: flex; gap: .35rem; overflow-x: auto; padding: .75rem 0; border-bottom: 1px solid var(--performance-line); }
.as-booking-pattern-tabs button { min-height: 40px; flex: 0 0 auto; padding: .55rem .8rem; border: 1px solid var(--performance-line); background: var(--performance-paper); color: var(--performance-ink); cursor: pointer; }
.as-booking-pattern-tabs button.is-active { border-color: var(--performance-ink); background: var(--performance-ink); color: #fff; }
.as-booking-pattern-method { display: grid; grid-template-columns: minmax(170px, .4fr) minmax(0, 1.6fr); gap: 1rem; align-items: baseline; padding: .8rem 1rem; border-left: 3px solid var(--performance-gold); background: #f7eee5; }
.as-booking-pattern-method strong { font-size: .75rem; }
.as-booking-pattern-method p { margin: 0; color: var(--performance-muted); font-size: .73rem; line-height: 1.5; }
.as-pattern-status { display: inline-flex; align-items: center; min-height: 28px; padding: .25rem .5rem; border: 1px solid var(--performance-line); border-radius: 999px; font-size: .67rem; white-space: nowrap; }
.as-pattern-status--one_booking,
.as-pattern-status--connected_timing { border-color: #c5a26a; background: #f7eee5; }
.as-pattern-status--separate_appointments { border-color: #a98d84; background: #f3e7e3; }
.as-pattern-status--timing_unavailable { color: var(--performance-muted); background: var(--performance-canvas); }
.as-technician-row { cursor: pointer; }
.as-technician-row:hover > td,
.as-technician-row:focus-visible > td { background: #f7eee5; }
.as-technician-row:focus-visible { outline: 2px solid var(--performance-gold); outline-offset: -2px; }
.as-performance-count-link {
  min-width: 5.5rem;
  min-height: 44px;
  display: grid;
  justify-items: start;
  align-content: center;
  gap: .18rem;
  padding: .3rem 0;
  border: 0;
  border-bottom: 1px solid transparent;
  background: transparent;
  color: var(--performance-ink);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.as-performance-count-link strong { font-family: Didot, "Bodoni 72", serif; font-size: 1.35rem; font-weight: 400; line-height: 1; }
.as-performance-count-link small { margin: 0; color: var(--performance-clay); font-size: .62rem; font-weight: 750; line-height: 1.25; }
.as-performance-count-link:hover,
.as-performance-count-link:focus-visible { border-bottom-color: currentColor; color: var(--performance-accent-dark); }
.as-performance-view-context--cohort { border-left-color: var(--performance-clay); }
.as-performance-view-context--cohort h3 { margin: .15rem 0 .35rem; }
.as-ranking-switch { display: flex; gap: .35rem; align-items: center; padding: .65rem 0; border-bottom: 1px solid var(--performance-line); }
.as-ranking-switch > span { margin-right: .35rem; color: var(--performance-muted); font-size: .64rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.as-ranking-switch button { min-height: 36px; padding: .4rem .7rem; border: 1px solid var(--performance-line); background: var(--performance-paper); color: var(--performance-ink); cursor: pointer; }
.as-ranking-switch button.is-active { border-color: var(--performance-ink); background: var(--performance-ink); color: #fff; }
.as-priority-cards,
.as-quality-actions { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; background: var(--performance-line); }
.as-priority-cards article,
.as-quality-actions article { min-width: 0; padding: 1.1rem; background: var(--performance-paper); }
.as-priority-cards article > span,
.as-quality-actions article > span { display: block; color: var(--performance-muted); font-size: .7rem; text-transform: uppercase; }
.as-priority-cards article > strong,
.as-quality-actions article > strong { display: block; margin: .55rem 0; font-family: Didot, "Bodoni 72", serif; font-size: 2rem; font-weight: 400; }
.as-priority-cards p { min-height: 4.5em; color: var(--performance-muted); font-size: .8rem; line-height: 1.5; }
.as-chart-alternative { margin-top: 1rem; border-top: 1px solid var(--performance-line); }
.as-chart-alternative summary { padding: .7rem 0; color: var(--performance-muted); cursor: pointer; font-size: .72rem; }
.as-chart-alternative table { width: 100%; border-collapse: collapse; font-size: .75rem; }
.as-chart-alternative th,
.as-chart-alternative td { padding: .4rem; border-top: 1px solid var(--performance-line); text-align: left; }
.as-frequency { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(0, 2fr); gap: 2rem; padding: 1.4rem 0; }
.as-frequency > div:last-of-type { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--performance-line); }
.as-frequency button,
.as-followup-actions button { display: grid; gap: .35rem; padding: 1rem; border: 0; border-right: 1px solid var(--performance-line); background: var(--performance-paper); text-align: left; }
.as-frequency button strong,
.as-followup-actions button strong { font-family: Didot, "Bodoni 72", serif; font-size: 1.8rem; font-weight: 400; }
.as-frequency button span,
.as-followup-actions button span { color: var(--performance-muted); font-size: .7rem; text-transform: uppercase; }
.as-followup-actions { display: grid; grid-template-columns: repeat(6, minmax(110px, 1fr)); overflow-x: auto; border: 1px solid var(--performance-line); }
.as-followup-actions button { cursor: pointer; }
.as-followup-actions button.is-active { box-shadow: inset 0 4px var(--performance-clay); background: #f5e8e3; }
.as-workflow-tabs,
.as-mode-switch { display: flex; gap: .2rem; overflow-x: auto; padding: .5rem 0; border-bottom: 1px solid var(--performance-line); }
.as-workflow-tabs button,
.as-mode-switch button { flex: 0 0 auto; padding: .65rem .8rem; border: 0; background: transparent; color: var(--performance-muted); cursor: pointer; }
.as-workflow-tabs button.is-active,
.as-mode-switch button.is-active { color: #fff; background: var(--performance-ink); }
.as-record-count { margin: 0; color: var(--performance-muted); font-size: .74rem; }
.as-table-tools { display: flex; justify-content: space-between; gap: .8rem; align-items: center; min-height: 44px; color: var(--performance-muted); font-size: .72rem; }
.as-table-tools > details { position: relative; margin-left: auto; }
.as-page-size { flex: 0 0 auto; display: flex; align-items: center; gap: .45rem; color: var(--performance-muted); font-size: .7rem; font-weight: 700; letter-spacing: 0; text-transform: none; white-space: nowrap; }
.as-page-size select { min-height: 34px; border: 1px solid var(--performance-line); background: var(--performance-paper); color: var(--performance-ink); padding: .35rem 1.8rem .35rem .5rem; }
.as-table-tools summary,
.as-table-tools nav button { border: 1px solid var(--performance-line); background: var(--performance-paper); padding: .5rem .65rem; color: var(--performance-ink); cursor: pointer; list-style: none; }
.as-table-tools summary::-webkit-details-marker { display: none; }
.as-table-tools .as-column-picker > summary { display: flex; align-items: center; gap: .4rem; }
.as-table-tools .as-column-picker > summary span { min-width: 2.35rem; padding: .12rem .3rem; background: var(--performance-canvas); color: var(--performance-muted); font-size: .58rem; font-weight: 750; text-align: center; }
.as-column-picker__menu { position: absolute; z-index: 30; top: calc(100% + .3rem); right: 0; width: min(330px, calc(100vw - 2rem)); max-height: min(320px, calc(100vh - 7rem)); display: grid; grid-template-rows: auto minmax(0, 1fr); overflow: hidden; border: 1px solid var(--performance-ink); background: var(--performance-paper); box-shadow: 0 18px 35px rgb(29 27 25 / .18); }
.as-column-picker__header { position: sticky; top: 0; z-index: 1; min-height: 46px; display: flex; justify-content: space-between; align-items: center; gap: .75rem; padding: .65rem .75rem; border-bottom: 1px solid var(--performance-line); background: var(--performance-paper); }
.as-column-picker__header strong { color: var(--performance-ink); font-size: .72rem; letter-spacing: .04em; }
.as-column-picker__header button { border: 0; background: transparent; color: var(--performance-clay); font-size: .65rem; font-weight: 750; text-decoration: underline; text-underline-offset: .18em; }
.as-column-picker__options { min-height: 0; display: grid; gap: .15rem; overflow: auto; padding: .45rem; }
.as-table-tools .as-column-picker__options label { min-height: 34px; display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: .6rem; align-items: center; padding: .4rem .5rem; border-radius: 4px; color: var(--performance-ink); font-size: .72rem; font-weight: 650; line-height: 1.25; cursor: pointer; }
.as-table-tools .as-column-picker__options label:hover { background: var(--performance-canvas); }
.as-table-tools .as-column-picker__options input[type="checkbox"] { width: 16px; height: 16px; min-height: 0; margin: 0; padding: 0; border-radius: 3px; accent-color: var(--performance-clay); }
.as-table-tools nav { display: flex; gap: .45rem; align-items: center; }
.as-table-tools nav button:disabled { cursor: not-allowed; opacity: .45; }
.as-performance-table [hidden] { display: none !important; }
.as-performance-table-wrap { max-width: 100%; overflow: auto; overscroll-behavior-inline: contain; border: 1px solid var(--performance-line); box-shadow: inset -16px 0 18px -22px var(--performance-ink); }
.as-performance-table { min-width: 100%; width: max-content; max-width: none; background: var(--performance-paper); font-size: .78rem; }
.as-performance-table th,
.as-performance-table td { min-width: 105px; max-width: 250px; padding: .78rem .75rem; border-bottom: 1px solid #e8e1d8; white-space: normal; vertical-align: top; overflow-wrap: anywhere; }
.as-performance-table th { z-index: 3; top: 0; background: #eee8df; color: var(--performance-muted); font-size: .64rem; line-height: 1.35; }
.as-performance-table th:first-child,
.as-performance-table td:first-child { position: sticky; left: 0; z-index: 2; min-width: 165px; background: var(--performance-paper); box-shadow: 10px 0 18px -19px var(--performance-ink); }
.as-performance-table th:first-child { z-index: 4; background: #eee8df; }
.as-performance-table td small { display: block; margin-top: .25rem; color: var(--performance-muted); }
.as-performance-table tr.is-visual-review td { background: #fff6ee; }
.as-performance-table tr.is-visual-review td:first-child::after { content: "Synthetic review"; display: block; margin-top: .3rem; color: var(--performance-clay); font-size: .58rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.as-visual-review-value { color: var(--performance-ink); }
.as-review-workflow-detail td { padding: 1rem; background: #fff6ee; color: var(--performance-ink); }
.as-review-workflow-detail p { max-width: 70ch; color: var(--performance-muted); }
.as-review-workflow-detail [role="group"] { display: flex; gap: .55rem; flex-wrap: wrap; }
.as-review-workflow-detail button { min-height: 38px; border: 1px solid var(--performance-ink); background: var(--performance-paper); color: var(--performance-ink); cursor: pointer; font-weight: 750; }
.as-performance-profile .is-anchor-target { outline: 3px solid var(--performance-clay); outline-offset: 4px; scroll-margin-block: 6rem; }
.as-performance-table .as-action-cell { position: sticky; right: 0; z-index: 2; background: var(--performance-paper); box-shadow: -10px 0 18px -19px var(--performance-ink); }
.as-performance-pill { border-radius: 0; background: #e8e1d8; font-size: .68rem; font-weight: 700; }
.as-performance-pill--future_booked { background: #ead8cd; }
.as-performance-pill--fresh { background: #eee5d1; }
.as-performance-pill--lapsed { background: #efd7d1; }
.as-date-heading { position: relative; display: flex; align-items: center; gap: .4rem; }
.as-date-heading > button,
.as-date-heading > details > summary { border: 0; background: transparent; color: inherit; padding: 0; cursor: pointer; font-size: inherit; text-transform: uppercase; }
.as-table-sort { border: 0; background: transparent; color: inherit; padding: 0; cursor: pointer; font: inherit; font-weight: inherit; letter-spacing: inherit; text-align: left; text-transform: inherit; }
.as-table-sort:hover,
.as-table-sort:focus-visible,
.as-date-heading > button:hover,
.as-date-heading > button:focus-visible { color: var(--performance-accent-dark); text-decoration: underline; text-underline-offset: .22em; }
.as-column-heading { display: inline-flex; gap: .35rem; align-items: flex-start; }
.as-column-heading .as-date-heading { min-width: 0; }
.as-column-info-button { flex: 0 0 auto; width: 18px; height: 18px; min-height: 0; display: inline-grid; place-items: center; padding: 0; border: 1px solid currentColor; border-radius: 999px; background: transparent; color: var(--performance-muted); cursor: pointer; font: 750 .62rem/1 var(--performance-sans); letter-spacing: 0; text-transform: none; }
.as-column-info-button:hover,
.as-column-info-button:focus-visible,
.as-column-info-button[aria-expanded="true"] { border-color: var(--performance-accent-dark); background: var(--performance-accent-dark); color: var(--performance-paper); }
.as-schedule-column-info { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; align-items: start; margin: 0 0 .75rem; padding: .9rem 1rem; border: 1px solid var(--performance-line); border-left: 4px solid var(--performance-clay); background: #fff8f2; box-shadow: 0 12px 26px rgb(29 27 25 / .08); }
.as-schedule-column-info h4 { margin: .15rem 0 .35rem; font: 500 1.15rem/1.1 var(--performance-display); }
.as-schedule-column-info p:not(.as-kicker) { max-width: 78ch; margin: 0; color: var(--performance-ink); font-size: .76rem; line-height: 1.5; }
.as-schedule-column-info small { display: block; margin-top: .35rem; color: var(--performance-muted); font-size: .65rem; }
.as-schedule-column-info > button { width: 34px; height: 34px; min-height: 0; padding: 0; border: 1px solid var(--performance-line); border-radius: 999px; background: var(--performance-paper); color: var(--performance-ink); cursor: pointer; font-size: 1.1rem; line-height: 1; }
.as-date-heading > details > summary { font-size: .58rem; }
.as-date-heading > details[open] > div { position: absolute; z-index: 30; top: 1.4rem; left: 0; width: 230px; display: grid; gap: .55rem; padding: .8rem; border: 1px solid var(--performance-ink); background: var(--performance-paper); box-shadow: 0 18px 35px rgb(29 27 25 / .18); }
.as-date-heading label { display: grid; gap: .2rem; color: var(--performance-muted); font-size: .62rem; }
.as-date-heading input,
.as-date-heading select { width: 100%; }
.as-schedule-heatmap { display: grid; grid-template-columns: minmax(110px, 1.4fr) repeat(7, minmax(58px, 1fr)); gap: 3px; min-width: 650px; padding: 1rem; overflow-x: auto; background: var(--performance-paper); }
.as-schedule-heatmap > b { color: var(--performance-muted); font-size: .65rem; text-align: center; text-transform: uppercase; }
.as-schedule-heatmap > strong { overflow: hidden; padding: .65rem .35rem; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.as-schedule-heatmap > button,
.as-schedule-cell { position: relative; min-height: 48px; display: grid; place-content: center; gap: .15rem; padding: .3rem; border: 1px solid rgb(126 70 57 / .2); background: rgb(150 83 66 / var(--density)); color: #231d1a; text-align: center; }
.as-schedule-heatmap > button::after,
.as-schedule-cell::after { content: attr(aria-label); position: absolute; z-index: 20; top: calc(100% + .35rem); left: 50%; width: 220px; max-width: 70vw; padding: .5rem .6rem; border: 1px solid var(--performance-ink); background: var(--performance-ink); color: var(--performance-paper); font-size: .62rem; font-weight: 650; line-height: 1.35; text-align: left; opacity: 0; pointer-events: none; transform: translateX(-50%); box-shadow: 0 12px 24px rgb(29 27 25 / .2); }
.as-schedule-heatmap > button:hover::after,
.as-schedule-heatmap > button:focus-visible::after,
.as-schedule-cell:hover::after,
.as-schedule-cell:focus-visible::after { opacity: 1; }
.as-schedule-heatmap > button { cursor: pointer; }
.as-schedule-heatmap > button span { font-size: .68rem; font-weight: 750; opacity: .9; }
.as-schedule-heatmap > button small,
.as-schedule-cell small { font-size: .52rem; line-height: 1.15; }
.as-schedule-heatmap > button:hover span,
.as-schedule-heatmap > button:focus-visible span { opacity: 1; }
.as-schedule-cell.is-unavailable { border-style: dashed; background: repeating-linear-gradient(135deg, #f3ece3 0 5px, #e6dbce 5px 6px); color: var(--performance-muted); }
.as-schedule-cell.is-no-observation { border-color: #e1d6ca; background: #faf6f0; color: var(--performance-muted); }
.as-schedule-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--performance-line); }.as-schedule-summary div { padding: .9rem 1rem; border-right: 1px solid var(--performance-line); }.as-schedule-summary span { display: block; color: var(--performance-muted); font-size: .66rem; text-transform: uppercase; }.as-schedule-summary strong { display: block; margin-top: .25rem; font-family: Didot, "Bodoni 72", serif; font-size: 1.5rem; font-weight: 400; }
.as-schedule-summary small { display: block; margin-top: .2rem; color: var(--performance-muted); font-size: .6rem; }
.as-schedule-scope { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin-bottom: 1rem; border: 1px solid var(--performance-line); background: var(--performance-line); }
.as-schedule-scope > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .35rem .8rem; align-items: center; padding: .85rem 1rem; background: var(--performance-paper); }
.as-schedule-scope span { grid-column: 1 / -1; color: var(--performance-muted); font-size: .61rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.as-schedule-scope strong { min-width: 0; font-size: .86rem; }
.as-schedule-scope button { border: 0; background: transparent; color: var(--performance-clay); font: inherit; font-size: .68rem; font-weight: 750; text-decoration: underline; text-underline-offset: .18em; cursor: pointer; }
.as-schedule-scope details { grid-column: 1 / -1; }
.as-schedule-scope summary { color: var(--performance-muted); font-size: .65rem; cursor: pointer; }
.as-schedule-scope details p { margin: .5rem 0 0; color: var(--performance-muted); font-size: .68rem; line-height: 1.45; }
.as-heatmap-legend { display: flex; gap: .5rem; align-items: center; padding: .7rem 0; color: var(--performance-muted); font-size: .66rem; }.as-heatmap-legend i { width: 30px; height: 10px; background: rgb(150 83 66 / .2); }.as-heatmap-legend i.is-high { background: rgb(150 83 66 / .92); }
.as-period-badge { display: inline-flex; align-items: center; width: fit-content; padding: .45rem .65rem; border: 1px solid var(--performance-line); background: var(--performance-paper); color: var(--performance-ink); font-size: .7rem; font-weight: 700; white-space: nowrap; }
.as-schedule-explorer > header,
.as-technician-capacity-totals > header,
.as-schedule-table-heading { display: flex; justify-content: space-between; gap: 1rem; align-items: start; }
.as-schedule-explorer > header { margin-bottom: 1rem; }
.as-technician-capacity-totals { margin-top: 1.2rem; padding: 1rem; border: 1px solid var(--performance-line); background: var(--performance-paper); }
.as-technician-capacity-totals > header { margin-bottom: .8rem; }
.as-technician-capacity-totals > header p:last-child { max-width: 72ch; margin: .35rem 0 0; color: var(--performance-muted); font-size: .72rem; line-height: 1.45; }
.as-technician-totals-table-wrap { max-width: 100%; overflow-x: auto; border: 1px solid var(--performance-line); }
.as-technician-totals-table { width: 100%; min-width: 900px; border-collapse: collapse; background: var(--performance-paper); font-size: .72rem; }
.as-technician-totals-table th,
.as-technician-totals-table td { padding: .7rem .75rem; border-bottom: 1px solid var(--performance-line); text-align: left; white-space: nowrap; }
.as-technician-totals-table thead th { background: #eee7de; color: var(--performance-muted); font-size: .6rem; letter-spacing: .06em; text-transform: uppercase; }
.as-technician-totals-table tbody th { position: sticky; left: 0; z-index: 1; min-width: 170px; background: var(--performance-paper); }
.as-schedule-table-heading { margin: 1.5rem 0 .75rem; padding-top: 1rem; border-top: 1px solid var(--performance-line); }
.as-daily-timeline { display: grid; gap: 1rem; }
.as-timeline-navigator { display: flex; justify-content: space-between; gap: 1rem; align-items: center; }
.as-timeline-navigator > div:first-child { display: grid; gap: .15rem; }
.as-timeline-navigator > div:first-child strong { font-size: 1rem; }
.as-timeline-navigator > div:first-child span { color: var(--performance-muted); font-size: .72rem; }
.as-timeline-navigator > div:last-child { display: flex; gap: .5rem; align-items: center; }
.as-timeline-navigator button { width: 38px; height: 38px; border: 1px solid var(--performance-ink); border-radius: 999px; background: var(--performance-paper); color: var(--performance-ink); cursor: pointer; }
.as-timeline-navigator button:disabled { border-color: var(--performance-line); color: var(--performance-muted); cursor: default; opacity: .5; }
.as-timeline-navigator > div:last-child span { color: var(--performance-muted); font-size: .7rem; white-space: nowrap; }
.as-schedule-date-strip { display: flex; gap: .4rem; max-width: 100%; padding: .25rem 0 .6rem; overflow-x: auto; scroll-snap-type: x proximity; }
.as-schedule-date-strip button { flex: 0 0 112px; display: grid; gap: .12rem; padding: .55rem .65rem; border: 1px solid var(--performance-line); background: var(--performance-paper); color: var(--performance-ink); text-align: left; cursor: pointer; scroll-snap-align: center; }
.as-schedule-date-strip button.is-selected { border-color: var(--performance-ink); background: var(--performance-ink); color: var(--performance-paper); }
.as-schedule-date-strip button:disabled { opacity: .42; cursor: default; }
.as-schedule-date-strip span { font-size: .58rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.as-schedule-date-strip strong { font-size: .76rem; }
.as-schedule-date-strip small { font-size: .55rem; opacity: .75; }
.as-range-calendar { width: 100%; min-width: 0; max-width: 100%; margin: 1.25rem 0; padding: 1rem; overflow: hidden; border: 1px solid var(--performance-line); background: var(--performance-paper); }
.as-range-calendar > header { display: flex; justify-content: space-between; gap: 1.5rem; align-items: start; margin-bottom: .8rem; }
.as-range-calendar > header h3 { margin-bottom: .25rem; }
.as-range-calendar > header p:last-child { max-width: 78ch; margin: 0; color: var(--performance-muted); font-size: .7rem; line-height: 1.45; }
.as-range-calendar > header > div:last-child { display: grid; justify-items: end; gap: .3rem; }
.as-range-calendar > header > div:last-child small { max-width: 230px; color: var(--performance-muted); font-size: .58rem; line-height: 1.3; text-align: right; }
.as-range-calendar-pagination { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .75rem; align-items: center; margin: 0 0 .7rem; }
.as-range-calendar-pagination button { min-height: 44px; padding: .55rem .8rem; border: 1px solid var(--performance-line); background: var(--performance-paper); color: var(--performance-ink); font: 750 .64rem/1.2 var(--performance-sans); cursor: pointer; }
.as-range-calendar-pagination button:hover,
.as-range-calendar-pagination button:focus-visible { border-color: var(--performance-clay); outline: 2px solid var(--performance-clay); outline-offset: 2px; }
.as-range-calendar-pagination button:disabled { opacity: .4; cursor: default; }
.as-range-calendar-pagination button:disabled:hover { border-color: var(--performance-line); outline: 0; }
.as-range-calendar-pagination span { min-width: 0; text-align: center; }
.as-range-calendar-pagination strong,
.as-range-calendar-pagination small { display: block; }
.as-range-calendar-pagination strong { color: var(--performance-ink); font-size: .72rem; }
.as-range-calendar-pagination small { margin-top: .15rem; color: var(--performance-muted); font-size: .56rem; }
.as-range-calendar-legend { display: flex; flex-wrap: wrap; gap: .55rem 1rem; align-items: center; margin-bottom: .7rem; color: var(--performance-muted); font-size: .62rem; }
.as-range-calendar-legend span { display: inline-flex; gap: .35rem; align-items: center; }
.as-range-calendar-legend i { width: 28px; height: 9px; border: 1px solid var(--performance-line); }
.as-range-calendar-legend .is-booked { background: var(--performance-green); }
.as-range-calendar-legend .is-gap { background: repeating-linear-gradient(135deg, #f7e8df 0 5px, #c68d7d 5px 7px); }
.as-range-calendar-scroll { width: 100%; min-width: 0; max-width: 100%; padding-bottom: 4px; overflow-x: auto; overflow-y: visible; border: 1px solid var(--performance-line); overscroll-behavior-inline: contain; scrollbar-gutter: stable; scrollbar-width: thin; scrollbar-color: var(--performance-clay) #eee7de; -webkit-overflow-scrolling: touch; }
.as-range-calendar-scroll::-webkit-scrollbar { height: 12px; }
.as-range-calendar-scroll::-webkit-scrollbar-track { background: #eee7de; }
.as-range-calendar-scroll::-webkit-scrollbar-thumb { border: 3px solid #eee7de; border-radius: 999px; background: var(--performance-clay); }
.as-range-calendar table { width: max-content; min-width: 100%; border-collapse: collapse; background: var(--performance-paper); }
.as-range-calendar th,
.as-range-calendar td { min-width: 132px; padding: .48rem; border-right: 1px solid var(--performance-line); border-bottom: 1px solid var(--performance-line); vertical-align: middle; }
.as-range-calendar thead th { position: sticky; top: 0; z-index: 2; background: #eee7de; color: var(--performance-muted); text-align: left; }
.as-range-calendar thead th:first-child,
.as-range-calendar tbody th { position: sticky; left: 0; z-index: 3; min-width: 180px; background: var(--performance-paper); }
.as-range-calendar thead th:first-child { z-index: 4; background: #eee7de; }
.as-range-calendar th strong { display: block; color: var(--performance-ink); font-size: .66rem; white-space: nowrap; }
.as-range-calendar th small,
.as-range-calendar td small { display: block; margin-top: .18rem; color: var(--performance-muted); font-size: .5rem; line-height: 1.25; }
.as-range-calendar td button { width: 100%; min-height: 48px; display: grid; gap: .28rem; padding: 0; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.as-range-calendar td button:hover,
.as-range-calendar td button:focus-visible { outline: 2px solid var(--performance-clay); outline-offset: 3px; }
.as-range-calendar .is-salon-total th,
.as-range-calendar .is-salon-total td { background: #f5eee5; }
.as-range-calendar-clock { position: relative; width: 100%; height: 18px; display: block; overflow: hidden; border: 1px solid var(--performance-line); background: #f7f2ec; }
.as-range-calendar-clock i { position: absolute; top: 0; bottom: 0; left: var(--left); width: var(--width); display: grid; place-items: center; overflow: hidden; font-style: normal; }
.as-range-calendar-clock i.is-booked { background: var(--performance-green); color: #fff; }
.as-range-calendar-clock i.is-gap { border-inline: 1px dashed var(--performance-clay); background: repeating-linear-gradient(135deg, #f7e8df 0 4px, #c68d7d 4px 6px); color: var(--performance-ink); }
.as-range-calendar-clock b { font-size: .43rem; white-space: nowrap; }
.as-range-calendar-empty { color: var(--performance-muted); font-size: .56rem; }
.as-range-calendar-cumulative { height: 16px; display: flex; overflow: hidden; border: 1px solid var(--performance-line); background: #f7f2ec; }
.as-range-calendar-cumulative i { flex: var(--share) 1 0; min-width: 0; }
.as-range-calendar-cumulative .is-booked { background: var(--performance-green); }
.as-range-calendar-cumulative .is-gap { background: repeating-linear-gradient(135deg, #f7e8df 0 4px, #c68d7d 4px 6px); }
.as-range-calendar-week-stack { display: grid; gap: 2px; }
.as-range-calendar-week-stack > i { display: grid; grid-template-columns: 12px minmax(0, 1fr); gap: 3px; align-items: center; font-style: normal; }
.as-range-calendar-week-stack > i > small { margin: 0; text-align: center; }
.as-range-calendar--compact th,
.as-range-calendar--compact td { min-width: 112px; padding: .4rem; }
.as-range-calendar--compact thead th:first-child,
.as-range-calendar--compact tbody th { min-width: 160px; }
.as-range-calendar--compact .as-range-calendar-clock { height: 14px; }
.as-range-calendar--weekly th,
.as-range-calendar--weekly td { min-width: 155px; }
.as-range-calendar--weekly .as-range-calendar-clock { height: 9px; }
@media (max-width: 760px) {
  .as-range-calendar { padding: .75rem; }
  .as-range-calendar > header { display: grid; }
  .as-range-calendar > header > div:last-child { justify-items: start; }
  .as-range-calendar > header > div:last-child small { text-align: left; }
  .as-range-calendar-pagination { grid-template-columns: 1fr 1fr; }
  .as-range-calendar-pagination span { grid-column: 1 / -1; grid-row: 1; }
  .as-range-calendar-pagination button { grid-row: 2; }
  .as-range-calendar th,
  .as-range-calendar td { min-width: 112px; }
  .as-range-calendar thead th:first-child,
  .as-range-calendar tbody th { min-width: 138px; }
}

/* Client chart distillation: one subject at a time, with the restrained
   editorial navigation and record rhythm used in All Six Education. */
body.as-mode-staff.as-chart-selected .as-chart-card {
  display: block;
  overflow: visible;
}

body.as-mode-staff.as-staff-workbench-clients.as-chart-selected .as-client-summary .as-staff-tools,
body.as-mode-staff.as-staff-workbench-clients.as-chart-selected .as-client-summary .as-chart-summary {
  display: none !important;
}

body.as-mode-staff.as-staff-workbench-clients.as-chart-selected .as-client-summary {
  position: sticky;
  top: 18px;
  align-self: start;
  max-height: calc(100dvh - 36px);
}

body.as-mode-staff.as-staff-workbench-clients.as-chart-selected .as-search-results {
  flex: 1 1 auto;
  min-height: 180px;
  max-height: none;
}

body.as-mode-staff.as-staff-workbench-clients.as-chart-selected .as-staff-context-panel {
  min-height: 0;
  margin: 4px 0 0;
  border-block: 1px solid var(--as-portal-line);
}

body.as-mode-staff.as-staff-workbench-clients.as-chart-selected .as-staff-context-panel__identity {
  padding: 22px 0 18px;
  border-bottom: 0;
}

body.as-mode-staff.as-staff-workbench-clients.as-chart-selected .as-staff-context-panel__visits {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--as-portal-line);
}

body.as-mode-staff.as-staff-workbench-clients.as-chart-selected .as-staff-context-panel__visits > div {
  grid-template-columns: 112px minmax(0, 1fr);
  padding: 16px 0;
  border-bottom: 0;
}

body.as-mode-staff.as-staff-workbench-clients.as-chart-selected .as-staff-context-panel__visits > div + div {
  border-left: 1px solid var(--as-portal-line);
  padding-left: 24px;
}

body.as-mode-staff.as-staff-workbench-clients.as-chart-selected .as-staff-context-panel__operations,
body.as-mode-staff.as-staff-workbench-clients.as-chart-selected .as-staff-context-panel__communication,
body.as-mode-staff.as-staff-workbench-clients.as-chart-selected .as-staff-context-panel__actions {
  display: none !important;
}

.as-staff-context-panel__labels {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 14px;
  align-items: center;
}

.as-staff-context-panel__groups {
  color: var(--as-portal-ink);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.as-chart-subject-nav {
  display: flex;
  gap: 0;
  margin: 22px 0 0;
  overflow-x: auto;
  border-bottom: 1px solid var(--as-portal-line);
  scrollbar-width: thin;
}

.as-chart-subject-nav[hidden],
[data-chart-subject-panel][hidden],
[data-chart-action-subject][hidden] {
  display: none !important;
}

.as-chart-subject-nav button {
  flex: 0 0 auto;
  min-height: 46px;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  padding: 11px 18px;
  background: transparent;
  color: var(--as-portal-muted);
  font: 750 .8rem/1.2 var(--as-current-site-font);
  cursor: pointer;
}

.as-chart-subject-nav button:hover,
.as-chart-subject-nav button:focus-visible,
.as-chart-subject-nav button.is-active {
  border-bottom-color: var(--as-portal-wine);
  color: var(--as-portal-ink);
}

body.as-mode-staff.as-chart-selected .as-chart-actions {
  display: flex;
  grid-template-columns: none;
  gap: 8px;
  min-height: 58px;
  margin: 0;
  padding: 12px 0;
  border-bottom: 1px solid var(--as-portal-line);
}

body.as-mode-staff.as-chart-selected .as-chart-actions .as-button {
  width: auto;
  min-height: 40px;
  border-radius: 0;
  padding: 9px 14px;
}

.as-chart-subject-intro {
  max-width: 760px;
  min-height: 230px;
  padding: clamp(30px, 5vw, 68px) 0;
}

.as-chart-subject-intro h4 {
  max-width: 18ch;
  margin: 7px 0 12px;
  color: var(--as-portal-ink);
  font: 500 clamp(2rem, 4vw, 3.35rem)/1 Georgia, "Times New Roman", serif;
}

.as-chart-subject-intro p:last-child {
  max-width: 60ch;
  color: var(--as-portal-muted);
  line-height: 1.65;
}

body.as-mode-staff.as-chart-selected .as-chart-attention,
body.as-mode-staff.as-chart-selected .as-chart-history,
body.as-mode-staff.as-chart-selected .as-chart-detail-panel,
body.as-mode-staff.as-chart-selected .as-chart-intake-detail {
  min-height: 0;
  margin: 0;
  border: 0;
  border-radius: 0;
  padding: 28px 0;
  background: transparent;
}

body.as-mode-staff.as-chart-selected .as-chart-detail-panel {
  border-top: 1px solid var(--as-portal-line);
}

body.as-mode-staff.as-chart-selected .as-chart-card .as-timeline {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
  max-height: none;
  overflow: visible;
  padding: 0;
}

body.as-mode-staff.as-chart-selected .as-timeline-group {
  display: grid;
  gap: 0;
  border: 0;
  border-top: 1px solid var(--as-portal-line);
  border-radius: 0;
  padding: 0;
  background: transparent;
}

body.as-mode-staff.as-chart-selected .as-timeline-group__heading {
  align-items: end;
  padding: 20px 0 12px;
}

body.as-mode-staff.as-chart-selected .as-timeline-group__heading > span,
body.as-mode-staff.as-chart-selected .as-chart-section-heading > span {
  border: 0;
  border-radius: 0;
  padding: 0;
  background: transparent;
}

body.as-mode-staff.as-chart-selected .as-timeline-group__items {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}

body.as-mode-staff.as-chart-selected .as-timeline article.as-timeline-card {
  display: grid;
  grid-template-columns: minmax(150px, .28fr) minmax(220px, .72fr) minmax(260px, 1fr);
  gap: 14px 24px;
  align-items: start;
  min-height: 0;
  border: 0;
  border-top: 1px solid var(--as-portal-line);
  border-radius: 0;
  padding: 17px 4px;
  background: transparent;
  box-shadow: none;
}

body.as-mode-staff.as-chart-selected .as-timeline article.as-timeline-card:hover,
body.as-mode-staff.as-chart-selected .as-timeline article.as-timeline-card:focus-visible,
body.as-mode-staff.as-chart-selected .as-timeline article.as-timeline-card.is-expanded {
  border-color: var(--as-portal-wine);
  background: var(--as-portal-soft);
  box-shadow: none;
}

body.as-mode-staff.as-chart-selected .as-timeline-card__top {
  display: grid;
  gap: 8px;
}

body.as-mode-staff.as-chart-selected .as-timeline-card > strong {
  color: var(--as-portal-ink);
  font-size: .92rem;
  line-height: 1.35;
}

body.as-mode-staff.as-chart-selected .as-timeline-card > small {
  color: var(--as-portal-muted);
  font-size: .8rem;
  line-height: 1.5;
}

body.as-mode-staff.as-chart-selected .as-timeline-card__detail {
  grid-column: 1 / -1;
  margin: 0;
  padding: 16px 0 0;
}

@media (max-width: 980px) {
  body.as-mode-staff.as-staff-workbench-clients.as-chart-selected .as-client-summary {
    position: static;
    max-height: none;
  }

  body.as-mode-staff.as-staff-workbench-clients.as-chart-selected .as-staff-context-panel__visits,
  body.as-mode-staff.as-chart-selected .as-timeline article.as-timeline-card {
    grid-template-columns: 1fr;
  }

  body.as-mode-staff.as-staff-workbench-clients.as-chart-selected .as-staff-context-panel__visits > div + div {
    border-left: 0;
    border-top: 1px solid var(--as-portal-line);
    padding-left: 0;
  }
}

@media (max-width: 700px) {
  .as-chart-subject-nav button {
    min-height: 44px;
    padding-inline: 13px;
    font-size: .75rem;
  }

  body.as-mode-staff.as-chart-selected .as-chart-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  body.as-mode-staff.as-chart-selected .as-chart-actions .as-button {
    width: 100%;
  }
}
.as-timeline-track { min-height: 82px; display: flex; gap: 0; align-items: stretch; padding: .45rem; overflow: hidden; border: 1px solid var(--performance-line); background: #f8f3ed; }
.as-timeline-track > span { flex: var(--duration) 1 0; min-width: 0; display: grid; place-items: center; align-content: center; gap: .18rem; overflow: hidden; padding: .35rem .15rem; border-right: 2px solid var(--performance-paper); font-size: .66rem; text-align: center; }
.as-timeline-track > span b,
.as-timeline-track > span small { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.as-timeline-track > span small { font-size: .52rem; opacity: .84; }
.as-timeline-track .is-booked { background: var(--performance-green); color: #fff; }
.as-timeline-track .is-gap { border: 1px dashed var(--performance-clay); background: #f7e8df; color: var(--performance-ink); }
.as-timeline-track > span:focus-visible { outline: 3px solid var(--performance-ink); outline-offset: 2px; }
.as-timeline-axis { position: relative; height: 28px; margin: -.75rem .45rem 0; border-top: 1px solid var(--performance-line); }
.as-timeline-axis span { position: absolute; top: .35rem; left: var(--left); color: var(--performance-muted); font-size: .54rem; transform: translateX(-50%); white-space: nowrap; }
.as-timeline-axis span::before { content: ""; position: absolute; bottom: calc(100% + .32rem); left: 50%; width: 1px; height: 6px; background: var(--performance-line); }
.as-timeline-axis span.is-first { transform: none; }
.as-timeline-axis span.is-first::before { left: 0; }
.as-timeline-axis span.is-last { transform: translateX(-100%); }
.as-timeline-axis span.is-last::before { left: 100%; }
.as-timeline-empty { align-self: center; margin: auto; color: var(--performance-muted); font-size: .72rem; }
.as-capacity-bar { width: min(260px, 100%); min-width: 170px; height: 28px; display: flex; overflow: hidden; border: 1px solid var(--performance-line); background: #eee7de; }
.as-capacity-bar i { flex: var(--duration) 1 0; min-width: 0; height: 100%; display: grid; place-items: center; overflow: hidden; border-right: 1px solid var(--performance-paper); font-style: normal; }
.as-capacity-bar i b { overflow: hidden; padding: 0 .15rem; color: currentColor; font-size: .5rem; text-overflow: ellipsis; white-space: nowrap; }
.as-capacity-bar .is-booked,
.as-capacity-bar-legend .is-booked { background: var(--performance-green); }
.as-capacity-bar .is-booked { color: #fff; }
.as-capacity-bar .is-gap,
.as-capacity-bar-legend .is-gap { background: repeating-linear-gradient(135deg, #f7e8df 0 5px, #c68d7d 5px 7px); }
.as-capacity-bar .is-gap { color: var(--performance-ink); }
.as-capacity-bar-empty { color: var(--performance-muted); font-size: .65rem; }
.as-capacity-bar-legend { display: flex; flex-wrap: wrap; gap: .4rem .65rem; align-items: center; color: var(--performance-muted); font-size: .64rem; }
.as-capacity-bar-legend i { width: 30px; height: 10px; border: 1px solid var(--performance-line); }
.as-performance-table td[hidden],
.as-performance-table th[hidden] { display: none !important; }
.as-confidence-meter { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--performance-line); background: var(--performance-paper); }
.as-confidence-meter div { padding: 1.2rem; border-right: 1px solid var(--performance-line); }
.as-confidence-meter span { display: block; color: var(--performance-muted); font-size: .7rem; text-transform: uppercase; }
.as-confidence-meter strong { display: block; margin-top: .45rem; font-family: Didot, "Bodoni 72", serif; font-size: 1.8rem; font-weight: 400; }
.as-confidence-meter small { display: block; margin-top: .35rem; color: var(--performance-muted); font-size: .65rem; line-height: 1.35; }

/* Keep the approved editorial Overview header while completing its executive read above the fold. */
@media (min-width: 1200px) {
  .as-performance.is-overview .as-performance__controls { grid-template-columns: minmax(220px, .7fr) minmax(0, 2.3fr); }
  .as-performance.is-overview .as-performance__date-control > summary { min-height: 62px; padding: .55rem 1rem; }
  .as-performance.is-overview .as-performance__filters { padding: .45rem 1rem; }
  .as-performance.is-overview .as-performance__filters input,
  .as-performance.is-overview .as-performance__filters select { min-height: 34px; padding-block: .3rem; }
  .as-performance.is-overview .as-performance__tabs > div { padding-top: .35rem; }
  .as-performance.is-overview .as-performance__tabs button { padding: .85rem .65rem .55rem; }
  .as-performance.is-overview .as-performance__notice { margin-block: .55rem; padding-block: .45rem; }
  .as-performance.is-overview .as-performance__content { padding-top: .75rem; }
  .as-performance.is-overview .as-performance-executive { padding: 1.25rem 1.75rem; }
  .as-performance.is-overview .as-performance-executive > .as-kicker { margin: 0 0 .35rem; }
  .as-performance.is-overview .as-performance-executive > h2 { margin-block: 0 .4rem; font-size: 3.25rem; line-height: .98; }
  .as-performance.is-overview .as-performance-executive > p:not(.as-kicker) { max-width: 1180px; margin-block: .4rem; font-size: .95rem; line-height: 1.45; }
  .as-performance.is-overview .as-performance-executive .as-performance-hero-metrics { margin-top: .85rem; }
  .as-performance.is-overview .as-performance-executive .as-performance-hero-metric { padding-top: .75rem; }
}

.as-quality-live { margin: 0; padding: .75rem 1rem; border-left: 3px solid var(--performance-green); background: var(--performance-paper); }
.as-quality-actions { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.as-quality-actions dl { color: var(--performance-muted); font-size: .72rem; }
.as-quality-actions dl div { padding: .35rem 0; border-top: 1px solid var(--performance-line); }
.as-quality-actions dt { font-weight: 700; }
.as-quality-actions dd { margin: .15rem 0 0; }
.as-quality-freshness { margin: 1rem 0; }
.as-quality-freshness div { display: grid; grid-template-columns: minmax(170px, .8fr) minmax(0, 1.2fr); gap: .8rem; padding: .45rem 0; border-top: 1px solid var(--performance-line); }
.as-quality-freshness dt { color: var(--performance-muted); font-size: .7rem; }
.as-quality-freshness dd { margin: 0; font-size: .78rem; }
.as-quality-admin-note { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1rem; padding: .55rem .75rem; border-top: 1px solid var(--performance-line); color: var(--performance-muted); font-size: .64rem; }
.as-quality-admin-note strong { color: var(--performance-ink); }
.as-performance-profile { padding: clamp(1rem, 2vw, 2rem); background: var(--performance-paper); }
.as-performance-profile > h3 { font-family: Didot, "Bodoni 72", serif; font-weight: 400; }
.as-performance-client-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  align-items: center;
  padding: .85rem 0 1.15rem;
  border-bottom: 1px solid var(--performance-line);
}
.as-performance-client-actions .as-button {
  min-height: 44px;
  border-radius: 0;
}
@media (max-width: 620px) {
  .as-performance-client-actions { display: grid; grid-template-columns: 1fr; }
  .as-performance-client-actions .as-button { width: 100%; justify-content: center; }
}
.as-performance-profile .as-performance-hero-metrics { padding: 1rem; background: var(--performance-ink); color: #fff; }
.as-appointment-relationship { min-width: 0; display: grid; gap: .25rem; }
.as-appointment-relationship > a,
.as-appointment-relationship > strong { width: fit-content; color: var(--performance-ink); font-weight: 750; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.as-appointment-relationship small { color: var(--performance-muted); line-height: 1.45; }
.as-appointment-relationship small a,
.as-technician-history a,
.as-service-visit a { color: var(--performance-accent-dark); font-weight: 750; text-underline-offset: .18em; }
.as-client-relationships { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; padding: 1px; background: var(--performance-line); }
.as-client-relationships > div { min-width: 0; padding: 1rem; background: var(--performance-paper); }
.as-client-relationships h4 { margin: 0 0 .6rem; }
.as-client-relationships p { margin-bottom: 0; color: var(--performance-muted); }
.as-workflow-status { width: fit-content; display: inline-flex; align-items: center; min-height: 28px; padding: .25rem .55rem; border: 1px solid var(--performance-line); background: #eee5d1; color: var(--performance-ink); font-size: .68rem; font-weight: 800; letter-spacing: .02em; }
.as-workflow-status--assigned,
.as-workflow-status--reached { background: #e4eee7; }
.as-workflow-status--do_not_contact,
.as-workflow-status--closed_no_further_action { background: #ece7e2; }
.as-technician-history { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--performance-line); }
.as-technician-history > div { min-width: 0; display: grid; gap: .35rem; padding: .85rem; background: var(--performance-paper); }
.as-technician-history time { color: var(--performance-muted); font-size: .72rem; }
.as-follow-up-workspace { display: grid; gap: 1rem; border-top: 4px solid var(--performance-clay); }
.as-follow-up-plan,
.as-follow-up-attempt-composer form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; padding: 1rem; border: 1px solid var(--performance-line); background: var(--performance-canvas); }
.as-follow-up-plan label,
.as-follow-up-attempt-composer label { min-width: 0; display: grid; gap: .35rem; color: var(--performance-muted); font-size: .68rem; font-weight: 750; letter-spacing: .04em; }
.as-follow-up-plan label.is-wide,
.as-follow-up-attempt-composer label.is-wide { grid-column: 1 / -1; }
.as-follow-up-plan input,
.as-follow-up-plan select,
.as-follow-up-attempt-composer input,
.as-follow-up-attempt-composer select,
.as-follow-up-attempt-composer textarea { width: 100%; min-height: 44px; border: 1px solid var(--performance-line); border-radius: 0; background: var(--performance-paper); color: var(--performance-ink); padding: .65rem .7rem; font: inherit; font-size: .78rem; letter-spacing: 0; }
.as-follow-up-attempt-composer textarea { min-height: 72px; resize: vertical; }
.as-follow-up-plan button,
.as-follow-up-attempt-composer button { width: fit-content; min-height: 44px; }
.as-follow-up-attempt-composer { border: 1px solid var(--performance-line); background: var(--performance-paper); }
.as-follow-up-attempt-composer > summary { padding: .85rem 1rem; color: var(--performance-ink); cursor: pointer; font-weight: 800; }
.as-follow-up-blocked,
.as-follow-up-empty { margin: 0; padding: .8rem 1rem; border-left: 3px solid var(--performance-gold); background: #f6eee4; color: var(--performance-muted); }
.as-follow-up-closed { padding: 1rem; border: 1px solid var(--performance-line); background: #f6eee4; }
.as-follow-up-closed strong { display: block; }
.as-follow-up-closed p { margin-bottom: 0; color: var(--performance-muted); }
.as-form-status { align-self: center; margin: 0; color: var(--performance-muted); font-size: .7rem; letter-spacing: 0; }
.as-follow-up-history { display: grid; gap: .7rem; }
.as-follow-up-history > div:first-child { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; }
.as-follow-up-history h4 { margin: 0; }
.as-follow-up-history span { color: var(--performance-muted); font-size: .7rem; }
.as-attempt-history { display: grid; gap: 1px; background: var(--performance-line); }
.as-attempt-history article { padding: .85rem; background: var(--performance-paper); }
.as-attempt-history article header { display: flex; justify-content: space-between; gap: 1rem; }
.as-attempt-history article time,
.as-attempt-history article small { color: var(--performance-muted); font-size: .68rem; }
.as-attempt-history article p { margin: .4rem 0; }
.as-management-note-list { display: grid; gap: .6rem; padding-top: .7rem; }
.as-management-note-list article { padding: .7rem; border-left: 3px solid var(--performance-line); }
.as-management-note-list time { color: var(--performance-muted); font-size: .68rem; }
.as-service-history-toolbar { display: flex; justify-content: space-between; gap: 1rem; align-items: end; }
.as-service-history-toolbar h3 { margin-bottom: 0; }
.as-service-history { display: grid; gap: .55rem; }
.as-service-visit { border: 1px solid var(--performance-line); background: var(--performance-paper); }
.as-service-visit > summary { display: grid; grid-template-columns: minmax(150px, .75fr) minmax(220px, 1.5fr) minmax(150px, .9fr) auto auto; gap: .8rem; align-items: center; padding: .85rem 1rem; cursor: pointer; list-style: none; }
.as-service-visit > summary::-webkit-details-marker { display: none; }
.as-service-visit > summary time,
.as-service-visit > summary span { color: var(--performance-muted); font-size: .72rem; }
.as-service-visit > summary b { font-weight: 750; }
.as-service-visit > summary em { color: var(--performance-accent-dark); font-size: .68rem; font-style: normal; font-weight: 750; }
.as-service-visit[open] > summary { border-bottom: 1px solid var(--performance-line); background: #f7f1ea; }
.as-service-visit[open] > summary em::before { content: "Hide "; }
.as-service-visit__details { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(200px, .7fr); gap: 1rem; padding: 1rem; }
.as-service-visit__details > dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 0; background: var(--performance-line); }
.as-service-visit__details > dl div { min-width: 0; padding: .7rem; background: var(--performance-paper); }
.as-service-visit__details dt { color: var(--performance-muted); font-size: .62rem; font-weight: 750; text-transform: uppercase; }
.as-service-visit__details dd { margin: .25rem 0 0; overflow-wrap: anywhere; }
.as-service-visit__details h5 { margin: 0 0 .5rem; font-size: .72rem; text-transform: uppercase; }
.as-service-attribution { min-width: 0; }
.as-service-attribution__rows { display: grid; gap: 1px; border: 1px solid var(--performance-line); background: var(--performance-line); }
.as-service-attribution__rows > div { min-width: 0; display: grid; gap: .3rem; padding: .7rem; background: var(--performance-paper); }
.as-service-attribution__rows strong { overflow-wrap: anywhere; line-height: 1.25; }
.as-service-attribution__rows span { color: var(--performance-muted); font-size: .72rem; line-height: 1.35; overflow-wrap: anywhere; }
.as-service-attribution > p { margin: .6rem 0 0; color: var(--performance-muted); font-size: .68rem; line-height: 1.4; }
.as-source-references { grid-column: 1 / -1; color: var(--performance-muted); font-size: .68rem; }
.as-source-references > summary { cursor: pointer; }
.as-source-references dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; }
.as-source-references dd { margin: .2rem 0 0; }
.as-source-references code { overflow-wrap: anywhere; }
.as-profile-loading { min-height: 460px; align-content: start; }
.as-profile-loading__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin-top: 1rem; background: var(--performance-line); }
.as-profile-loading__grid span { min-height: 120px; background: linear-gradient(100deg, #f3eee8 20%, #fffaf4 45%, #f3eee8 70%); background-size: 220% 100%; animation: performance-profile-loading 1.5s ease-in-out infinite; }
@keyframes performance-profile-loading { to { background-position: -220% 0; } }
@media (prefers-reduced-motion: reduce) { .as-profile-loading__grid span { animation: none; } }

/* V23 compact secondary report shell */
.as-performance__active-chips { display: none; }
.as-performance:not(.is-overview) .as-performance__header {
  z-index: 61;
  min-height: 86px;
  display: grid;
  grid-template-columns: minmax(360px, 1fr) auto;
  gap: .55rem 1.25rem;
  align-items: center;
  padding: .65rem clamp(1rem, 3vw, 2rem);
}
.as-performance:not(.is-overview) .as-performance__header-copy {
  min-width: 0;
  display: grid;
  grid-template-columns: max-content minmax(220px, 1fr);
  gap: .2rem .85rem;
  align-items: center;
}
.as-performance:not(.is-overview) .as-performance__header-copy > .as-kicker { display: none; }
.as-performance:not(.is-overview) .as-performance__header h2 { grid-column: 1; grid-row: 1; white-space: nowrap; }
.as-performance:not(.is-overview) #performance-page-deck {
  grid-column: 1 / -1;
  grid-row: 2;
  max-width: 760px;
  margin: 0;
  color: var(--performance-muted);
  font-size: .76rem;
  line-height: 1.3;
}
.as-performance:not(.is-overview) .as-performance__date-control {
  grid-column: 2;
  grid-row: 1;
  position: relative;
  width: max-content;
  max-width: 100%;
  border-left: 1px solid var(--performance-line);
}
.as-performance:not(.is-overview) .as-performance__date-control > summary {
  min-height: 38px;
  display: flex;
  gap: .5rem;
  align-items: center;
  padding: .3rem .7rem;
}
.as-performance:not(.is-overview) .as-performance__date-control > summary::after { content: "Dates"; position: static; font-size: .6rem; }
.as-performance:not(.is-overview) .as-performance__date-control > summary span { font-family: inherit; font-size: .78rem; font-weight: 750; }
.as-performance:not(.is-overview) .as-performance__date-control > summary small { display: none; }
.as-performance:not(.is-overview) .as-performance__date-popover { top: calc(100% + .45rem); right: 0; left: auto; }
.as-performance:not(.is-overview) .as-performance__active-chips {
  grid-column: 1 / -1;
  grid-row: 3;
  display: flex;
  gap: .35rem;
  overflow: hidden;
}
.as-performance__active-chips span {
  flex: 0 0 auto;
  padding: .16rem .45rem;
  border: 1px solid var(--performance-line);
  color: var(--performance-muted);
  font-size: .61rem;
  line-height: 1.2;
}
.as-performance:not(.is-overview) .as-performance__header-actions {
  position: static;
  display: flex;
  gap: .5rem;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: nowrap;
}
.as-performance:not(.is-overview) .as-performance__freshness { max-width: 190px; font-size: .68rem; line-height: 1.25; }
.as-performance:not(.is-overview) .as-performance__filter-toggle {
  min-height: 38px;
  display: inline-flex;
  gap: .45rem;
  align-items: center;
  padding: .45rem .65rem;
  border: 1px solid var(--performance-line);
  background: var(--performance-paper);
  color: var(--performance-ink);
  cursor: pointer;
  font-weight: 750;
}
.as-performance:not(.is-overview) .as-performance__filter-toggle span { display: none; }
.as-performance:not(.is-overview) .as-performance__controls { position: static; display: block; border: 0; }
.as-performance:not(.is-overview) .as-performance__filters {
  position: fixed;
  z-index: 60;
  top: var(--performance-filter-top, 96px);
  right: 1rem;
  left: auto;
  width: min(760px, calc(100vw - 2rem));
  max-height: calc(100vh - var(--performance-filter-top, 96px) - 1rem);
  display: none;
  align-content: start;
  overflow: auto;
  overscroll-behavior: contain;
  border: 1px solid var(--performance-ink);
  box-shadow: 0 20px 44px rgb(29 27 25 / .2);
}
.as-performance:not(.is-overview) .as-performance__employee-group[open] { grid-column: 1 / -1; }
.as-performance:not(.is-overview) .as-performance__employee-group > div {
  position: static;
  width: 100%;
  max-height: none;
  margin-top: .45rem;
  overflow: visible;
  box-shadow: none;
}
.as-performance:not(.is-overview) #performance-employee-group-options,
.as-performance:not(.is-overview) #performance-service-options {
  max-height: min(46vh, 480px);
  overflow: auto;
  overscroll-behavior: contain;
  padding-right: .35rem;
  scrollbar-gutter: stable;
}
.as-performance:not(.is-overview) .as-performance__apply-filters { grid-column: 1 / -1; width: 100%; min-height: 48px; }
.as-performance:not(.is-overview) .as-performance__date-popover {
  position: fixed;
  z-index: 72;
  top: var(--performance-date-top, 96px);
  right: auto;
  left: var(--performance-date-left, 1rem);
  width: var(--performance-date-width, min(720px, calc(100vw - 2rem)));
  max-height: calc(100vh - var(--performance-date-top, 96px) - 1rem);
  overflow: auto;
}
.as-performance:not(.is-overview) .as-performance__filters.is-mobile-open { display: grid; }
.as-performance:not(.is-overview) .as-performance__notice { margin-block: .55rem 0; }
.as-performance:not(.is-overview) .as-performance__content { padding-top: clamp(.8rem, 2vw, 1.5rem); }

@media (max-width: 1100px) {
  .as-performance__tabs { grid-template-columns: repeat(5, auto); }
  .as-performance__filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .as-performance-story-grid { grid-template-columns: 1fr; }
  .as-priority-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .as-quality-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .as-confidence-meter { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .as-technician-capacity-totals > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .as-performance-table th:nth-child(n+10):not(:last-child),
  .as-performance-table td:nth-child(n+10):not(:last-child) { display: none; }
  .as-performance:not(.is-overview) .as-performance__header { grid-template-columns: 1fr; }
  .as-performance:not(.is-overview) .as-performance__header-actions { justify-content: flex-start; }
}
@media (max-width: 820px) {
  .as-performance { padding: 0; }
  .as-performance__header { display: grid; padding-top: 4.5rem; }
  .as-performance.is-overview .as-performance__header { min-height: 175px; }
  .as-performance__header-actions { left: 1rem; right: 1rem; justify-content: space-between; }
  .as-performance__controls { grid-template-columns: 1fr; }
  .as-performance__filter-toggle { min-height: 52px; display: flex; justify-content: space-between; align-items: center; padding: .75rem 1rem; border: 0; border-bottom: 1px solid var(--performance-line); background: var(--performance-paper); color: var(--performance-ink); font-weight: 750; text-align: left; }
  .as-performance__filter-toggle span { color: var(--performance-muted); font-size: .67rem; font-weight: 500; }
  .as-performance__filters { position: fixed; z-index: 60; inset: auto 0 0; max-height: min(78vh, 650px); display: none; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: auto; padding: 1rem; border-top: 1px solid var(--performance-ink); box-shadow: 0 -18px 40px rgb(29 27 25 / .2); }
  .as-performance__filters.is-mobile-open { display: grid; }
  .as-performance__tabs { display: none; }
  .as-performance__section-select { display: grid; gap: .3rem; padding: .85rem 1rem; border-bottom: 1px solid var(--performance-line); background: var(--performance-paper); color: var(--performance-muted); font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
  .as-performance__section-select select { min-height: 44px; border: 0; border-bottom: 1px solid var(--performance-line); background: transparent; font-size: 1rem; }
  .as-tech-viz-header { display: grid; }
  .as-tech-viz-arrows { justify-content: space-between; }
  .as-tech-viz-tabs { scrollbar-width: none; }
  .as-performance-hero-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .as-performance-hero-metric:nth-child(3) { padding-left: 0; border-left: 0; }
  .as-frequency { grid-template-columns: 1fr; }
  .as-followup-actions { grid-template-columns: repeat(6, minmax(125px, 1fr)); }
  .as-client-journey { grid-template-columns: repeat(5, minmax(150px, 1fr)); overflow-x: auto; }
  .as-priority-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .as-performance:not(.is-overview) .as-performance__header {
    position: sticky;
    top: 55px;
    min-height: 0;
    display: block;
    padding: .8rem 1rem .9rem;
    box-shadow: none;
  }
  .as-performance:not(.is-overview) .as-performance__header-copy { display: grid; grid-template-columns: 1fr; gap: .45rem; }
  .as-performance:not(.is-overview) .as-performance__header h2,
  .as-performance:not(.is-overview) .as-performance__date-control,
  .as-performance:not(.is-overview) #performance-page-deck,
  .as-performance:not(.is-overview) .as-performance__active-chips { grid-column: 1; grid-row: auto; }
  .as-performance:not(.is-overview) .as-performance__header h2 { font-size: 1.85rem; line-height: 1; }
  .as-performance:not(.is-overview) .as-performance__date-control { width: 100%; border: 0; }
  .as-performance:not(.is-overview) .as-performance__date-control > summary { min-height: 34px; justify-content: flex-start; padding: .25rem 0; }
  .as-performance:not(.is-overview) .as-performance__date-popover { position: fixed; top: 64px; right: 1rem; left: 1rem; width: auto; max-height: calc(100vh - 80px); overflow: auto; }
  .as-performance:not(.is-overview) #performance-page-deck { max-width: none; font-size: .8rem; }
  .as-performance:not(.is-overview) .as-performance__active-chips { overflow-x: auto; padding-bottom: .1rem; }
  .as-performance:not(.is-overview) .as-performance__header-actions { margin-top: .55rem; justify-content: space-between; }
  .as-performance:not(.is-overview) .as-performance__header-actions .as-performance__filter-toggle { display: none; }
  .as-performance:not(.is-overview) .as-performance__freshness { max-width: 170px; }
  .as-performance:not(.is-overview) .as-performance__controls { min-height: 0; }
  .as-performance:not(.is-overview) .as-performance__filters { top: auto; right: 0; width: 100%; }
  .as-performance:not(.is-overview) .as-performance__content > .as-performance__filter-toggle {
    width: 100%;
    min-height: 48px;
    display: flex;
    justify-content: space-between;
    padding: .7rem .85rem;
  }
  .as-performance:not(.is-overview) .as-performance__content > .as-performance__filter-toggle span { display: block; color: var(--performance-muted); font-size: .67rem; font-weight: 500; }
}
@media (max-width: 640px) {
  .as-performance__header { padding: 4.3rem 1rem 1.3rem; }
  .as-performance__header .as-performance__freshness { max-width: 180px; }
  .as-performance__content { padding: .8rem; }
  .as-performance__filters { grid-template-columns: 1fr; }
  #performance-employee-group-options { grid-template-columns: 1fr; }
  .as-performance__date-popover { grid-template-columns: 1fr; }
  .as-performance-executive { padding: 1.35rem; }
  .as-performance-hero-metrics { grid-template-columns: 1fr; border-top: 0; }
  .as-performance-executive .as-performance-hero-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .as-performance-executive .as-performance-hero-metric { padding: .75rem .55rem .35rem; }
  .as-performance-hero-metric { padding: 1rem 0; border-top: 1px solid rgb(255 255 255 / .25); }
  .as-performance-hero-metric + .as-performance-hero-metric,
  .as-performance-hero-metric:nth-child(3) { padding-left: 0; border-left: 0; }
  .as-performance-section { padding: 1rem; }
  .as-performance-section__header { display: grid; }
  .as-comparison-bars > div { grid-template-columns: minmax(95px, .8fr) minmax(90px, 1fr) auto; }
  .as-client-clock,
  .as-health-ribbon { grid-template-columns: repeat(8, minmax(118px, 1fr)); }
  .as-priority-cards,
  .as-quality-actions { grid-template-columns: 1fr; }
  .as-appointment-pattern { grid-template-columns: 1fr; gap: .35rem; }
  .as-booking-pattern-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .as-booking-pattern-method { grid-template-columns: 1fr; gap: .35rem; }
  .as-schedule-scope { grid-template-columns: 1fr; }
  .as-schedule-summary { grid-template-columns: 1fr; }
  .as-technician-capacity-totals > div { grid-template-columns: 1fr; }
  .as-frequency > div:last-of-type { grid-template-columns: repeat(2, 1fr); }
  .as-performance-conversion dl,
  .as-performance-profile-meta,
  .as-daily-timeline dl,
  .as-confidence-meter { grid-template-columns: 1fr; }
  .as-tech-quadrant { min-height: 300px; }
  .as-tech-viz-slide { padding: 1rem; }
  .as-tech-return-mix,
  .as-tech-client-reach,
  .as-tech-work-mix,
  .as-tech-retention-grid,
  .as-tech-rankings { grid-template-columns: 1fr; }
  .as-tech-work-mix dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .as-tech-retention-grid dl { grid-template-columns: 1fr; }
  .as-tech-rankings li a { grid-template-columns: minmax(90px, 1fr) minmax(60px, .8fr) auto; }
  .as-service-bars button,
  .as-room-pulse article { grid-template-columns: minmax(110px, 1fr) 1.25fr auto; }
  .as-performance-table-wrap { overflow: visible; border: 0; background: transparent; }
  .as-table-tools { flex-wrap: wrap; }
  .as-table-tools > details { margin-left: 0; }
  .as-table-tools nav { width: 100%; justify-content: space-between; }
  .as-performance-table { display: block; width: 100%; min-width: 0; background: transparent; }
  .as-performance-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .as-performance-table tbody { display: grid; gap: .8rem; }
  .as-performance-table tr { display: grid; grid-template-columns: 1fr; padding: .45rem .85rem; border: 1px solid var(--performance-line); background: var(--performance-paper); }
  .as-performance-table td,
  .as-performance-table td:first-child,
  .as-performance-table .as-action-cell { position: static; display: grid !important; grid-template-columns: minmax(95px, .72fr) minmax(0, 1.25fr); gap: .8rem; min-width: 0; max-width: none; padding: .55rem 0; border-bottom: 1px solid #ebe4db; background: transparent; box-shadow: none; }
  .as-performance-table td::before { content: attr(data-label); color: var(--performance-muted); font-size: .61rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
  .as-performance-table td:first-child { font-size: 1rem; }
  .as-performance-table td:last-child { border-bottom: 0; }
}

@media (max-width: 1100px) {
  .as-technician-history { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .as-service-visit > summary { grid-template-columns: minmax(140px, .8fr) minmax(200px, 1.4fr) minmax(150px, 1fr) auto; }
  .as-service-visit > summary em { grid-column: 2 / -1; }
  .as-service-visit__details { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
  .as-client-relationships { grid-template-columns: 1fr; }
  .as-follow-up-plan,
  .as-follow-up-attempt-composer form { grid-template-columns: 1fr; }
  .as-follow-up-plan label.is-wide,
  .as-follow-up-attempt-composer label.is-wide { grid-column: auto; }
  .as-profile-loading__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .as-technician-history { grid-template-columns: 1fr; }
  .as-service-history-toolbar { align-items: start; flex-direction: column; }
  .as-service-visit > summary { grid-template-columns: 1fr auto; }
  .as-service-visit > summary strong,
  .as-service-visit > summary span,
  .as-service-visit > summary em { grid-column: 1 / -1; }
  .as-service-visit__details > dl,
  .as-source-references dl { grid-template-columns: 1fr; }
  .as-attempt-history article header { display: grid; }
  .as-profile-loading__grid { grid-template-columns: 1fr; }
}

/* Simplified, single-layer Performance controls. */
.as-performance__filter-toggle {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .65rem 1rem;
  border: 0;
  background: var(--performance-paper);
  color: var(--performance-ink);
  cursor: pointer;
  font-weight: 750;
}
.as-performance__filter-toggle span { color: var(--performance-muted); font-size: .67rem; font-weight: 500; }
.as-performance__filters,
.as-performance:not(.is-overview) .as-performance__filters {
  position: fixed;
  z-index: 80;
  top: 1rem;
  right: 1rem;
  bottom: 1rem;
  left: auto;
  width: min(720px, calc(100vw - 2rem));
  max-height: none;
  display: none;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: start;
  gap: .9rem;
  overflow: auto;
  overscroll-behavior: contain;
  padding: 0 1rem 0;
  border: 1px solid var(--performance-ink);
  background: var(--performance-paper);
  box-shadow: 0 24px 64px rgb(29 27 25 / .24);
}
.as-performance__filters.is-mobile-open,
.as-performance:not(.is-overview) .as-performance__filters.is-mobile-open { display: grid; }
.as-performance__filter-header {
  position: sticky;
  z-index: 4;
  top: 0;
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 0 -1rem;
  padding: 1rem;
  border-bottom: 1px solid var(--performance-line);
  background: var(--performance-paper);
}
.as-performance__filter-header .as-kicker { margin: 0 0 .2rem; }
.as-performance__filter-header h3 { margin: 0; font-size: 1rem; }
.as-performance__filter-header button {
  min-height: 40px;
  padding: .45rem .7rem;
  border: 1px solid var(--performance-line);
  background: transparent;
  color: var(--performance-ink);
  cursor: pointer;
}
.as-performance__employee-group,
.as-performance:not(.is-overview) .as-performance__employee-group[open] { grid-column: auto; }
.as-performance__employee-group > summary { min-height: 52px; padding: .55rem .2rem; }
.as-performance__employee-group > div,
.as-performance:not(.is-overview) .as-performance__employee-group > div {
  position: static;
  width: 100%;
  max-height: none;
  margin-top: .45rem;
  overflow: visible;
  padding: 0;
  border: 0;
  box-shadow: none;
}
#performance-employee-group-options,
#performance-service-options,
.as-performance:not(.is-overview) #performance-employee-group-options,
.as-performance:not(.is-overview) #performance-service-options {
  max-height: 240px;
  overflow: auto;
  overscroll-behavior: contain;
  padding-right: .35rem;
  scrollbar-gutter: stable;
}
.as-performance__search { grid-column: 1 / -1; }
.as-performance__filter-actions {
  position: sticky;
  z-index: 4;
  bottom: 0;
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(110px, .45fr) minmax(180px, 1fr);
  gap: .6rem;
  margin: .2rem -1rem 0;
  padding: .9rem 1rem 1rem;
  border-top: 1px solid var(--performance-line);
  background: var(--performance-paper);
}
.as-performance__apply-filters,
.as-performance:not(.is-overview) .as-performance__apply-filters {
  position: static;
  grid-column: auto;
  width: 100%;
  min-height: 46px;
  box-shadow: none;
}
.as-performance__date-control[open]::before {
  content: "";
  position: fixed;
  z-index: 74;
  inset: 0;
  background: rgb(29 27 25 / .2);
}
#performance-date-control:not([open]) > .as-performance__date-popover { display: none; }
.as-performance__date-popover,
.as-performance:not(.is-overview) .as-performance__date-popover {
  position: fixed;
  z-index: 75;
  top: 5rem;
  right: 1rem;
  left: auto;
  width: min(640px, calc(100vw - 2rem));
  max-height: calc(100vh - 6rem);
  overflow: auto;
}

@media (max-width: 640px) {
  .as-performance__filters,
  .as-performance:not(.is-overview) .as-performance__filters { top: auto; right: 0; bottom: 0; left: 0; width: 100%; max-height: 82dvh; grid-template-columns: 1fr; border-width: 1px 0 0; }
  .as-performance__employee-group,
  .as-performance:not(.is-overview) .as-performance__employee-group[open],
  .as-performance__search { grid-column: 1; }
  .as-performance__date-popover,
  .as-performance:not(.is-overview) .as-performance__date-popover { top: auto; right: 0; bottom: 0; left: 0; width: 100%; max-height: 82dvh; padding: .85rem; border-width: 1px 0 0; }
}

.as-performance__date-header {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: .65rem;
  border-bottom: 1px solid var(--performance-line);
}
.as-performance__date-header .as-kicker { margin: 0 0 .15rem; }
.as-performance__date-header h3 { margin: 0; font-size: 1rem; }
.as-performance__date-header button,
.as-performance__filter-header button {
  width: 42px;
  min-width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  padding: 0;
  border-radius: 50%;
  font-size: 1.45rem;
  line-height: 1;
}
#performance-apply-date { grid-column: 1 / -1; min-height: 46px; }
.as-health-ribbon-guide {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 0 0 .55rem;
  color: var(--performance-muted);
  font-size: .72rem;
}
.as-health-ribbon-guide button {
  border: 0;
  border-bottom: 1px solid currentColor;
  background: transparent;
  color: var(--performance-clay);
  padding: .2rem 0;
}
.as-health-ribbon button { text-align: left; }
.as-health-ribbon button small { display: block; margin-top: .55rem; color: var(--performance-clay); font-size: .62rem; font-weight: 750; }
.as-health-ribbon button.is-active small { color: #fff; }
.as-performance__action-status {
  position: fixed;
  z-index: 100;
  right: 1rem;
  bottom: 1rem;
  min-width: 140px;
  padding: .7rem .9rem .7rem 2.35rem;
  border: 1px solid var(--performance-ink);
  background: var(--performance-ink);
  color: #fff;
  box-shadow: 0 14px 32px rgb(29 27 25 / .22);
  font-size: .72rem;
  font-weight: 750;
}
.as-performance__action-status::before,
.as-performance .is-working::after {
  content: "";
  position: absolute;
  width: 13px;
  height: 13px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: performance-spin .65s linear infinite;
}
.as-performance__action-status::before { top: 50%; left: .85rem; animation-name: performance-status-spin; transform: translateY(-50%); }
.as-performance__action-status.is-complete::before { content: "✓"; width: auto; height: auto; border: 0; animation: none; }
.as-performance .is-working { position: relative; color: transparent !important; }
.as-performance .is-working::after { top: 50%; left: 50%; color: var(--performance-clay); animation-name: performance-button-spin; transform: translate(-50%, -50%); }
.as-performance.is-updating .as-performance__content { opacity: .58; transition: opacity .12s ease; }
@keyframes performance-spin { to { transform: rotate(360deg); } }
@keyframes performance-status-spin { to { transform: translateY(-50%) rotate(360deg); } }
@keyframes performance-button-spin { to { transform: translate(-50%, -50%) rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .as-performance__action-status::before,
  .as-performance .is-working::after { animation: none; }
  .as-performance.is-updating .as-performance__content { transition: none; }
}

/* Unified Performance shell and explicit drill-down context. */
.as-performance .as-performance__header,
.as-performance.is-overview .as-performance__header,
.as-performance:not(.is-overview) .as-performance__header {
  position: relative;
  top: auto;
  z-index: 14;
  min-height: 112px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem 1.5rem;
  align-items: end;
  padding: 1.1rem clamp(1rem, 3vw, 2.25rem);
  box-shadow: none;
}
.as-performance .as-performance__header-copy,
.as-performance:not(.is-overview) .as-performance__header-copy {
  min-width: 0;
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  gap: .25rem 1rem;
  align-items: end;
}
.as-performance .as-performance__header-copy > .as-kicker,
.as-performance:not(.is-overview) .as-performance__header-copy > .as-kicker {
  display: block;
  grid-column: 1 / -1;
  margin: 0;
  font-size: .61rem;
}
.as-performance .as-performance__header h2,
.as-performance.is-overview .as-performance__header h2,
.as-performance:not(.is-overview) .as-performance__header h2 {
  grid-column: 1;
  grid-row: 2;
  margin: 0;
  font-size: clamp(2rem, 3vw, 2.85rem);
  line-height: .96;
  white-space: nowrap;
}
.as-performance #performance-page-deck,
.as-performance:not(.is-overview) #performance-page-deck {
  grid-column: 2;
  grid-row: 2;
  max-width: 660px;
  margin: 0 0 .12rem;
  font-size: .82rem;
  line-height: 1.4;
}
.as-performance .as-performance__active-chips,
.as-performance:not(.is-overview) .as-performance__active-chips {
  grid-column: 1 / -1;
  grid-row: 3;
  display: flex;
  gap: .35rem;
  overflow-x: auto;
}
.as-performance .as-performance__header-actions,
.as-performance:not(.is-overview) .as-performance__header-actions {
  position: static;
  display: flex;
  gap: .55rem;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: nowrap;
}
.as-performance .as-performance__freshness,
.as-performance:not(.is-overview) .as-performance__freshness {
  position: relative;
  width: 2.15rem;
  height: 2.15rem;
  display: inline-grid;
  place-items: center;
  flex: 0 0 2.15rem;
  border: 1px solid var(--performance-line);
  border-radius: 50%;
  padding: 0;
  background: var(--performance-paper);
  color: var(--performance-ink);
  font: 800 .78rem/1 var(--performance-sans);
  text-align: center;
}
.as-performance .as-performance__freshness::after,
.as-performance:not(.is-overview) .as-performance__freshness::after {
  content: attr(data-tooltip);
  position: absolute;
  z-index: 80;
  top: calc(100% + .55rem);
  right: 0;
  width: min(330px, calc(100vw - 2rem));
  border: 1px solid var(--performance-line);
  padding: .7rem .8rem;
  background: var(--performance-ink);
  box-shadow: 0 12px 30px rgb(29 27 25 / .18);
  color: var(--performance-paper);
  font: 600 .72rem/1.45 var(--performance-sans);
  text-align: left;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-4px);
  transition: opacity 140ms ease, transform 140ms ease;
}
.as-performance .as-performance__freshness:is(:hover, :focus-visible)::after,
.as-performance:not(.is-overview) .as-performance__freshness:is(:hover, :focus-visible)::after {
  opacity: 1;
  transform: translateY(0);
}
.as-performance .as-performance__controls,
.as-performance:not(.is-overview) .as-performance__controls {
  position: relative;
  top: auto;
  z-index: 13;
  min-height: 60px;
  display: grid;
  grid-template-columns: minmax(285px, 1fr) minmax(220px, .55fr);
  border-bottom: 1px solid var(--performance-line);
}
.as-performance .as-performance__date-control,
.as-performance:not(.is-overview) .as-performance__date-control {
  position: relative;
  grid-column: 1;
  grid-row: 1;
  width: auto;
  max-width: none;
  border: 0;
}
.as-performance .as-performance__date-control > summary,
.as-performance:not(.is-overview) .as-performance__date-control > summary {
  min-height: 60px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-content: center;
  gap: .12rem 1rem;
  padding: .65rem 1.1rem;
}
.as-performance .as-performance__date-control > summary::after,
.as-performance:not(.is-overview) .as-performance__date-control > summary::after {
  content: "Dates";
  position: static;
  grid-column: 2;
  grid-row: 1 / 3;
  align-self: center;
  font-size: .62rem;
}
.as-performance .as-performance__date-control > summary span,
.as-performance:not(.is-overview) .as-performance__date-control > summary span { font-family: inherit; font-size: .88rem; font-weight: 750; }
.as-performance .as-performance__date-control > summary small,
.as-performance:not(.is-overview) .as-performance__date-control > summary small { display: block; font-size: .67rem; }
.as-performance .as-performance__filter-toggle,
.as-performance:not(.is-overview) .as-performance__filter-toggle {
  grid-column: 2;
  grid-row: 1;
  min-height: 60px;
  display: flex;
  padding: .7rem 1.1rem;
  border: 0;
  border-left: 1px solid var(--performance-line);
}
.as-performance .as-performance__filter-toggle span,
.as-performance:not(.is-overview) .as-performance__filter-toggle span { display: block; }
.as-performance .as-performance__tabs {
  display: flex;
  align-items: center;
  gap: .25rem;
  padding: .55rem .8rem;
  overflow-x: auto;
  scrollbar-width: thin;
}
.as-performance .as-performance__tabs > div { display: contents; }
.as-performance .as-performance__tabs > div > span { display: none; }
.as-performance .as-performance__tabs button {
  flex: 0 0 auto;
  min-height: 38px;
  padding: .55rem .8rem;
  border-radius: 999px;
  color: var(--performance-muted);
}
.as-performance .as-performance__tabs button.is-active { background: var(--performance-ink); color: #fff; }
.as-performance .as-performance__tabs button.is-active::after { display: none; }
.as-performance__content > .as-performance-section__header h3 { font-size: clamp(1.55rem, 2.2vw, 2.3rem); }
.as-performance-view-context {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .85rem 1rem;
  border: 1px solid var(--performance-clay);
  background: rgb(168 111 92 / .08);
  scroll-margin-top: 1rem;
}
.as-performance-view-context .as-kicker { margin: 0 0 .2rem; }
.as-performance-view-context h3 { margin: 0; font-size: 1rem; }
.as-performance-view-context p:not(.as-kicker) { margin: .2rem 0 0; color: var(--performance-muted); font-size: .75rem; }
.as-performance-view-context button { padding: .55rem .7rem; border: 1px solid var(--performance-line); background: var(--performance-paper); color: var(--performance-ink); cursor: pointer; white-space: nowrap; }
.as-performance .as-performance__filters,
.as-performance:not(.is-overview) .as-performance__filters {
  top: 50%;
  right: 50%;
  bottom: auto;
  left: auto;
  width: min(680px, calc(100vw - 2rem));
  max-height: min(70dvh, 600px);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  transform: translate(50%, -50%);
}
.as-performance .as-performance__employee-group[open],
.as-performance:not(.is-overview) .as-performance__employee-group[open] { grid-column: auto; }
.as-performance #performance-employee-group-options,
.as-performance #performance-service-options,
.as-performance:not(.is-overview) #performance-employee-group-options,
.as-performance:not(.is-overview) #performance-service-options { max-height: 190px; }
.as-performance .as-performance__date-popover,
.as-performance:not(.is-overview) .as-performance__date-popover {
  position: fixed;
  top: var(--performance-date-top, 96px);
  right: auto;
  left: var(--performance-date-left, 1rem);
  width: var(--performance-date-width, min(620px, calc(100vw - 2rem)));
  max-width: calc(100vw - 2rem);
  box-sizing: border-box;
  max-height: min(70dvh, 560px);
  overscroll-behavior: contain;
}

.as-performance__tabs button,
.as-executive-period-tabs button,
.as-health-ribbon button,
.as-client-clock button,
.as-client-journey button,
.as-followup-actions button,
.as-frequency button,
.as-service-bars button,
.as-priority-cards article,
.as-performance-table tbody tr,
.as-performance-text-action,
.as-performance-row-action,
.as-performance__filter-toggle,
.as-performance__date-control > summary,
.as-performance__freshness,
.as-performance__export summary,
.as-table-tools button,
.as-performance-view-context button,
.as-performance-link { transition: transform 160ms ease, color 160ms ease, background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease; }

/* Resource-library editorial pairing, scoped to protected Performance only. */
.as-performance :is(
  .as-performance__header h2,
  .as-performance-executive > h2,
  .as-performance-hero-metric strong,
  .as-performance-section__header h3,
  .as-frequency h3,
  .as-conversion-ring strong,
  .as-client-journey strong,
  .as-client-clock strong,
  .as-health-ribbon strong,
  .as-capacity-summary strong,
  .as-priority-cards article > strong,
  .as-quality-actions article > strong,
  .as-followup-actions button strong,
  .as-schedule-summary strong,
  .as-confidence-meter strong,
  .as-performance-profile > h3,
  .as-quality-review > header h3
) { font-family: var(--performance-display); }
.as-performance-executive > h2 em {
  color: #e3aea1;
  font-family: var(--performance-display);
  font-style: italic;
  font-weight: 500;
}
.as-performance :is(.as-kicker, .as-performance-hero-metric span, .as-performance-table th) {
  font-family: var(--performance-sans);
  letter-spacing: .14em;
}
@media (hover: hover) {
  .as-performance__tabs button:hover,
  .as-executive-period-tabs button:hover,
  .as-health-ribbon button:hover,
  .as-client-clock button:hover,
  .as-client-journey button:hover,
  .as-followup-actions button:hover,
  .as-frequency button:hover,
  .as-service-bars button:hover,
  .as-performance__filter-toggle:hover,
  .as-performance__date-control > summary:hover,
  .as-performance__freshness:hover,
  .as-performance__export summary:hover,
  .as-table-tools button:not(:disabled):hover,
  .as-performance-view-context button:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgb(29 27 25 / .1); }
  .as-priority-cards article:hover,
  .as-priority-cards article:focus-within { transform: translateY(-4px); box-shadow: 0 20px 44px rgb(58 39 29 / .12); }
  .as-performance-table tbody tr:has(a:hover),
  .as-performance-table tbody tr:focus-within { background: #fbf2ea; box-shadow: inset 3px 0 var(--performance-clay); }
  .as-performance-text-action:hover,
  .as-performance-row-action:hover,
  .as-performance-link:hover { color: var(--performance-accent-dark); text-decoration-thickness: .13em; transform: translateY(-1px); }
}
.as-performance :is(button, a, summary, select):focus-visible { outline: 3px solid var(--performance-clay); outline-offset: 3px; }

@media (max-width: 720px) {
  .as-performance-executive__periods { align-items: stretch; flex-direction: column; }
  .as-performance-filter-scope { align-items: flex-start; flex-direction: column; }
  .as-performance-filter-scope span { text-align: left; }
  .as-executive-period-tabs { width: 100%; }
  .as-executive-period-tabs button { padding: .62rem .48rem; }
  .as-executive-period-tabs button span { font-size: .64rem; }
  .as-executive-period-tabs button small { font-size: .55rem; }
}

/* Services keeps view choice, ranking detail, and report filters in one compact workspace. */
.as-performance.is-services .as-performance__controls { margin-top: .6rem; border-top: 1px solid var(--performance-line); }
.as-services-toolbar {
  min-height: 54px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  border-bottom: 1px solid var(--performance-line);
}
.as-services-toolbar .as-mode-switch,
.as-services-toolbar .as-ranking-switch { padding: .45rem 0; border-bottom: 0; }
.as-services-toolbar .as-ranking-switch { margin-left: auto; }

/* Data Confidence findings open a named, actionable record review in place. */
.as-quality-actions article { display: flex; flex-direction: column; }
.as-quality-actions article.is-selected { box-shadow: inset 0 4px var(--performance-clay); background: #fff8f3; }
.as-quality-actions article > p { flex: 1 1 auto; margin: 0 0 .85rem; color: var(--performance-muted); font-size: .76rem; line-height: 1.45; }
.as-quality-actions article > .as-performance-text-action,
.as-quality-clear { width: fit-content; margin-top: .7rem; }
.as-quality-clear { color: var(--performance-muted); font-size: .72rem; }
.as-quality-review {
  margin-top: 1rem;
  border: 1px solid var(--performance-clay);
  background: var(--performance-paper);
  scroll-margin-top: 1rem;
  box-shadow: 0 18px 40px rgb(29 27 25 / .08);
}
.as-quality-review > header { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; padding: 1.1rem; border-bottom: 1px solid var(--performance-line); }
.as-quality-review > header h3 { margin: .15rem 0; font-family: Didot, "Bodoni 72", serif; font-size: clamp(1.6rem, 3vw, 2.35rem); font-weight: 400; }
.as-quality-review > header p:last-child { margin: .25rem 0 0; color: var(--performance-muted); font-size: .76rem; }
.as-quality-review > header button { width: 42px; height: 42px; flex: 0 0 auto; border: 1px solid var(--performance-line); border-radius: 50%; background: var(--performance-paper); color: var(--performance-ink); cursor: pointer; font-size: 1.35rem; }
.as-quality-review__guidance { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--performance-line); }
.as-quality-review__guidance article { padding: 1rem 1.1rem; background: var(--performance-paper); }
.as-quality-review__guidance article > span { color: var(--performance-accent-dark); font-size: .67rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.as-quality-review__guidance p { color: var(--performance-ink); font-size: .82rem; line-height: 1.55; }
.as-quality-review__guidance small { display: block; color: var(--performance-muted); font-size: .7rem; line-height: 1.45; }
.as-quality-review__guidance dl { margin-bottom: 0; }
.as-quality-review__guidance dl div { display: grid; grid-template-columns: minmax(120px, .55fr) minmax(0, 1.45fr); gap: .7rem; padding: .4rem 0; border-top: 1px solid var(--performance-line); }
.as-quality-review__guidance dt { color: var(--performance-muted); font-size: .65rem; font-weight: 750; text-transform: uppercase; }
.as-quality-review__guidance dd { margin: 0; font-size: .75rem; }
.as-quality-review__count { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem 1.1rem; border-top: 1px solid var(--performance-line); color: var(--performance-muted); font-size: .7rem; }
.as-quality-review__count strong { color: var(--performance-ink); }
.as-quality-review__table code { font-size: .68rem; white-space: nowrap; }

@media (max-width: 820px) {
  .as-performance .as-performance__header,
  .as-performance.is-overview .as-performance__header,
  .as-performance:not(.is-overview) .as-performance__header {
    top: auto;
    min-height: 0;
    grid-template-columns: 1fr;
    align-items: start;
    padding: 1rem;
  }
  .as-performance .as-performance__header-copy,
  .as-performance:not(.is-overview) .as-performance__header-copy { grid-template-columns: 1fr; }
  .as-performance .as-performance__header h2,
  .as-performance.is-overview .as-performance__header h2,
  .as-performance:not(.is-overview) .as-performance__header h2 { grid-column: 1; grid-row: 2; font-size: 2rem; }
  .as-performance #performance-page-deck,
  .as-performance:not(.is-overview) #performance-page-deck { grid-column: 1; grid-row: 3; margin: 0; }
  .as-performance .as-performance__active-chips,
  .as-performance:not(.is-overview) .as-performance__active-chips { grid-column: 1; grid-row: 4; }
  .as-performance .as-performance__header-actions,
  .as-performance:not(.is-overview) .as-performance__header-actions { width: 100%; justify-content: space-between; }
  .as-performance .as-performance__controls,
  .as-performance:not(.is-overview) .as-performance__controls { grid-template-columns: minmax(0, 1.35fr) minmax(115px, .65fr); }
  .as-performance .as-performance__tabs { display: none; }
  .as-performance .as-performance__section-select { display: grid; }
  .as-performance .as-performance__filters,
  .as-performance:not(.is-overview) .as-performance__filters {
    top: auto;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    max-height: min(64dvh, 520px);
    grid-template-columns: 1fr;
    transform: none;
  }
  .as-performance .as-performance__employee-group,
  .as-performance:not(.is-overview) .as-performance__employee-group[open],
  .as-performance .as-performance__search { grid-column: 1; }
  .as-performance #performance-employee-group-options,
  .as-performance #performance-service-options,
  .as-performance:not(.is-overview) #performance-employee-group-options,
  .as-performance:not(.is-overview) #performance-service-options { max-height: 170px; }
  .as-performance .as-performance__date-popover,
  .as-performance:not(.is-overview) .as-performance__date-popover { top: auto; right: 0; bottom: 0; left: 0; width: 100%; max-height: min(64dvh, 520px); }
  .as-performance:not(.is-overview) .as-performance__content > .as-performance__filter-toggle { display: none; }
  .as-services-toolbar { align-items: stretch; flex-direction: column; gap: 0; }
  .as-services-toolbar .as-ranking-switch { width: 100%; margin-left: 0; overflow-x: auto; }
  .as-quality-review__guidance { grid-template-columns: 1fr; }
  .as-quality-review__count { align-items: flex-start; flex-direction: column; gap: .2rem; }
}
@media (max-width: 520px) {
  #performance-service-family-options { grid-template-columns: 1fr; }
  .as-performance .as-performance__date-control > summary,
  .as-performance:not(.is-overview) .as-performance__date-control > summary { padding-inline: .8rem; }
  .as-performance .as-performance__date-control > summary small,
  .as-performance:not(.is-overview) .as-performance__date-control > summary small,
  .as-performance .as-performance__filter-toggle span,
  .as-performance:not(.is-overview) .as-performance__filter-toggle span { display: none; }
  .as-performance-view-context { align-items: flex-start; flex-direction: column; }
  .as-performance-view-context button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .as-performance__tabs button,
  .as-health-ribbon button,
  .as-client-clock button,
  .as-client-journey button,
  .as-followup-actions button,
  .as-frequency button,
  .as-service-bars button,
  .as-priority-cards article,
  .as-performance-table tbody tr,
  .as-performance-text-action,
  .as-performance-row-action,
  .as-performance__filter-toggle,
  .as-performance__date-control > summary,
  .as-performance__freshness,
  .as-performance__export summary,
  .as-table-tools button,
  .as-performance-view-context button,
  .as-performance-link { transition: none; }
}

/* All Six 2026 editorial convention.
   Portal surfaces now inherit the same square geometry, restrained palette,
   display/body type pairing, and rule-based section rhythm as the Education
   pages and current public site. Circular geometry is reserved for true
   indicators (progress dots, checkboxes, and avatars), not containers. */
body.as-mode-client,
body.as-mode-staff {
  --as-portal-ink: #171714;
  --as-portal-paper: #f4efe7;
  --as-portal-surface: #f4efe7;
  --as-portal-soft: #ece2d5;
  --as-portal-wine: #735542;
  --as-portal-rose: #b58f7a;
  --as-portal-line: rgba(23, 23, 20, 0.18);
  --as-portal-muted: #68645d;
  --as-portal-shadow: none;
  --as-current-site-font: "All Six Body", Manrope, "Helvetica Neue", Arial, sans-serif;
  --as-display-font: "All Six Display", "Cormorant Garamond", Georgia, serif;
  background: var(--as-portal-paper);
  color: var(--as-portal-ink);
  font-family: var(--as-current-site-font);
  letter-spacing: 0.01em;
}

body.as-mode-client :is(h1, h2, h3, h4),
body.as-mode-staff :is(h1, h2, h3, h4),
body.as-mode-client .as-client-order-card__header strong,
body.as-mode-client .as-client-order-card__total,
body.as-mode-client .as-client-payment-methods__list article span {
  font-family: var(--as-display-font) !important;
  font-weight: 500;
  letter-spacing: -0.025em;
}

body.as-mode-client .as-kicker,
body.as-mode-staff .as-kicker {
  color: var(--as-portal-muted);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
}

body.as-mode-client > .as-header {
  border-color: var(--as-portal-line);
  background: rgba(244, 239, 231, 0.98);
  box-shadow: none;
  backdrop-filter: none;
}

body.as-mode-client .as-logo img {
  width: clamp(150px, 15vw, 225px);
}

body.as-mode-client :is(
  .as-button,
  .as-public-nav__cta,
  .as-public-menu-toggle,
  .as-mobile-menu-toggle,
  .as-nav,
  .as-nav__button,
  .as-auth-toggle,
  .as-login-card--header,
  .as-staff-session,
  .as-hero__card,
  .as-card,
  .as-client-login,
  .as-client-login__image,
  .as-verification-panel,
  .as-client-welcome,
  .as-client-welcome__summary a,
  .as-client-priority,
  .as-appointment-panel,
  .as-client-start-card,
  .as-client-history-card,
  .as-client-appointment-item,
  .as-client-appointment-manage,
  .as-status-pill,
  .as-client-record,
  .as-client-record__indicator,
  .as-client-order-card,
  .as-client-order-status,
  .as-client-order-modal__panel,
  .as-client-order-modal__close,
  .as-client-order-invoice__meta > div,
  .as-client-payment-methods,
  .as-client-payment-methods__list article,
  .as-client-payment-methods__empty,
  .as-question,
  .as-choice,
  .as-service-module,
  fieldset,
  input,
  select,
  textarea
) {
  border-radius: 0 !important;
  box-shadow: none !important;
}

body.as-mode-client .as-button,
body.as-mode-client :is(.as-public-nav__cta, .as-public-menu-toggle, .as-mobile-menu-toggle, .as-nav__button, .as-auth-toggle) {
  min-height: 48px;
  border-color: var(--as-portal-ink);
  padding: 13px 20px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.11em;
  line-height: 1.2;
  text-transform: uppercase;
}

body.as-mode-client .as-button--dark,
body.as-mode-client .as-nav__button.is-active {
  background: var(--as-portal-ink);
  color: #fff;
}

body.as-mode-client .as-button--ghost {
  background: transparent;
  color: var(--as-portal-ink);
}

body.as-mode-client:not(.as-client-signed-in) main {
  width: min(1320px, calc(100% - clamp(36px, 8vw, 128px)));
}

body.as-mode-client:not(.as-client-signed-in) .as-hero {
  grid-template-columns: minmax(0, 1.28fr) minmax(280px, 0.72fr);
  gap: 0;
  align-items: stretch;
  margin-top: clamp(28px, 5vw, 72px);
  border: 1px solid var(--as-portal-line);
  padding: 0;
}

body.as-mode-client:not(.as-client-signed-in) .as-hero > div {
  display: flex;
  min-height: 330px;
  flex-direction: column;
  justify-content: center;
  padding: clamp(44px, 7vw, 94px);
}

body.as-mode-client:not(.as-client-signed-in) .as-hero h1 {
  max-width: 10ch;
  font-size: clamp(54px, 8vw, 108px);
  line-height: 0.92;
  letter-spacing: -0.04em;
}

body.as-mode-client:not(.as-client-signed-in) .as-hero__card {
  align-content: center;
  border: 0;
  border-left: 1px solid var(--as-portal-line);
  padding: clamp(34px, 5vw, 68px);
  background: var(--as-portal-soft);
}

body.as-mode-client:not(.as-client-signed-in) .as-hero__card strong {
  font-family: var(--as-display-font);
  font-size: clamp(34px, 4vw, 54px);
  letter-spacing: -0.025em;
}

body.as-mode-client #client-mode {
  padding-top: clamp(36px, 5vw, 72px);
}

body.as-mode-client .as-client-login {
  grid-template-areas:
    "visual copy form"
    "visual copy status";
  grid-template-columns: minmax(260px, 0.82fr) minmax(260px, 0.88fr) minmax(320px, 1fr);
  gap: 0;
  align-items: stretch;
  overflow: hidden;
  border-color: var(--as-portal-line);
  padding: 0;
  background: var(--as-portal-paper);
}

body.as-mode-client .as-client-login__image {
  grid-area: visual;
  min-height: 520px;
  border: 0;
  border-right: 1px solid var(--as-portal-line);
  background:
    linear-gradient(rgba(23, 23, 20, 0.06), rgba(23, 23, 20, 0.06)),
    url("/assets/public-site/all-six-home-skin.jpg") center / cover no-repeat;
}

body.as-mode-client .as-client-login__image::before,
body.as-mode-client .as-client-login__image::after {
  display: none;
}

body.as-mode-client .as-client-login__image img {
  width: min(70%, 280px);
  padding: 24px;
  background: rgba(244, 239, 231, 0.92);
}

body.as-mode-client .as-client-login__copy {
  grid-area: copy;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-right: 1px solid var(--as-portal-line);
  padding: clamp(32px, 5vw, 64px);
}

body.as-mode-client .as-client-login__copy h2 {
  font-size: clamp(42px, 5vw, 68px);
  line-height: 0.94;
}

body.as-mode-client .as-client-login .as-login-form {
  grid-area: form;
  align-content: end;
  padding: clamp(32px, 5vw, 64px) clamp(28px, 4vw, 54px) 16px;
}

body.as-mode-client .as-client-login > .as-search-status {
  grid-area: status;
  align-self: start;
  margin: 0;
  padding: 0 clamp(28px, 4vw, 54px) clamp(32px, 5vw, 64px);
}

body.as-mode-client .as-login-form label,
body.as-mode-client .as-client-profile-form label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body.as-mode-client :is(input, select, textarea) {
  min-height: 52px;
  border-color: var(--as-portal-line);
  background: rgba(255, 253, 249, 0.7);
}

body.as-mode-client :is(input, select, textarea):focus {
  border-color: var(--as-portal-ink);
  box-shadow: inset 3px 0 0 var(--as-portal-ink) !important;
}

body.as-client-signed-in main,
body.as-client-signed-in .as-client-private-content {
  width: min(1320px, calc(100% - clamp(36px, 8vw, 128px)));
  max-width: 1320px;
}

body.as-client-signed-in .as-client-welcome {
  border-color: var(--as-portal-ink);
  background: var(--as-portal-ink);
}

body.as-client-signed-in .as-client-welcome h2 {
  font-family: var(--as-display-font);
  font-weight: 500;
}

body.as-client-signed-in .as-client-welcome__summary {
  gap: 0;
  border-top: 1px solid rgba(244, 239, 231, 0.24);
  border-left: 1px solid rgba(244, 239, 231, 0.24);
}

body.as-client-signed-in .as-client-welcome__summary a {
  border: 0;
  border-right: 1px solid rgba(244, 239, 231, 0.24);
  border-bottom: 1px solid rgba(244, 239, 231, 0.24);
  background: transparent;
}

.as-client-appointment-manage:focus {
  outline: none;
}

.as-client-appointment-manage:focus-visible {
  outline: 1px solid var(--as-portal-wine);
  outline-offset: 3px;
}

.as-client-appointment-manage__header > div {
  display: grid;
  gap: 4px;
}

.as-client-appointment-manage__details {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.as-client-appointment-manage__details > div {
  display: grid;
  gap: 6px;
  min-width: 0;
}

body.as-client-signed-in .as-client-welcome__summary a:hover,
body.as-client-signed-in .as-client-welcome__summary a:focus-visible {
  background: rgba(244, 239, 231, 0.1);
  transform: none;
}

body.as-client-signed-in .as-client-portal-nav:not([hidden]) {
  gap: clamp(14px, 1.7vw, 26px);
  border: 0;
  border-radius: 0;
  padding: 0;
  background: transparent;
}

body.as-client-signed-in .as-client-portal-nav a {
  min-height: 44px;
  border: 0;
  border-bottom: 1px solid transparent;
  border-radius: 0;
  padding: 14px 2px 11px;
  background: transparent;
  color: var(--as-portal-muted);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.05em;
  box-shadow: none;
}

body.as-client-signed-in .as-client-portal-nav a:hover,
body.as-client-signed-in .as-client-portal-nav a:focus-visible,
body.as-client-signed-in .as-client-portal-nav a.is-active {
  border-bottom-color: var(--as-portal-ink);
  background: transparent;
  color: var(--as-portal-ink);
  box-shadow: none;
}

body.as-client-signed-in .as-client-priority {
  border: 1px solid var(--as-portal-line);
  background: var(--as-portal-soft);
}

body.as-client-signed-in .as-client-flow-grid,
body.as-client-signed-in .as-client-dashboard {
  gap: 0 !important;
}

body.as-client-signed-in :is(
  .as-appointment-panel,
  .as-client-start-card,
  .as-client-history-card,
  .as-client-dashboard .as-card,
  .as-client-dashboard .as-client-dashboard__history,
  .as-client-dashboard .as-client-dashboard__care,
  .as-client-dashboard .as-client-dashboard__profile
) {
  border-color: var(--as-portal-line);
  background: var(--as-portal-paper);
  background-image: none;
}

body.as-client-signed-in .as-client-dashboard {
  border-top: 1px solid var(--as-portal-line);
  border-left: 1px solid var(--as-portal-line);
}

body.as-client-signed-in .as-client-dashboard > :is(.as-card, article) {
  border-width: 0 1px 1px 0;
}

body.as-client-signed-in .as-client-appointment-item,
body.as-client-signed-in .as-client-order-card,
body.as-client-signed-in .as-client-payment-methods,
body.as-client-signed-in .as-client-payment-methods__list article {
  background: transparent;
}

body.as-client-signed-in .as-client-order-status,
body.as-client-signed-in .as-status-pill {
  min-height: 30px;
  border: 1px solid currentColor;
  background: transparent;
}

body.as-client-signed-in .as-client-order-modal__panel {
  background: var(--as-portal-paper);
}

body.as-client-signed-in .as-client-order-modal__header,
body.as-client-signed-in .as-client-order-modal__actions {
  background: rgba(244, 239, 231, 0.97);
}

body.as-mode-client .as-site-footer {
  border-color: var(--as-portal-line);
  background: var(--as-portal-soft);
  color: var(--as-portal-ink);
}

body.as-mode-client .as-site-footer__brand img {
  filter: none;
}

body.as-mode-client .as-site-footer :is(a, h2),
body.as-mode-client .as-site-footer .as-button {
  color: var(--as-portal-ink);
}

body.as-mode-client .as-site-footer h2 {
  color: var(--as-portal-muted);
}

body.as-mode-client .as-site-footer :is(.as-site-footer__brand p, .as-site-footer__visit p) {
  color: var(--as-portal-muted);
}

body.as-mode-client .as-site-footer .as-button {
  border-color: var(--as-portal-ink);
  background: transparent;
}

body.as-mode-client .as-site-footer__legal {
  border-color: var(--as-portal-line);
  color: var(--as-portal-muted);
}

/* The same geometry and typography now apply to every protected staff entry
   point, including Performance, so route origin cannot reintroduce the older
   rounded application shell. */
body.as-mode-staff :where(
  button,
  input,
  select,
  textarea,
  .as-button,
  .as-card,
  [class*="-card"],
  [class*="__card"],
  [class*="-panel"],
  [class*="__panel"],
  [class*="-chip"],
  [class*="-pill"]
) {
  border-radius: 0 !important;
  box-shadow: none !important;
}

body.as-mode-staff .as-portal-utility,
body.as-mode-staff .as-portal-shell-nav,
body.as-performance-visible .as-performance {
  border-color: var(--as-portal-line);
  border-radius: 0 !important;
  background: var(--as-portal-paper);
  box-shadow: none;
}

body.as-mode-staff .as-portal-shell-nav nav :is(button, a) {
  border: 0;
  border-bottom: 1px solid transparent;
  background: transparent;
}

body.as-mode-staff .as-portal-shell-nav nav button.is-active,
body.as-mode-staff .as-portal-shell-nav nav a[aria-current="page"] {
  border-bottom-color: var(--as-portal-ink);
  background: transparent;
  color: var(--as-portal-ink);
}

@media (max-width: 980px) {
  body.as-mode-client .as-client-login {
    grid-template-areas:
      "visual copy"
      "visual form"
      "visual status";
    grid-template-columns: minmax(240px, 0.78fr) minmax(0, 1.22fr);
  }

  body.as-mode-client .as-client-login__copy {
    border-right: 0;
    border-bottom: 1px solid var(--as-portal-line);
  }
}

@media (max-width: 760px) {
  body.as-mode-client:not(.as-client-signed-in) main,
  body.as-client-signed-in main,
  body.as-client-signed-in .as-client-private-content {
    width: min(100% - 24px, 1320px);
  }

  body.as-mode-client:not(.as-client-signed-in) .as-hero {
    grid-template-columns: 1fr;
  }

  body.as-mode-client:not(.as-client-signed-in) .as-hero > div {
    min-height: 280px;
    padding: 38px 24px;
  }

  body.as-mode-client:not(.as-client-signed-in) .as-hero__card {
    border-top: 1px solid var(--as-portal-line);
    border-left: 0;
    padding: 28px 24px;
  }

  body.as-mode-client .as-client-login {
    grid-template-areas:
      "visual"
      "copy"
      "form"
      "status";
    grid-template-columns: 1fr;
  }

  body.as-mode-client .as-client-login__image {
    min-height: 300px;
    border-right: 0;
    border-bottom: 1px solid var(--as-portal-line);
  }

  body.as-mode-client .as-client-login__copy {
    padding: 34px 24px;
  }

  body.as-mode-client .as-client-login .as-login-form {
    padding: 30px 24px 14px;
  }

  body.as-mode-client .as-client-login > .as-search-status {
    padding: 0 24px 34px;
  }
}

@media print {
  @page { size: landscape; margin: .32in; }
  html,
  body { background: #fff !important; background-image: none !important; color: #000 !important; -webkit-print-color-adjust: economy; print-color-adjust: economy; }
  body.as-performance-printing > *:not(.as-performance-print-report) { display: none !important; }
  body.as-performance-printing > .as-performance-print-report,
  body.as-performance-printing > .as-performance-print-report * { background-color: #fff !important; background-image: none !important; box-shadow: none !important; filter: none !important; color: #000 !important; }
  body.as-performance-printing > .as-performance-print-report { display: block !important; width: 100%; color: #000; font: 7pt/1.18 Arial, sans-serif; }
  .as-performance-print-report__header { display: flex; align-items: center; gap: .18in; margin-bottom: .12in; border-bottom: 1px solid #222; padding-bottom: .08in; }
  .as-performance-print-report__header img { width: .85in; height: auto; }
  .as-performance-print-report__header h1 { margin: 0; font-size: 15pt; }
  .as-performance-print-report__header .as-kicker { margin: 0 0 .02in; font-size: 6pt; }
  .as-performance-print-report__meta { display: grid; grid-template-columns: repeat(4, 1fr); gap: .05in; margin: 0 0 .12in; }
  .as-performance-print-report__meta div { min-width: 0; border: 1px solid #bbb; padding: .045in .055in; }
  .as-performance-print-report__meta dt { font-size: 5.5pt; font-weight: 700; text-transform: uppercase; }
  .as-performance-print-report__meta dd { margin: .015in 0 0; overflow-wrap: anywhere; }
  .as-performance-print-report__table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 6.25pt; line-height: 1.12; }
  .as-performance-print-report__table thead { display: table-header-group; }
  .as-performance-print-report__table tr { break-inside: avoid; page-break-inside: avoid; }
  .as-performance-print-report__table th, .as-performance-print-report__table td { border: .5px solid #aaa; padding: .025in .03in; vertical-align: top; overflow-wrap: anywhere; word-break: normal; }
  .as-performance-print-report__table th { font-size: 5.5pt; text-transform: uppercase; }
  .as-performance-print-report__table th:nth-child(1) { width: 10%; }
  .as-performance-print-report__table th:nth-child(2) { width: 14%; }
  .as-performance-print-report__table th:nth-child(3) { width: 9%; }
  .as-performance-print-report__table th:nth-child(4) { width: 4%; }
  .as-performance-print-report__table th:nth-child(5) { width: 19%; }
  .as-performance-print-report__table th:nth-child(6) { width: 12%; }
  .as-performance-print-report__table th:nth-child(7) { width: 5%; }
  .as-performance-print-report__table th:nth-child(8) { width: 8%; }
  .as-performance-print-report__table th:nth-child(9) { width: 10%; }
  .as-performance-print-report__table th:nth-child(10) { width: 9%; }
  .as-performance-print-report__notes { break-inside: avoid; page-break-before: always; margin-top: .12in; }
  .as-performance-print-report__notes h2 { font-size: 11pt; }
  .as-performance-print-report__notes div { height: .45in; border-bottom: 1px solid #999; }
  body.as-performance-visible:not(.as-performance-printing) > *:not(main), body.as-performance-visible:not(.as-performance-printing) .as-staff-layout > *:not(.as-performance), .as-performance__filters, .as-performance__tabs, .as-performance__controls, .as-performance__header-actions, .as-performance__notice, .as-performance__section-select, .as-services-toolbar, .as-service-bars, .as-appointment-pattern, .as-table-tools { display: none !important; }
  .as-performance { width: 100%; padding: 0; color: #000; }
  .as-performance-kpis { grid-template-columns: repeat(4, 1fr); }
  .as-performance-table-wrap { overflow: visible; border: 0; }
  .as-performance-table { font-size: 9pt; }
  .as-performance-table thead { display: table-header-group; }
  .as-performance-table tr { break-inside: avoid; }
  body.as-performance-visible:not(.as-performance-printing) #performance-service-table { width: 100%; table-layout: fixed; font-size: 7.5pt; }
  body.as-performance-visible:not(.as-performance-printing) #performance-service-table :is(th, td):nth-child(n + 6) { display: none !important; }
  body.as-performance-visible:not(.as-performance-printing) #performance-service-table :is(th, td):first-child { position: static; width: 34%; min-width: 0; box-shadow: none; }
  body.as-performance-visible:not(.as-performance-printing) #performance-service-table :is(th, td) { width: auto; min-width: 0; max-width: none; overflow-wrap: anywhere; }
  .as-performance-panel, .as-performance-kpis article { break-inside: avoid; }
  a { color: #000; text-decoration: none; }
}

/* Clients workspace: keep search and chart in separate layout tracks at every
   responsive breakpoint. The shared tablet rule previously placed both in
   grid row 3, causing the chart to render underneath the search card. */
@media (min-width: 900px) and (max-width: 1180px) {
  body.as-mode-staff.as-staff-workbench-clients .as-staff-layout {
    grid-template-columns: minmax(290px, 340px) minmax(0, 1fr) !important;
  }

  body.as-mode-staff.as-staff-workbench-clients .as-portal-utility,
  body.as-mode-staff.as-staff-workbench-clients .as-dashboard-v2__mobile-menu {
    grid-column: 1 / -1 !important;
  }

  body.as-mode-staff.as-staff-workbench-clients .as-client-summary {
    grid-column: 1 !important;
    grid-row: 3 !important;
    width: auto;
  }

  body.as-mode-staff.as-staff-workbench-clients .as-staff-main {
    grid-column: 2 !important;
    grid-row: 3 !important;
    width: auto;
  }
}

@media (max-width: 899px) {
  body.as-mode-staff.as-staff-workbench-clients .as-client-summary {
    grid-column: 1 !important;
    grid-row: 3 !important;
    position: static;
    width: auto;
    max-height: none;
  }

  body.as-mode-staff.as-staff-workbench-clients .as-staff-main {
    grid-column: 1 !important;
    grid-row: 4 !important;
    width: auto;
  }
}

body.as-mode-staff.as-staff-workbench-clients:not(.as-chart-selected) .as-client-summary {
  align-self: start;
  height: auto;
  min-height: 0;
  max-height: calc(100dvh - 190px);
}

body.as-mode-staff.as-staff-workbench-clients:not(.as-chart-selected) .as-client-summary .as-staff-tools,
body.as-mode-staff.as-staff-workbench-clients:not(.as-chart-selected) .as-client-summary .as-chart-summary,
body.as-mode-staff.as-staff-workbench-clients:not(.as-chart-selected) .as-chart-card > .as-chart-actions,
body.as-mode-staff.as-staff-workbench-clients:not(.as-chart-selected) .as-chart-card > .as-chart-attention,
body.as-mode-staff.as-staff-workbench-clients:not(.as-chart-selected) .as-chart-card > .as-chart-intake-detail,
body.as-mode-staff.as-staff-workbench-clients:not(.as-chart-selected) .as-chart-card > .as-chart-history,
body.as-mode-staff.as-staff-workbench-clients:not(.as-chart-selected) .as-chart-card > .as-chart-detail-panel {
  display: none !important;
}

.as-chart-empty-state {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(250px, .75fr);
  gap: clamp(24px, 5vw, 72px);
  align-items: center;
  min-height: 420px;
  padding: clamp(28px, 5vw, 68px);
  border: 1px solid var(--as-portal-line);
  border-radius: 18px;
  background: linear-gradient(135deg, #fff 0%, #fbf7f1 100%);
}

.as-chart-empty-state h4 {
  max-width: 18ch;
  margin: 8px 0 16px;
  font: 500 clamp(2rem, 4vw, 3.7rem)/.98 "Playfair Display", Georgia, serif;
}

.as-chart-empty-state p:not(.as-kicker) {
  max-width: 60ch;
  margin: 0;
  color: var(--as-portal-muted);
  line-height: 1.65;
}

.as-chart-empty-state ol {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.as-chart-empty-state li {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 3px 12px;
  align-items: center;
  padding: 16px;
  border: 1px solid var(--as-portal-line);
  border-radius: 14px;
  background: #fff;
}

.as-chart-empty-state li span {
  grid-row: 1 / 3;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--as-portal-wine);
  color: #fff;
  font-weight: 800;
}

.as-chart-empty-state li small { color: var(--as-portal-muted); }
body.as-mode-staff.as-chart-selected .as-chart-empty-state { display: none; }

@media (max-width: 760px) {
  .as-chart-empty-state {
    grid-template-columns: 1fr;
    min-height: 0;
    padding: 24px;
  }
}

/* Assembly refinement, slide 9: keep staff in the appointment task and place
   the permitted client context beside it. The full record remains one click
   away instead of being the default canvas. */
body.as-mode-staff.as-staff-workbench-chart .as-staff-layout {
  grid-template-columns: minmax(0, 1fr) !important;
}

body.as-mode-staff.as-staff-workbench-chart .as-portal-utility,
body.as-mode-staff.as-staff-workbench-chart .as-dashboard-v2__mobile-menu,
body.as-mode-staff.as-staff-workbench-chart .as-staff-main {
  grid-column: 1 !important;
}

body.as-mode-staff.as-staff-workbench-chart .as-client-summary { display: none !important; }

body.as-mode-staff.as-staff-workbench-chart .as-staff-main {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(330px, 390px) !important;
  gap: 0 !important;
  width: 100% !important;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--as-portal-line);
  border-radius: 24px;
  background: var(--as-portal-surface);
  box-shadow: var(--as-portal-shadow);
}

body.as-mode-staff.as-staff-workbench-chart .as-staff-main > :not(.as-calendar-card):not(.as-chart-card) {
  display: none !important;
}

body.as-mode-staff.as-staff-workbench-chart .as-calendar-card,
body.as-mode-staff.as-staff-workbench-chart .as-chart-card {
  display: block !important;
  width: auto !important;
  min-width: 0;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

body.as-mode-staff.as-staff-workbench-chart .as-calendar-card {
  grid-column: 1;
  padding: 0 24px 30px !important;
  border-right: 1px solid var(--as-portal-line) !important;
}

body.as-mode-staff.as-staff-workbench-chart .as-calendar-card::before {
  content: "ALL SIX";
  display: block;
  margin: 0 -24px 22px;
  padding: 15px 24px 14px;
  background: #0e0d0c;
  color: #fff;
  font: 500 1rem/1 "Playfair Display", Georgia, serif;
  letter-spacing: .16em;
}

body.as-mode-staff.as-staff-workbench-chart .as-calendar-card > .as-card__header {
  align-items: end;
  margin-bottom: 18px;
  padding: 0;
}

body.as-mode-staff.as-staff-workbench-chart .as-calendar-card > .as-card__header .as-kicker {
  margin-bottom: 5px;
  color: var(--as-portal-wine);
}

body.as-mode-staff.as-staff-workbench-chart #staff-calendar-title {
  font: 500 clamp(2.4rem, 5vw, 4.7rem)/.9 "Playfair Display", Georgia, serif;
}

body.as-mode-staff.as-staff-workbench-chart .as-appointments-toolbar {
  margin-bottom: 12px;
}

body.as-mode-staff.as-staff-workbench-chart .as-calendar-presets,
body.as-mode-staff.as-staff-workbench-chart .as-calendar-filter-drawer {
  display: none !important;
}

body.as-mode-staff.as-staff-workbench-chart .as-calendar-list {
  max-height: min(68dvh, 760px);
  overflow: auto;
  border-top: 1px solid var(--as-portal-line);
}

body.as-mode-staff.as-staff-workbench-chart .as-calendar-day__heading {
  position: sticky;
  top: 0;
  z-index: 2;
  padding: 12px 4px;
  background: rgba(255, 253, 249, .96);
  backdrop-filter: blur(12px);
}

body.as-mode-staff.as-staff-workbench-chart .as-appointment-item {
  grid-template-columns: 76px minmax(0, 1fr) auto;
  gap: 14px;
  min-height: 70px;
  margin: 0;
  border-width: 0 0 1px 3px;
  border-radius: 0;
  padding: 13px 10px;
  background: transparent;
}

body.as-mode-staff.as-staff-workbench-chart .as-appointment-item.is-active {
  border-left-color: var(--as-portal-wine);
  background: #f6e9e6;
}

body.as-mode-staff.as-staff-workbench-chart .as-appointment-manage-link {
  border-radius: 999px;
  white-space: nowrap;
}

body.as-mode-staff.as-staff-workbench-chart .as-chart-card {
  grid-column: 2;
  align-self: stretch;
  background: #fffdfa;
}

body.as-mode-staff.as-staff-workbench-chart:not(.as-staff-chart-full) .as-chart-card > :not(.as-staff-context-panel) {
  display: none !important;
}

.as-staff-context-panel {
  display: grid;
  align-content: start;
  min-height: 100%;
  color: var(--as-portal-ink);
}

.as-staff-context-panel[hidden] { display: none !important; }

.as-staff-context-panel__identity {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 13px;
  align-items: center;
  padding: 24px;
  border-bottom: 1px solid var(--as-portal-line);
}

.as-staff-context-panel__identity h4 {
  margin: 2px 0 4px;
  font: 500 1.65rem/1 "Playfair Display", Georgia, serif;
}

.as-staff-context-panel__avatar {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: linear-gradient(145deg, #7a4142, #271918);
  color: #fff;
  font-weight: 800;
  letter-spacing: .04em;
}

.as-staff-context-panel__verified {
  color: var(--as-portal-wine);
  font-size: .72rem;
  font-weight: 800;
}

.as-staff-context-panel__visits { margin: 0; }
.as-staff-context-panel__visits > div {
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr);
  gap: 10px;
  padding: 17px 24px;
  border-bottom: 1px solid var(--as-portal-line);
}
.as-staff-context-panel__visits dt { color: var(--as-portal-muted); font-size: .72rem; font-weight: 750; }
.as-staff-context-panel__visits dd { margin: 0; font-size: .82rem; line-height: 1.4; }

.as-staff-context-panel__operations,
.as-staff-context-panel__communication { padding: 20px 24px 0; }

.as-staff-context-panel__operations > button,
.as-staff-context-panel__communication > button {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 12px;
  align-items: center;
  width: 100%;
  min-height: 48px;
  border: 1px solid var(--as-portal-line);
  border-radius: 9px;
  padding: 10px 12px;
  background: #fff;
  color: var(--as-portal-ink);
  text-align: left;
  cursor: pointer;
}

.as-staff-context-panel__communication > button strong,
.as-staff-context-panel__communication > button small { grid-column: 1; }
.as-staff-context-panel__communication > button span { grid-column: 2; grid-row: 1 / 3; }
.as-staff-context-panel__communication > button small { color: var(--as-portal-muted); }

.as-staff-context-panel__signals {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 10px;
}
.as-staff-context-panel__signals article {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 1px 8px;
  padding: 12px;
  border: 1px solid var(--as-portal-line);
  border-radius: 10px;
}
.as-staff-context-panel__signals article > span { grid-row: 1 / 3; font-size: 1.4rem; color: var(--as-portal-wine); }
.as-staff-context-panel__signals small { color: var(--as-portal-muted); }

.as-staff-context-panel__actions {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-top: auto;
  padding: 22px 24px 24px;
}
.as-staff-context-panel__actions button {
  display: grid;
  place-items: center;
  gap: 5px;
  min-height: 70px;
  border: 1px solid var(--as-portal-line);
  border-radius: 10px;
  background: #fff;
  color: var(--as-portal-ink);
  font-size: .7rem;
  font-weight: 800;
  cursor: pointer;
}
.as-staff-context-panel__actions button span { font-size: 1.35rem; }
.as-staff-context-panel__actions button.is-primary { border-color: var(--as-portal-wine); background: var(--as-portal-wine); color: #fff; }

body.as-mode-staff.as-staff-workbench-chart.as-staff-chart-full .as-staff-main {
  display: block !important;
}
body.as-mode-staff.as-staff-workbench-chart.as-staff-chart-full .as-calendar-card,
body.as-mode-staff.as-staff-workbench-chart.as-staff-chart-full .as-staff-context-panel { display: none !important; }
body.as-mode-staff.as-staff-workbench-chart.as-staff-chart-full .as-chart-card { display: block !important; }
body.as-mode-staff.as-staff-workbench-chart.as-staff-chart-full .as-chart-card > .as-card__header { display: flex !important; }
body.as-mode-staff.as-staff-workbench-chart.as-staff-chart-full .as-chart-return-task { display: inline-flex !important; }

@media (max-width: 900px) {
  body.as-mode-staff.as-staff-workbench-chart .as-staff-main {
    grid-template-columns: 1fr !important;
  }
  body.as-mode-staff.as-staff-workbench-chart .as-calendar-card,
  body.as-mode-staff.as-staff-workbench-chart .as-chart-card { grid-column: 1; }
  body.as-mode-staff.as-staff-workbench-chart .as-chart-card { border-top: 1px solid var(--as-portal-line) !important; }
  body.as-mode-staff.as-staff-workbench-chart .as-calendar-list { max-height: 520px; }
}

/* Assembly refinement, slide 8: the authenticated client portal opens as a
   guided relationship home, prioritizing one action, the next appointment,
   recent care, aftercare, colours, and rebooking. */
body.as-client-signed-in .as-client-private-content > .as-section-heading,
body.as-client-signed-in .as-client-welcome { display: none !important; }

body.as-client-signed-in .as-client-private-content {
  padding-top: clamp(18px, 3vw, 34px);
}

body.as-client-signed-in .as-client-flow-grid {
  gap: 14px !important;
}

body.as-client-signed-in .as-client-priority {
  position: relative;
  isolation: isolate;
  grid-column: span 8;
  grid-template-columns: minmax(0, .72fr) minmax(190px, .28fr);
  min-height: 360px;
  overflow: hidden;
  border-radius: 18px;
  padding: clamp(28px, 4vw, 52px);
  background:
    linear-gradient(90deg, rgba(255,253,249,.98) 0%, rgba(255,253,249,.92) 43%, rgba(255,253,249,.18) 68%, rgba(255,253,249,0) 100%),
    url("/assets/public-site/all-six-nails.jpg") center right / cover no-repeat;
  box-shadow: none;
}

body.as-client-signed-in .as-client-priority::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(135deg, transparent 55%, rgba(113,61,61,.12));
}

body.as-client-signed-in .as-client-priority h3 {
  max-width: 12ch;
  font-size: clamp(2.5rem, 5vw, 4.6rem);
  line-height: .92;
}

body.as-client-signed-in .as-client-priority p:not(.as-kicker) {
  max-width: 36ch;
  font-size: 1rem;
  line-height: 1.6;
}

body.as-client-signed-in .as-client-priority__actions {
  align-self: end;
  justify-self: start;
  min-width: 180px;
}

body.as-client-signed-in .as-client-priority__actions > .as-button {
  min-height: 48px;
  border-radius: 6px;
}

body.as-client-signed-in .as-appointment-panel {
  grid-column: span 4;
  min-height: 360px;
  border-radius: 18px;
  padding: 24px;
  box-shadow: none;
}

body.as-client-signed-in .as-appointment-panel h3 {
  font: 500 clamp(1.8rem, 3vw, 2.7rem)/1 "Playfair Display", Georgia, serif;
}

body.as-client-signed-in .as-appointment-panel__side {
  align-self: end;
  display: grid;
  grid-template-columns: 1fr;
  width: 100%;
}

body.as-client-signed-in .as-appointment-panel__side .as-status-pill { justify-self: start; }
body.as-client-signed-in .as-appointment-panel__side .as-button { width: 100%; border-radius: 6px; }

body.as-client-signed-in .as-client-forms-group {
  grid-column: span 4;
}

body.as-client-signed-in .as-client-dashboard {
  grid-column: 1 / -1;
  gap: 14px;
}

body.as-client-signed-in .as-client-dashboard .as-card,
body.as-client-signed-in .as-client-dashboard .as-client-dashboard__history,
body.as-client-signed-in .as-client-dashboard .as-client-dashboard__care {
  grid-column: span 4;
  min-height: 230px;
  border-radius: 16px;
  padding: 22px;
  box-shadow: none;
}

body.as-client-signed-in .as-client-dashboard .as-client-dashboard__profile {
  grid-column: span 8;
  background:
    linear-gradient(90deg, rgba(255,253,249,.98), rgba(255,253,249,.76)),
    url("/assets/public-site/all-six-home-skin.jpg") center / cover no-repeat;
}

body.as-client-signed-in .as-client-dashboard .as-client-dashboard__history {
  background:
    linear-gradient(90deg, rgba(255,253,249,.98), rgba(255,253,249,.82)),
    url("/assets/public-site/all-six-eyebrows.jpg") center / cover no-repeat;
}

body.as-client-signed-in .as-client-dashboard .as-client-dashboard__care {
  background:
    linear-gradient(90deg, rgba(255,253,249,.98), rgba(255,253,249,.82)),
    url("/assets/public-site/hydrafacial-hero-treatment.jpg") center / cover no-repeat;
}

body.as-client-signed-in .as-client-dashboard h3 {
  margin: 4px 0 12px;
  font: 500 clamp(1.55rem, 2.4vw, 2.35rem)/1 "Playfair Display", Georgia, serif;
}

body.as-client-signed-in .as-client-dashboard .as-kicker,
body.as-client-signed-in .as-client-priority .as-kicker,
body.as-client-signed-in .as-appointment-panel .as-kicker {
  color: var(--as-portal-wine);
}

@media (max-width: 940px) {
  body.as-client-signed-in .as-client-priority,
  body.as-client-signed-in .as-appointment-panel,
  body.as-client-signed-in .as-client-forms-group { grid-column: 1 / -1; }
  body.as-client-signed-in .as-client-priority { grid-template-columns: 1fr; min-height: 320px; }
  body.as-client-signed-in .as-client-priority__actions { align-self: start; }
  body.as-client-signed-in .as-client-dashboard .as-card,
  body.as-client-signed-in .as-client-dashboard .as-client-dashboard__history,
  body.as-client-signed-in .as-client-dashboard .as-client-dashboard__care,
  body.as-client-signed-in .as-client-dashboard .as-client-dashboard__profile { grid-column: span 6; }
}

@media (max-width: 620px) {
  body.as-client-signed-in .as-client-priority {
    min-height: 420px;
    padding: 24px;
    background:
      linear-gradient(180deg, rgba(255,253,249,.99) 0%, rgba(255,253,249,.92) 56%, rgba(255,253,249,.28) 100%),
      url("/assets/public-site/all-six-nails.jpg") center bottom / cover no-repeat;
  }
  body.as-client-signed-in .as-client-dashboard .as-card,
  body.as-client-signed-in .as-client-dashboard .as-client-dashboard__history,
  body.as-client-signed-in .as-client-dashboard .as-client-dashboard__care,
  body.as-client-signed-in .as-client-dashboard .as-client-dashboard__profile { grid-column: 1 / -1; }
}

/* Canonical portal presentation — client relationship home and staff workspace.
   This is the final application layer. Keep route-specific modules inside the
   same shell so entering through Client, Staff, or Performance never changes
   the portal chrome or typography. */
body.as-mode-client,
body.as-mode-staff {
  --as-portal-ink: #211c19;
  --as-portal-paper: #f4eee6;
  --as-portal-surface: #fffdf9;
  --as-portal-soft: #eee1d6;
  --as-portal-wine: #713d3d;
  --as-portal-rose: #bd746c;
  --as-portal-line: #d8cec1;
  --as-portal-muted: #716962;
  --as-portal-shadow: 0 18px 48px rgba(58, 39, 29, 0.09);
  background: var(--as-portal-paper);
  color: var(--as-portal-ink);
  font-family: var(--as-current-site-font);
}

/* A protected staff route owns its application header. The customer-facing
   header was the extra shell visible when Staff was entered from Client. */
body[data-staff-route] > .as-header,
body[data-staff-route].as-mode-staff > .as-header,
body.as-mode-staff.as-staff-signed-in > .as-header,
body.as-mode-staff.as-chart-selected > .as-header {
  display: none !important;
}

body[data-staff-route].as-mode-staff main,
body.as-mode-staff.as-staff-signed-in main,
body.as-mode-staff.as-chart-selected main {
  width: min(1680px, calc(100% - 24px));
  padding-top: 12px;
}

body.as-mode-staff .as-portal-utility {
  top: 12px;
  min-height: 64px;
  border-color: var(--as-portal-line);
  border-radius: 16px;
  background: rgba(255, 253, 249, 0.96);
  box-shadow: var(--as-portal-shadow);
}

body.as-mode-staff .as-portal-shell-nav,
body.as-mode-staff .as-portal-shell-nav button,
body.as-mode-staff .as-portal-shell-nav a,
body.as-mode-staff .as-portal-utility,
body.as-mode-staff .as-portal-utility button,
body.as-mode-staff .as-portal-utility a,
body.as-performance-visible .as-performance {
  font-family: var(--as-current-site-font);
}

body.as-mode-staff .as-portal-shell-nav nav button.is-active,
body.as-mode-staff .as-portal-shell-nav nav a[aria-current="page"] {
  background: var(--as-portal-wine);
  color: #fff;
}

body.as-performance-visible .as-performance {
  border-color: var(--as-portal-line);
  border-radius: 18px;
  background: var(--as-portal-surface);
  box-shadow: var(--as-portal-shadow);
}

body.as-performance-visible .as-performance__header h2,
body.as-mode-staff .as-dashboard-v2__header h2,
body.as-mode-staff #staff-calendar-title,
body.as-mode-staff .as-chart-card h3 {
  color: var(--as-portal-ink);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
}

/* The signed-in client home begins with identity and useful status, not a
   duplicate marketing hero. */
body.as-client-signed-in .as-client-private-content > .as-section-heading {
  display: none !important;
}

body.as-client-signed-in .as-client-private-content {
  width: min(1240px, 100%);
  max-width: 1240px;
  gap: 16px;
  padding-top: clamp(16px, 2.5vw, 30px);
}

body.as-client-signed-in .as-client-welcome {
  display: grid !important;
  grid-template-columns: minmax(300px, 0.78fr) minmax(520px, 1.22fr);
  gap: clamp(24px, 4vw, 54px);
  align-items: center;
  padding: clamp(28px, 4vw, 52px);
  border: 1px solid #302824;
  border-radius: 22px;
  background:
    radial-gradient(circle at 92% 8%, rgba(189, 116, 108, 0.34), transparent 24rem),
    linear-gradient(135deg, #211c19 0%, #332521 100%);
  color: #fffdf9;
  box-shadow: var(--as-portal-shadow);
}

body.as-client-signed-in .as-client-welcome__copy {
  min-width: 0;
}

body.as-client-signed-in .as-client-welcome .as-kicker {
  color: #dfb5a8;
}

body.as-client-signed-in .as-client-welcome h2 {
  max-width: 12ch;
  margin: 7px 0 12px;
  color: #fffdf9;
  font: 500 clamp(2.5rem, 5vw, 4.7rem)/0.94 Georgia, "Times New Roman", serif;
  letter-spacing: -0.045em;
  text-wrap: balance;
}

body.as-client-signed-in .as-client-welcome p:last-of-type {
  max-width: 46ch;
  margin: 0;
  color: rgba(255, 253, 249, 0.72);
  font-size: 0.98rem;
  line-height: 1.6;
}

body.as-client-signed-in .as-client-welcome__copy .as-button {
  width: max-content;
  margin-top: 24px;
  border-color: rgba(255, 253, 249, 0.32);
  background: rgba(255, 253, 249, 0.08);
  color: #fff;
}

.as-client-welcome__summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.as-client-welcome__summary a {
  display: grid;
  min-width: 0;
  min-height: 142px;
  align-content: end;
  padding: 18px;
  border: 1px solid rgba(255, 253, 249, 0.16);
  border-radius: 14px;
  background: rgba(255, 253, 249, 0.08);
  color: #fffdf9;
  text-decoration: none;
  transition: background 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.as-client-welcome__summary a:hover,
.as-client-welcome__summary a:focus-visible {
  border-color: rgba(255, 253, 249, 0.42);
  background: rgba(255, 253, 249, 0.14);
  outline: none;
  transform: translateY(-2px);
}

.as-client-welcome__summary strong {
  margin-bottom: 16px;
  font: 500 clamp(2.2rem, 4vw, 3.35rem)/0.85 Georgia, "Times New Roman", serif;
}

.as-client-welcome__summary span {
  font-size: 0.88rem;
  font-weight: 800;
}

.as-client-welcome__summary small {
  margin-top: 3px;
  overflow-wrap: normal;
  color: rgba(255, 253, 249, 0.62);
  font-size: 0.72rem;
  line-height: 1.35;
}

body.as-client-signed-in .as-client-flow-grid {
  grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
  gap: 14px !important;
}

body.as-client-signed-in .as-client-priority {
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 1fr) minmax(200px, 0.34fr);
  min-height: 260px;
  border-radius: 18px;
  background: linear-gradient(120deg, #f1e2db 0%, #fffaf5 74%);
  box-shadow: none;
}

body.as-client-signed-in .as-client-priority h3 {
  max-width: 14ch;
  margin-bottom: 1rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.25rem, 4.4vw, 4.25rem);
  font-weight: 400;
  line-height: 0.98;
  letter-spacing: -0.045em;
}

body.as-client-signed-in .as-client-priority::after {
  background: linear-gradient(135deg, transparent 58%, rgba(113, 61, 61, 0.08));
}

body.as-client-signed-in .as-appointment-panel {
  grid-column: span 7;
  min-width: 0;
  min-height: 0;
  align-content: start;
  border-color: var(--as-portal-line);
  border-radius: 18px;
  padding: clamp(20px, 2.5vw, 30px);
  background: var(--as-portal-surface);
  box-shadow: none;
}

body.as-client-signed-in .as-client-forms-group {
  grid-column: span 5;
  min-width: 0;
}

body.as-client-signed-in .as-client-start-card,
body.as-client-signed-in .as-client-history-card,
body.as-client-signed-in .as-client-dashboard .as-card {
  border-color: var(--as-portal-line);
  border-radius: 18px;
  background: var(--as-portal-surface);
  box-shadow: none;
}

/* Prevent appointment actions from claiming an auto-width column and
   squeezing service/date text down to one word per line. */
body.as-client-signed-in .as-client-appointment-item {
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  min-width: 0;
  padding: 16px;
  border-color: var(--as-portal-line);
  border-radius: 14px;
  background: #f8f3ed;
}

body.as-client-signed-in .as-client-appointment-item__main {
  grid-template-columns: 36px minmax(0, 1fr);
  min-width: 0;
  gap: 5px 10px;
}

body.as-client-signed-in .as-client-appointment-item__number {
  grid-row: 1 / 3;
  align-self: start;
  padding-top: 2px;
  color: var(--as-portal-wine);
}

body.as-client-signed-in .as-client-appointment-item strong,
body.as-client-signed-in .as-client-appointment-item small,
body.as-client-signed-in .as-client-appointment-manage__details dd {
  min-width: 0;
  overflow-wrap: normal;
  word-break: normal;
}

body.as-client-signed-in .as-client-appointment-item__actions {
  grid-column: 1 / -1;
  justify-content: flex-start;
  padding-left: 46px;
}

body.as-client-signed-in .as-client-appointment-item__actions .as-button,
body.as-client-signed-in .as-client-appointment-manage__actions .as-button {
  width: auto;
  min-width: 0;
  border-radius: 8px;
  white-space: nowrap;
}

body.as-client-signed-in .as-client-appointment-manage {
  min-width: 0;
  margin-top: 2px;
  border-radius: 12px;
}

body.as-client-signed-in .as-appointment-panel__side {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  padding: 0;
  border: 0;
  background: transparent;
}

body.as-client-signed-in .as-appointment-panel__side .as-button {
  width: auto;
  border-radius: 8px;
}

body.as-client-signed-in .as-client-dashboard {
  grid-column: 1 / -1;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 14px;
}

body.as-client-signed-in .as-client-dashboard .as-card,
body.as-client-signed-in .as-client-dashboard .as-client-dashboard__history,
body.as-client-signed-in .as-client-dashboard .as-client-dashboard__care,
body.as-client-signed-in .as-client-dashboard .as-client-dashboard__profile {
  grid-column: span 4;
  min-height: 230px;
  padding: 22px;
  background-image: none;
}

body.as-client-signed-in .as-client-dashboard .as-client-dashboard__history,
body.as-client-signed-in .as-client-dashboard .as-client-dashboard__care,
body.as-client-signed-in .as-client-dashboard .as-client-dashboard__profile {
  background: linear-gradient(145deg, #fffdf9, #f5ece4);
}

@media (max-width: 1040px) {
  body.as-client-signed-in .as-client-welcome {
    grid-template-columns: 1fr;
  }

  .as-client-welcome__summary {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .as-client-welcome__summary a {
    min-height: 124px;
  }

  body.as-client-signed-in .as-appointment-panel,
  body.as-client-signed-in .as-client-forms-group {
    grid-column: 1 / -1;
  }

  body.as-client-signed-in .as-client-dashboard .as-card,
  body.as-client-signed-in .as-client-dashboard .as-client-dashboard__history,
  body.as-client-signed-in .as-client-dashboard .as-client-dashboard__care,
  body.as-client-signed-in .as-client-dashboard .as-client-dashboard__profile {
    grid-column: span 6;
  }
}

/* Client portal shell refinement: give navigation, content, and booking-style
   appointment changes a shared editorial rhythm. */
body.as-client-signed-in > .as-header {
  display: grid;
  grid-template-columns: minmax(130px, 168px) minmax(0, 1fr) auto;
  grid-template-areas: "client-brand client-nav client-session";
  align-items: center;
  gap: 12px clamp(20px, 2.8vw, 44px);
  min-height: 82px;
  padding: 12px clamp(20px, 3vw, 48px);
}

body.as-client-signed-in > .as-header > .as-logo {
  grid-area: client-brand;
}

body.as-client-signed-in > .as-header .as-logo img {
  width: clamp(128px, 10vw, 164px) !important;
}

body.as-client-signed-in .as-client-portal-nav:not([hidden]) {
  grid-area: client-nav;
  justify-content: center;
  gap: clamp(12px, 1.45vw, 24px);
  margin: 0;
  overflow-x: auto;
  scroll-padding-inline: 12px;
}

body.as-client-signed-in .as-client-portal-nav a {
  min-height: 38px;
  padding: 11px 0 9px;
  font-size: clamp(10px, 0.72vw, 12px);
  letter-spacing: 0.035em;
  white-space: nowrap;
}

body.as-client-signed-in .as-client-portal-nav .as-client-portal-nav__external {
  margin-left: clamp(2px, 0.8vw, 12px);
  padding-left: clamp(12px, 1.3vw, 20px);
  box-shadow: inset 1px 0 0 var(--as-portal-line) !important;
}

body.as-client-signed-in > .as-header .as-header-auth {
  grid-area: client-session;
  justify-self: end;
  margin: 0;
}

body.as-client-signed-in > .as-header .as-staff-session--header {
  max-width: 240px;
  gap: 12px;
  border: 0;
  border-left: 1px solid var(--as-portal-line);
  padding: 0 0 0 18px;
  background: transparent;
}

body.as-client-signed-in > .as-header .as-staff-session--header span {
  max-width: 132px;
  color: var(--as-portal-muted);
  font-size: 0.72rem;
  font-weight: 600;
}

body.as-client-signed-in > .as-header .as-staff-session--header .as-button {
  min-height: 38px;
  padding: 9px 12px;
  font-size: 0.68rem;
}

body.as-client-signed-in main,
body.as-client-signed-in .as-client-private-content {
  width: min(1240px, calc(100% - clamp(28px, 5vw, 72px)));
  max-width: 1240px;
}

body.as-client-signed-in #client-mode {
  padding-top: clamp(14px, 2vw, 24px);
}

body.as-client-signed-in .as-client-private-content {
  gap: clamp(16px, 2vw, 24px);
  padding-top: 0;
}

body.as-client-signed-in .as-client-welcome {
  grid-template-columns: minmax(300px, 0.82fr) minmax(480px, 1.18fr);
  gap: 0;
  align-items: stretch;
  padding: 0;
}

body.as-client-signed-in .as-client-welcome__copy {
  display: flex;
  min-height: 286px;
  flex-direction: column;
  justify-content: center;
  padding: clamp(32px, 4vw, 52px);
}

body.as-client-signed-in .as-client-welcome h2 {
  max-width: 9ch;
  margin: 6px 0 10px;
  font-size: clamp(2.55rem, 4.6vw, 4.25rem);
  line-height: 0.94;
}

body.as-client-signed-in .as-client-welcome p:last-of-type {
  max-width: 38ch;
  font-size: 0.92rem;
  line-height: 1.55;
}

body.as-client-signed-in .as-client-welcome__copy .as-button {
  min-height: 42px;
  margin-top: 18px;
  padding: 10px 16px;
}

body.as-client-signed-in .as-client-welcome__summary {
  align-self: stretch;
}

body.as-client-signed-in .as-client-welcome__summary a {
  min-height: 112px;
  padding: clamp(16px, 2vw, 22px);
}

body.as-client-signed-in .as-client-welcome__summary strong {
  margin-bottom: 8px;
  font-size: clamp(1.85rem, 3vw, 2.5rem);
}

body.as-client-signed-in .as-client-flow-grid,
body.as-client-signed-in .as-client-dashboard {
  gap: clamp(14px, 1.7vw, 20px) !important;
}

body.as-client-signed-in .as-appointment-panel,
body.as-client-signed-in .as-client-start-card,
body.as-client-signed-in .as-client-history-card {
  padding: clamp(22px, 2.5vw, 30px);
}

body.as-client-signed-in .as-client-start-card {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px;
}

body.as-client-signed-in .as-client-start-card .as-button {
  min-width: 150px;
  align-self: start;
  white-space: nowrap;
}

body.as-client-signed-in .as-client-history-card {
  margin-top: clamp(12px, 1.5vw, 18px);
}

body.as-client-signed-in .as-client-appointment-manage__actions .as-button,
body.as-client-signed-in .as-client-appointment-item__actions .as-button {
  min-height: 40px;
  padding: 10px 14px;
  font-size: 0.7rem;
}

.as-client-reschedule {
  gap: 0;
  border-top: 1px solid var(--as-portal-line);
  padding-top: 20px;
}

.as-client-reschedule summary {
  width: fit-content;
  color: var(--as-portal-ink);
  font-size: 1rem;
  font-weight: 750;
  letter-spacing: -0.01em;
}

.as-client-reschedule > p {
  max-width: 58ch;
  margin: 8px 0 18px;
  font-size: 0.82rem;
  line-height: 1.5;
}

.as-client-reschedule__date-picker {
  display: grid;
  gap: 10px;
}

.as-client-reschedule__date-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  color: var(--as-portal-muted);
  font-size: 0.7rem;
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.as-client-reschedule__date-native {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--as-portal-muted);
  font-size: 0.7rem;
  font-weight: 650;
  letter-spacing: 0;
  text-transform: none;
}

.as-client-reschedule__date-native input {
  width: 132px;
  min-height: 34px;
  border: 1px solid var(--as-portal-line);
  padding: 6px 8px;
  background: var(--as-portal-surface);
  font-size: 0.76rem;
}

.as-client-reschedule__date-shell {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) 38px;
  gap: 7px;
  align-items: stretch;
}

.as-client-reschedule__date-nav {
  display: grid;
  min-height: 58px;
  place-items: center;
  border: 1px solid var(--as-portal-line);
  background: transparent;
  color: var(--as-portal-ink);
  padding: 0;
  font: 400 1.8rem/1 var(--as-current-site-font);
  cursor: pointer;
}

.as-client-reschedule__date-nav:disabled {
  cursor: default;
  opacity: 0.32;
}

.as-client-reschedule__date-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 7px;
}

.as-client-reschedule__date-strip button {
  display: grid;
  min-height: 58px;
  place-items: center;
  border: 1px solid var(--as-portal-line);
  background: rgba(255, 253, 249, 0.42);
  color: var(--as-portal-ink);
  padding: 6px 4px;
  cursor: pointer;
}

.as-client-reschedule__date-strip button[aria-pressed="true"] {
  border-color: var(--as-portal-ink);
  background: var(--as-portal-ink);
  color: var(--as-portal-surface);
}

.as-client-reschedule__date-strip :is(span, small) {
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1;
  opacity: 0.72;
}

.as-client-reschedule__date-strip strong {
  font-size: 1.05rem;
  line-height: 1;
}

.as-client-reschedule__status {
  min-height: 1.35em;
  margin: 13px 0 9px;
  color: var(--as-portal-muted);
  font-size: 0.76rem;
}

.as-client-reschedule__slots {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(92px, 1fr));
  gap: 7px;
  max-height: 250px;
  overflow-y: auto;
  padding: 0 5px 2px 0;
  scrollbar-width: thin;
}

.as-client-reschedule__slots:empty {
  display: none;
}

.as-client-reschedule__slots button {
  display: grid;
  min-height: 42px;
  place-items: center;
  border: 1px solid var(--as-portal-line);
  background: transparent;
  color: var(--as-portal-ink);
  padding: 8px 9px;
  font: inherit;
  font-size: 0.74rem;
  font-weight: 700;
  cursor: pointer;
}

.as-client-reschedule__slots button:hover,
.as-client-reschedule__slots button:focus-visible,
.as-client-reschedule__slots button[aria-pressed="true"] {
  border-color: var(--as-portal-ink);
  background: var(--as-portal-ink);
  color: var(--as-portal-surface);
}

.as-client-reschedule__selection {
  position: sticky;
  bottom: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  margin: 0 0 12px;
  border-top: 1px solid var(--as-portal-line);
  border-bottom: 1px solid var(--as-portal-line);
  padding: 13px 0;
  background: var(--as-portal-paper);
}

.as-client-reschedule__selection[hidden] {
  display: none;
}

.as-client-reschedule__selection > div {
  display: grid;
  gap: 3px;
}

.as-client-reschedule__selection small {
  color: var(--as-portal-muted);
  font-size: 0.64rem;
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.as-client-reschedule__selection strong {
  font-size: 0.88rem;
}

body.as-client-signed-in .as-client-reschedule__selection .as-button {
  min-height: 40px;
  padding: 10px 14px;
  font-size: 0.68rem;
  white-space: nowrap;
}

@media (max-width: 1280px) {
  body.as-client-signed-in > .as-header {
    grid-template-columns: minmax(130px, 1fr) auto;
    grid-template-areas:
      "client-brand client-session"
      "client-nav client-nav";
    gap: 6px 24px;
    padding-bottom: 0;
  }

  body.as-client-signed-in .as-client-portal-nav:not([hidden]) {
    width: 100%;
    justify-content: flex-start;
    border-top: 1px solid var(--as-portal-line);
  }

  body.as-client-signed-in .as-client-portal-nav .as-client-portal-nav__external {
    margin-left: auto;
  }
}

@media (max-width: 960px) {
  body.as-client-signed-in .as-client-welcome {
    grid-template-columns: 1fr;
  }

  body.as-client-signed-in .as-client-welcome__copy {
    min-height: 0;
  }

  body.as-client-signed-in .as-client-welcome__summary {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  body.as-client-signed-in .as-client-welcome__summary a {
    min-height: 104px;
  }
}

@media (max-width: 700px) {
  body.as-client-signed-in > .as-header {
    padding: 9px 12px 0;
  }

  body.as-client-signed-in > .as-header .as-logo img {
    width: 116px !important;
  }

  body.as-client-signed-in .as-client-portal-nav:not([hidden]) {
    gap: 20px;
  }

  body.as-client-signed-in .as-client-portal-nav .as-client-portal-nav__external {
    margin-left: 0;
  }

  body.as-client-signed-in .as-client-start-card {
    grid-template-columns: 1fr;
  }

  body.as-client-signed-in .as-client-start-card .as-button {
    min-width: 0;
  }

  .as-client-reschedule__date-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 7px;
  }

  .as-client-reschedule__date-native {
    width: 100%;
    justify-content: space-between;
  }

  .as-client-reschedule__date-shell {
    grid-template-columns: 32px minmax(0, 1fr) 32px;
    gap: 5px;
  }

  .as-client-reschedule__date-strip {
    gap: 4px;
  }

  .as-client-reschedule__date-nav,
  .as-client-reschedule__date-strip button {
    min-height: 52px;
  }

  .as-client-reschedule__slots {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .as-client-reschedule__selection {
    grid-template-columns: 1fr;
  }

  body.as-client-signed-in .as-client-reschedule__selection .as-button {
    width: 100%;
  }
}

@media (max-width: 520px) {
  body.as-client-signed-in > .as-header .as-staff-session--header span {
    display: none;
  }

  body.as-client-signed-in > .as-header .as-staff-session--header {
    border-left: 0;
    padding-left: 0;
  }

  body.as-client-signed-in .as-client-welcome__summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  body.as-client-signed-in .as-logo {
    order: 1;
  }

  body.as-client-signed-in .as-header-auth {
    order: 2;
    margin-left: auto;
  }

  body.as-client-signed-in .as-client-portal-nav:not([hidden]) {
    order: 3;
  }

  body.as-client-signed-in .as-client-welcome {
    padding: 24px 18px;
    border-radius: 18px;
  }

  body.as-client-signed-in .as-client-welcome h2 {
    font-size: clamp(2.35rem, 12vw, 3.6rem);
  }

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

  body.as-client-signed-in .as-client-priority {
    grid-template-columns: 1fr;
    min-height: 0;
    padding: 24px 18px;
  }

  body.as-client-signed-in .as-client-appointment-item__actions {
    padding-left: 0;
  }

  body.as-client-signed-in .as-client-appointment-item__actions .as-button,
  body.as-client-signed-in .as-client-appointment-manage__actions .as-button,
  body.as-client-signed-in .as-appointment-panel__side .as-button {
    flex: 1 1 190px;
  }

  body.as-client-signed-in .as-client-appointment-manage__details {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.as-client-signed-in .as-client-dashboard .as-card,
  body.as-client-signed-in .as-client-dashboard .as-client-dashboard__history,
  body.as-client-signed-in .as-client-dashboard .as-client-dashboard__care,
  body.as-client-signed-in .as-client-dashboard .as-client-dashboard__profile {
    grid-column: 1 / -1;
  }
}

@media (max-width: 440px) {
  .as-client-welcome__summary a {
    min-height: 116px;
    padding: 14px;
  }

  body.as-client-signed-in .as-client-appointment-manage__details {
    grid-template-columns: 1fr;
  }
}

/* Client account and website-style footer. */
body.as-client-signed-in .as-client-dashboard .as-client-account {
  grid-column: 1 / -1;
  display: grid;
  gap: 26px;
  min-height: 0;
  padding: clamp(22px, 3vw, 38px);
  background: #fffdf9;
}

body.as-client-signed-in .as-client-dashboard .as-client-account[hidden],
.as-client-profile-form[hidden] {
  display: none !important;
}

.as-client-account__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--as-portal-line);
}

.as-client-account__header-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
}

.as-client-dashboard__list--interactive {
  margin: 16px 0 0;
  padding: 0;
  list-style: none;
}

.as-client-dashboard__list--interactive > .as-client-record {
  overflow: hidden;
  padding: 0;
  border: 1px solid var(--as-portal-line);
  border-radius: 12px;
  background: #fffdf9;
}

.as-client-dashboard__list--interactive > .as-client-record:last-child {
  border-bottom: 1px solid var(--as-portal-line);
}

.as-client-record__trigger {
  width: 100%;
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border: 0;
  padding: 15px 16px;
  background: transparent;
  color: var(--as-portal-ink);
  font: inherit;
  font-weight: 750;
  line-height: 1.4;
  text-align: left;
  cursor: pointer;
}

.as-client-record__trigger:hover,
.as-client-record__trigger:focus-visible,
.as-client-record__trigger[aria-expanded="true"] {
  background: #f5ece4;
}

.as-client-record__trigger:focus-visible {
  outline: 2px solid var(--as-portal-wine);
  outline-offset: -2px;
}

.as-client-record__indicator {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 1px solid currentColor;
  border-radius: 999px;
  color: var(--as-portal-wine);
  font-size: 1.15rem;
  line-height: 1;
}

.as-client-record__detail {
  display: grid;
  gap: 10px;
  padding: 16px;
  border-top: 1px solid var(--as-portal-line);
  background: #fff;
}

.as-client-record__detail[hidden] {
  display: none;
}

.as-client-record__detail :is(p, ul) {
  margin: 0;
}

.as-client-record__detail ul {
  display: grid;
  gap: 6px;
  padding-left: 20px;
}

.as-client-record__action {
  justify-self: start;
  margin-top: 4px;
  color: var(--as-portal-wine);
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 4px;
}

body.as-client-signed-in .as-client-dashboard .as-client-dashboard__orders {
  grid-column: 1 / -1;
  min-height: 0;
}

.as-client-orders {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}

.as-client-order-card {
  display: grid;
  gap: 18px;
  padding: clamp(18px, 2.5vw, 28px);
  border: 1px solid var(--as-portal-line);
  border-radius: 16px;
  background: #fffdf9;
}

.as-client-order-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}

.as-client-order-card__header > div {
  display: grid;
  gap: 4px;
}

.as-client-order-card__header strong {
  font: 500 clamp(1.35rem, 2.6vw, 2rem)/1 Georgia, "Times New Roman", serif;
}

.as-client-order-card__header span:not(.as-client-order-status),
.as-client-order-card__items {
  color: var(--as-portal-muted);
}

.as-client-order-card__items {
  margin: 0;
  line-height: 1.6;
}

.as-client-order-card__total {
  justify-self: end;
  font: 500 clamp(1.7rem, 3vw, 2.45rem)/1 Georgia, "Times New Roman", serif;
}

.as-client-order-card__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding-top: 16px;
  border-top: 1px solid var(--as-portal-line);
}

.as-client-order-card__receipt {
  margin-left: auto;
  color: var(--as-portal-wine);
  font-weight: 800;
  text-underline-offset: 4px;
}

.as-client-order-status {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  min-height: 30px;
  border-radius: 999px;
  padding: 6px 11px;
  background: #eee7df;
  color: #463d36;
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.as-client-order-status[data-order-status*="paid"],
.as-client-order-status[data-order-status*="delivered"],
.as-client-order-status[data-order-status*="picked-up"] {
  background: #e7eee1;
  color: #41533a;
}

.as-client-order-status[data-order-status*="progress"],
.as-client-order-status[data-order-status*="preparing"],
.as-client-order-status[data-order-status*="shipped"],
.as-client-order-status[data-order-status*="ready"] {
  background: #f3e7d4;
  color: #76542c;
}

.as-client-order-status[data-order-status*="cancel"],
.as-client-order-status[data-order-status*="attention"] {
  background: #f4dfdc;
  color: #7c3434;
}

.as-client-order-progress {
  display: grid;
  grid-template-columns: repeat(5, minmax(88px, 1fr));
  gap: 0;
  margin: 0;
  padding: 0;
  overflow-x: auto;
  list-style: none;
}

.as-client-order-progress li {
  position: relative;
  display: grid;
  justify-items: start;
  gap: 7px;
  min-width: 88px;
  color: #9a8e84;
  font-size: 0.68rem;
}

.as-client-order-progress li::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 8px;
  left: 16px;
  width: calc(100% - 2px);
  height: 2px;
  background: #ded4ca;
}

.as-client-order-progress li:last-child::before {
  display: none;
}

.as-client-order-progress li > span {
  position: relative;
  z-index: 1;
  display: block;
  width: 18px;
  height: 18px;
  border: 2px solid #c6b9ae;
  border-radius: 999px;
  background: #fffdf9;
}

.as-client-order-progress li:is(.is-complete, .is-current) {
  color: var(--as-portal-ink);
}

.as-client-order-progress li.is-complete::before,
.as-client-order-progress li.is-complete > span,
.as-client-order-progress li.is-current > span {
  border-color: var(--as-portal-wine);
  background: var(--as-portal-wine);
}

.as-client-order-progress li.is-current > span {
  box-shadow: inset 0 0 0 4px #fffdf9;
}

.as-client-order-progress strong {
  max-width: 12ch;
  font-weight: 750;
  line-height: 1.25;
}

body.as-client-order-modal-open {
  overflow: hidden;
}

.as-client-order-modal {
  position: fixed;
  z-index: 210;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 20px;
}

.as-client-order-modal[hidden] {
  display: none;
}

.as-client-order-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(24, 19, 16, 0.72);
  backdrop-filter: blur(5px);
}

.as-client-order-modal__panel {
  position: relative;
  z-index: 1;
  width: min(960px, 100%);
  max-height: calc(100dvh - 40px);
  overflow: auto;
  border: 1px solid var(--as-portal-line);
  border-radius: 20px;
  background: #fffdf9;
  box-shadow: 0 30px 90px rgba(21, 15, 12, 0.28);
}

.as-client-order-modal__header,
.as-client-order-modal__actions {
  position: sticky;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px clamp(18px, 3vw, 30px);
  background: rgba(255, 253, 249, 0.96);
  backdrop-filter: blur(14px);
}

.as-client-order-modal__header {
  top: 0;
  border-bottom: 1px solid var(--as-portal-line);
}

.as-client-order-modal__header h2 {
  margin: 3px 0 0;
  font: 500 clamp(1.65rem, 3vw, 2.5rem)/1 Georgia, "Times New Roman", serif;
}

.as-client-order-modal__close {
  min-height: 42px;
  border: 1px solid var(--as-portal-ink);
  border-radius: 999px;
  padding: 9px 15px;
  background: transparent;
  color: var(--as-portal-ink);
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

.as-client-order-modal__actions {
  bottom: 0;
  justify-content: flex-end;
  border-top: 1px solid var(--as-portal-line);
}

.as-client-order-invoice {
  display: grid;
  gap: 24px;
  padding: clamp(22px, 4vw, 42px);
  background: #fff;
  color: var(--as-portal-ink);
}

.as-client-order-invoice__masthead,
.as-client-order-invoice__title,
.as-client-order-invoice__lower {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 28px;
}

.as-client-order-invoice__masthead {
  padding-bottom: 20px;
  border-bottom: 1px solid var(--as-portal-line);
}

.as-client-order-invoice__masthead img {
  width: 150px;
  height: auto;
}

.as-client-order-invoice__masthead address {
  color: var(--as-portal-muted);
  font-size: 0.78rem;
  font-style: normal;
  line-height: 1.55;
  text-align: right;
}

.as-client-order-invoice__title h3 {
  margin: 4px 0 0;
  font: 500 clamp(2rem, 4vw, 3.4rem)/1 Georgia, "Times New Roman", serif;
}

.as-client-order-invoice__meta {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}

.as-client-order-invoice__meta > div {
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--as-portal-line);
  border-radius: 10px;
}

.as-client-order-invoice :is(dt, h4) {
  color: var(--as-portal-muted);
  font-size: 0.68rem;
  font-weight: 850;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.as-client-order-invoice dd {
  margin: 4px 0 0;
  overflow-wrap: anywhere;
  font-weight: 750;
}

.as-client-order-invoice__lines {
  width: 100%;
  border-collapse: collapse;
}

.as-client-order-invoice__lines th,
.as-client-order-invoice__lines td {
  border-bottom: 1px solid var(--as-portal-line);
  padding: 11px 8px;
  text-align: left;
  vertical-align: top;
}

.as-client-order-invoice__lines th {
  color: var(--as-portal-muted);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.as-client-order-invoice__lines :is(th, td):not(:first-child) {
  text-align: right;
}

.as-client-order-invoice__lines small {
  display: block;
  margin-top: 3px;
  color: var(--as-portal-muted);
}

.as-client-order-invoice__empty {
  color: var(--as-portal-muted);
  text-align: center !important;
}

.as-client-order-invoice__lower {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 0.55fr);
}

.as-client-order-invoice__details {
  display: grid;
  gap: 16px;
}

.as-client-order-invoice__details h4,
.as-client-order-invoice__details p,
.as-client-order-invoice__totals h4,
.as-client-order-invoice__totals dl {
  margin: 0;
}

.as-client-order-invoice__details p {
  margin-top: 5px;
  color: var(--as-portal-muted);
  line-height: 1.55;
}

.as-client-order-invoice__totals dl > div {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 5px 0;
}

.as-client-order-invoice__totals dl > .is-total {
  margin-top: 7px;
  border-top: 1px solid var(--as-portal-line);
  padding-top: 11px;
  font-size: 1.08rem;
}

.as-client-order-invoice__receipt,
.as-client-order-invoice__note {
  margin: 0;
}

.as-client-order-invoice__receipt a {
  color: var(--as-portal-wine);
  font-weight: 800;
}

.as-client-order-invoice__note {
  border-top: 1px solid var(--as-portal-line);
  padding-top: 16px;
  color: var(--as-portal-muted);
  font-size: 0.76rem;
}

.as-client-order-print-frame {
  position: fixed;
  width: 1px;
  height: 1px;
  border: 0;
  opacity: 0;
  pointer-events: none;
}

body.as-client-order-print {
  margin: 0;
  background: #fff;
}

.as-client-account__header h3 {
  max-width: 760px;
  margin: 0 0 10px;
  font: 400 clamp(2rem, 4.2vw, 4rem)/0.98 Georgia, "Times New Roman", serif;
  letter-spacing: -0.045em;
}

.as-client-profile-form {
  display: grid;
  gap: 24px;
}

.as-client-profile-form fieldset {
  min-width: 0;
  margin: 0;
  border: 0;
  padding: 0;
}

.as-client-profile-form legend,
.as-client-payment-methods h4,
.as-site-footer h2 {
  margin: 0 0 14px;
  font-size: 0.78rem;
  font-weight: 850;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.as-client-profile-form__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.as-client-profile-form label {
  display: grid;
  gap: 7px;
  min-width: 0;
  color: var(--as-portal-muted);
  font-size: 0.76rem;
  font-weight: 800;
}

.as-client-profile-form__wide {
  grid-column: span 2;
}

.as-client-profile-form :is(input, select) {
  width: 100%;
  min-width: 0;
  min-height: 48px;
  border: 1px solid var(--as-portal-line);
  border-radius: 10px;
  padding: 10px 12px;
  background: #fff;
  color: var(--as-portal-ink);
  font: inherit;
  font-weight: 600;
}

.as-client-profile-form__checks {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 24px;
  margin-top: 14px;
}

.as-client-profile-form__checks label {
  display: flex;
  grid-template-columns: none;
  flex-direction: row;
  align-items: center;
}

.as-client-profile-form__checks input {
  width: 18px;
  min-height: 18px;
}

.as-client-profile-form__actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--as-portal-line);
}

.as-client-profile-form__actions p {
  margin: 0;
  color: var(--as-portal-muted);
}

.as-client-payment-methods {
  display: grid;
  gap: 18px;
  padding: clamp(20px, 2.5vw, 30px);
  border-radius: 16px;
  background: #f5ece4;
}

.as-client-payment-methods h4 {
  margin-bottom: 8px;
  color: var(--as-portal-wine);
}

.as-client-payment-methods__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.as-client-payment-methods__list article,
.as-client-payment-methods__empty {
  display: grid;
  gap: 5px;
  min-width: 0;
  min-height: 118px;
  padding: 16px;
  border: 1px solid rgba(113, 61, 61, 0.16);
  border-radius: 12px;
  background: #fffdf9;
}

.as-client-payment-methods__list article strong {
  color: var(--as-portal-wine);
  font-size: 0.76rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.as-client-payment-methods__list article span {
  font: 400 1.65rem/1 Georgia, "Times New Roman", serif;
}

.as-client-payment-methods__list article small,
.as-client-payment-methods__empty span {
  color: var(--as-portal-muted);
  line-height: 1.45;
}

.as-client-payment-methods > .as-button {
  justify-self: start;
}

.as-site-footer {
  width: 100%;
  margin-top: clamp(56px, 8vw, 120px);
  padding: clamp(42px, 6vw, 76px) clamp(20px, 5vw, 72px) 24px;
  border-top: 1px solid rgba(255, 253, 249, 0.14);
  background: #211b18;
  color: #fffaf5;
}

body[data-staff-route] .as-site-footer,
body.as-mode-staff.as-staff-signed-in .as-site-footer,
body.as-mode-staff.as-chart-selected .as-site-footer {
  display: none;
}

.as-site-footer__inner {
  width: min(1380px, 100%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(260px, 1.6fr) repeat(3, minmax(150px, 0.7fr));
  gap: clamp(32px, 5vw, 84px);
}

.as-site-footer__brand,
.as-site-footer nav,
.as-site-footer__visit {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 11px;
}

.as-site-footer__brand img {
  display: block;
  width: 156px;
  height: auto;
  filter: invert(1);
}

.as-site-footer__brand p,
.as-site-footer__visit p {
  max-width: 320px;
  margin: 4px 0 10px;
  color: rgba(255, 250, 245, 0.66);
  line-height: 1.6;
}

.as-site-footer h2 {
  color: #d8a496;
}

.as-site-footer a {
  color: #fffaf5;
  text-decoration: none;
  text-underline-offset: 4px;
}

.as-site-footer nav a:hover,
.as-site-footer__visit a:hover,
.as-site-footer__legal a:hover {
  text-decoration: underline;
}

.as-site-footer .as-button {
  margin-top: 4px;
  border-color: rgba(255, 250, 245, 0.5);
  background: #fffaf5;
  color: #211b18;
}

.as-site-footer__legal {
  width: min(1380px, 100%);
  margin: clamp(38px, 5vw, 70px) auto 0;
  display: flex;
  flex-wrap: wrap;
  gap: 14px 26px;
  padding-top: 22px;
  border-top: 1px solid rgba(255, 253, 249, 0.14);
  color: rgba(255, 250, 245, 0.56);
  font-size: 0.78rem;
}

.as-site-footer__legal a {
  color: inherit;
}

@media (max-width: 1000px) {
  .as-client-profile-form__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .as-client-payment-methods__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

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

@media (max-width: 620px) {
  .as-client-account__header,
  .as-client-profile-form__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .as-client-profile-form__grid,
  .as-client-payment-methods__list,
  .as-site-footer__inner {
    grid-template-columns: 1fr;
  }

  .as-client-profile-form__wide {
    grid-column: auto;
  }

  .as-client-profile-form__actions .as-button {
    width: 100%;
  }

  .as-client-account__header-actions {
    align-items: stretch;
  }

  .as-client-account__header-actions .as-button {
    width: 100%;
  }

  .as-client-order-modal {
    padding: 0;
  }

  .as-client-order-modal__panel {
    width: 100%;
    max-height: 100dvh;
    border: 0;
    border-radius: 0;
  }

  .as-client-order-modal__header,
  .as-client-order-modal__actions,
  .as-client-order-card__header,
  .as-client-order-invoice__masthead,
  .as-client-order-invoice__title {
    align-items: stretch;
    flex-direction: column;
  }

  .as-client-order-modal__actions .as-button,
  .as-client-order-card__actions .as-button {
    width: 100%;
  }

  .as-client-order-card__receipt {
    width: 100%;
    margin-left: 0;
  }

  .as-client-order-card__total {
    justify-self: start;
  }

  .as-client-order-progress {
    grid-template-columns: 1fr;
    gap: 7px;
    overflow: visible;
  }

  .as-client-order-progress li {
    grid-template-columns: 18px minmax(0, 1fr);
    align-items: center;
    justify-items: start;
    gap: 10px;
    min-width: 0;
    min-height: 24px;
  }

  .as-client-order-progress li::before {
    top: 17px;
    left: 8px;
    width: 2px;
    height: calc(100% + 7px);
  }

  .as-client-order-progress strong {
    max-width: none;
  }

  .as-client-order-invoice {
    padding: 20px 16px;
  }

  .as-client-order-invoice__masthead address {
    text-align: left;
  }

  .as-client-order-invoice__meta,
  .as-client-order-invoice__lower {
    grid-template-columns: 1fr;
  }

  .as-client-order-invoice__lines {
    font-size: 0.76rem;
  }

  .as-site-footer {
    padding-inline: 22px;
  }

  .as-site-footer__legal {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media print {
  body.as-client-order-print .as-client-order-invoice {
    gap: 0.16in;
    padding: 0;
    font-size: 9.5pt;
  }

  body.as-client-order-print .as-client-order-progress {
    overflow: visible;
  }

  body.as-client-order-print .as-client-order-invoice__masthead img {
    width: 1.35in;
  }

  body.as-client-order-print .as-client-order-invoice__title h3 {
    font-size: 24pt;
  }

  body.as-client-order-print .as-client-order-invoice__meta {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  body.as-client-order-print .as-client-order-invoice__lower {
    grid-template-columns: minmax(0, 1fr) minmax(2.1in, 0.55fr);
    break-inside: avoid;
  }

  body.as-client-order-print .as-client-order-invoice__lines tr {
    break-inside: avoid;
  }
}

/* Client portal refinement: quieter editorial hierarchy, deliberate square
   geometry, and detail-heavy records revealed only after the client asks. */
#client-section-orders[hidden],
#client-section-profile[hidden] {
  display: none !important;
}

body.as-client-signed-in .as-client-welcome {
  border-color: var(--as-portal-line);
  border-radius: 0;
  background: linear-gradient(115deg, #eee2d6 0%, #f8f3ed 72%);
  color: var(--as-portal-ink);
  box-shadow: none;
}

body.as-client-signed-in .as-client-welcome .as-kicker {
  color: var(--as-portal-wine);
}

body.as-client-signed-in .as-client-welcome h2 {
  color: var(--as-portal-ink);
  font-size: clamp(2.35rem, 4.2vw, 4rem);
}

body.as-client-signed-in .as-client-welcome p:last-of-type {
  color: var(--as-portal-muted);
}

body.as-client-signed-in .as-client-welcome__copy .as-button {
  border-color: var(--as-portal-ink);
  border-radius: 0;
  background: transparent;
  color: var(--as-portal-ink);
}

body.as-client-signed-in .as-client-welcome__summary {
  gap: 0;
  border-top: 1px solid var(--as-portal-line);
  border-left: 1px solid var(--as-portal-line);
}

body.as-client-signed-in .as-client-welcome__summary a {
  min-height: 124px;
  border: 0;
  border-right: 1px solid var(--as-portal-line);
  border-bottom: 1px solid var(--as-portal-line);
  border-radius: 0;
  background: rgba(255, 253, 249, 0.46);
  color: var(--as-portal-ink);
}

body.as-client-signed-in .as-client-welcome__summary a:hover,
body.as-client-signed-in .as-client-welcome__summary a:focus-visible {
  background: rgba(255, 253, 249, 0.9);
  transform: none;
}

body.as-client-signed-in .as-client-welcome__summary strong {
  margin-bottom: 12px;
  font-size: clamp(1.9rem, 3vw, 2.65rem);
}

body.as-client-signed-in .as-client-welcome__summary small {
  color: var(--as-portal-muted);
}

body.as-client-signed-in .as-client-priority {
  min-height: 220px;
  border-radius: 0;
  background: #f0e4d8;
}

body.as-client-signed-in .as-client-priority::after {
  display: none;
}

body.as-client-signed-in .as-client-priority h3 {
  font-size: clamp(2.15rem, 3.5vw, 3.3rem);
  line-height: 1;
}

body.as-client-signed-in :is(
  .as-appointment-panel,
  .as-client-start-card,
  .as-client-history-card,
  .as-client-dashboard .as-card,
  .as-client-appointment-item,
  .as-client-appointment-manage,
  .as-client-payment-methods,
  .as-client-payment-methods__list article,
  .as-client-payment-methods__empty
) {
  border-radius: 0;
}

body.as-client-signed-in .as-button,
body.as-client-signed-in .as-status-pill,
body.as-client-signed-in .as-icon-button {
  border-radius: 0;
}

.as-client-appointment-manage {
  gap: 18px;
  border-top: 1px solid var(--as-portal-line);
  padding-top: 20px;
  background: transparent;
}

.as-client-appointment-manage:focus {
  outline: none;
}

.as-client-appointment-manage:focus-visible {
  outline: 1px solid var(--as-portal-wine);
  outline-offset: 3px;
}

.as-client-appointment-manage__header > div {
  display: grid;
  gap: 5px;
}

.as-client-appointment-manage__heading {
  display: flex !important;
  flex-direction: column;
  gap: 5px;
  align-items: flex-start;
}

.as-client-appointment-manage__details {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.as-client-appointment-manage__details > div {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.as-client-reschedule {
  border-top: 1px solid var(--as-portal-line);
  border-bottom: 1px solid var(--as-portal-line);
  padding: 16px 0;
}

.as-client-reschedule summary {
  color: var(--as-portal-ink);
  font-weight: 800;
  cursor: pointer;
}

.as-client-reschedule > p {
  margin: 8px 0 14px;
  color: var(--as-portal-muted);
  font-size: 0.82rem;
}

.as-client-reschedule__controls {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: end;
}

.as-client-reschedule__controls label {
  display: grid;
  gap: 6px;
  color: var(--as-portal-muted);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.as-client-reschedule__controls input {
  min-height: 42px;
  border: 1px solid var(--as-portal-line);
  border-radius: 0;
  padding: 8px 10px;
  background: var(--as-portal-surface);
  color: var(--as-portal-ink);
}

.as-client-reschedule__status {
  min-height: 1.4em;
  margin: 12px 0 0;
  color: var(--as-portal-muted);
  font-size: 0.78rem;
}

.as-client-reschedule__slots {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 8px;
  margin-top: 10px;
}

.as-client-reschedule__slots:empty {
  display: none;
}

.as-client-reschedule__slots button {
  min-height: 42px;
  border: 1px solid var(--as-portal-line);
  border-radius: 0;
  padding: 8px 10px;
  background: transparent;
  color: var(--as-portal-ink);
  font: inherit;
  font-size: 0.76rem;
  font-weight: 750;
  cursor: pointer;
}

.as-client-reschedule__slots button:hover,
.as-client-reschedule__slots button:focus-visible {
  border-color: var(--as-portal-ink);
  background: var(--as-portal-ink);
  color: var(--as-portal-surface);
}

body.as-client-signed-in .as-client-dashboard .as-client-dashboard__orders {
  border-radius: 0;
  padding: clamp(22px, 3vw, 34px);
  background: var(--as-portal-surface);
}

body.as-client-signed-in .as-client-dashboard .as-client-dashboard__orders > h3 {
  font-size: clamp(1.7rem, 2.7vw, 2.25rem);
}

body.as-client-signed-in .as-client-dashboard .as-client-dashboard__orders .as-client-dashboard__intro {
  margin-bottom: 14px;
}

.as-client-dashboard__intro {
  max-width: 62ch;
  color: var(--as-portal-muted);
}

.as-client-orders {
  gap: 0;
  border-top: 1px solid var(--as-portal-line);
}

.as-client-order-card {
  grid-template-columns: minmax(175px, .9fr) minmax(180px, 1.25fr) auto auto;
  grid-template-areas:
    "header items total actions";
  align-items: center;
  gap: 10px 20px;
  padding: 13px 0;
  border: 0;
  border-bottom: 1px solid var(--as-portal-line);
  border-radius: 0;
  background: transparent;
}

.as-client-order-card__header {
  grid-area: header;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 10px;
}

body.as-mode-client .as-client-order-card__header strong {
  font-family: var(--as-current-site-font) !important;
  font-size: 0.9rem;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.025em;
  white-space: nowrap;
}

.as-client-order-card__header > div {
  gap: 2px;
}

.as-client-order-card__header span:not(.as-client-order-status) {
  font-size: 0.76rem;
}

.as-client-order-card__items {
  grid-area: items;
  overflow: hidden;
  font-size: 0.8rem;
  line-height: 1.4;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.as-client-order-card__total {
  grid-area: total;
  align-self: center;
  font-family: inherit;
  font-size: 0.94rem;
  font-weight: 750;
  white-space: nowrap;
}

.as-client-order-card__actions {
  grid-area: actions;
  flex-wrap: nowrap;
  gap: 7px;
  padding-top: 0;
  border-top: 0;
}

body.as-client-signed-in .as-client-order-card__actions .as-button {
  min-height: 32px;
  border-color: var(--as-portal-line);
  border-radius: 0;
  padding: 6px 9px;
  background: transparent;
  color: var(--as-portal-ink);
  font-size: 0.68rem;
  letter-spacing: 0.04em;
}

body.as-client-signed-in .as-client-order-status {
  min-height: 0;
  gap: 7px;
  border: 0;
  border-radius: 0;
  padding: 0;
  background: transparent !important;
  color: var(--as-portal-muted) !important;
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.01em;
  text-transform: none;
}

body.as-client-signed-in .as-client-order-status::before {
  content: "";
  width: 7px;
  height: 7px;
  background: #a28b73;
}

body.as-client-signed-in .as-client-order-status[data-order-status*="paid"]::before,
body.as-client-signed-in .as-client-order-status[data-order-status*="delivered"]::before,
body.as-client-signed-in .as-client-order-status[data-order-status*="picked-up"]::before {
  background: #637255;
}

body.as-client-signed-in .as-client-order-status[data-order-status*="cancel"]::before,
body.as-client-signed-in .as-client-order-status[data-order-status*="attention"]::before {
  background: #8c4d49;
}

@media (max-width: 900px) {
  .as-client-order-card {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "header total" "items actions";
  }

  .as-client-order-card__actions {
    justify-content: flex-end;
  }
}

@media (max-width: 620px) {
  .as-client-order-card {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "header total" "items items" "actions actions";
    gap: 7px 12px;
    padding: 13px 0;
  }

  .as-client-order-card__header {
    align-items: flex-start;
    text-align: left;
  }

  .as-client-order-card__items {
    white-space: normal;
  }

  .as-client-order-card__actions,
  body.as-client-signed-in .as-client-order-card__actions .as-button {
    width: auto;
  }

  .as-client-order-card__actions {
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .as-client-order-card__receipt {
    width: auto;
    margin-left: 0;
  }

  .as-client-appointment-manage__details {
    grid-template-columns: 1fr;
  }

  .as-client-reschedule__controls,
  .as-client-reschedule__controls .as-button,
  .as-client-reschedule__controls label,
  .as-client-reschedule__controls input {
    width: 100%;
  }
}

/* Final authenticated-client density overrides. */
body.as-client-signed-in .as-client-welcome {
  grid-template-columns: minmax(300px, 0.82fr) minmax(480px, 1.18fr);
  gap: 0;
  align-items: stretch;
  padding: 0;
}

body.as-client-signed-in .as-client-welcome__summary a {
  min-height: 112px;
  padding: clamp(16px, 2vw, 22px);
}

body.as-client-signed-in .as-client-welcome__summary strong {
  margin-bottom: 8px;
  font-size: clamp(1.85rem, 3vw, 2.5rem);
}

.as-client-reschedule {
  gap: 0;
  border-top: 1px solid var(--as-portal-line);
  padding-top: 20px;
}

.as-client-reschedule summary {
  width: fit-content;
  color: var(--as-portal-ink);
  font-size: 1rem;
  font-weight: 750;
  letter-spacing: -0.01em;
}

.as-client-reschedule > p {
  max-width: 58ch;
  margin: 8px 0 18px;
  font-size: 0.82rem;
  line-height: 1.5;
}

.as-client-reschedule__date-picker {
  display: grid;
  gap: 10px;
}

.as-client-reschedule__date-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  color: var(--as-portal-muted);
  font-size: 0.7rem;
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.as-client-reschedule__date-native {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--as-portal-muted);
  font-size: 0.7rem;
  font-weight: 650;
  letter-spacing: 0;
  text-transform: none;
}

.as-client-reschedule__date-native input {
  width: 132px;
  min-height: 34px;
  border: 1px solid var(--as-portal-line);
  padding: 6px 8px;
  background: var(--as-portal-surface);
  font-size: 0.76rem;
}

.as-client-reschedule__date-shell {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) 38px;
  gap: 7px;
  align-items: stretch;
}

.as-client-reschedule__date-nav {
  display: grid;
  min-height: 58px;
  place-items: center;
  border: 1px solid var(--as-portal-line);
  background: transparent;
  color: var(--as-portal-ink);
  padding: 0;
  font: 400 1.8rem/1 var(--as-current-site-font);
  cursor: pointer;
}

.as-client-reschedule__date-nav:disabled {
  cursor: default;
  opacity: 0.32;
}

.as-client-reschedule__date-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 7px;
}

.as-client-reschedule__date-strip button {
  display: grid;
  min-height: 58px;
  place-items: center;
  border: 1px solid var(--as-portal-line);
  background: rgba(255, 253, 249, 0.42);
  color: var(--as-portal-ink);
  padding: 6px 4px;
  cursor: pointer;
}

.as-client-reschedule__date-strip button[aria-pressed="true"] {
  border-color: var(--as-portal-ink);
  background: var(--as-portal-ink);
  color: var(--as-portal-surface);
}

.as-client-reschedule__date-strip :is(span, small) {
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1;
  opacity: 0.72;
}

.as-client-reschedule__date-strip strong {
  font-size: 1.05rem;
  line-height: 1;
}

.as-client-reschedule__status {
  min-height: 1.35em;
  margin: 13px 0 9px;
  color: var(--as-portal-muted);
  font-size: 0.76rem;
}

.as-client-reschedule__slots {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(92px, 1fr));
  gap: 7px;
  max-height: 250px;
  overflow-y: auto;
  padding: 0 5px 2px 0;
  scrollbar-width: thin;
}

.as-client-reschedule__slots:empty {
  display: none;
}

.as-client-reschedule__slots button {
  display: grid;
  min-height: 42px;
  place-items: center;
  border: 1px solid var(--as-portal-line);
  background: transparent;
  color: var(--as-portal-ink);
  padding: 8px 9px;
  font: inherit;
  font-size: 0.74rem;
  font-weight: 700;
  cursor: pointer;
}

.as-client-reschedule__slots button:hover,
.as-client-reschedule__slots button:focus-visible,
.as-client-reschedule__slots button[aria-pressed="true"] {
  border-color: var(--as-portal-ink);
  background: var(--as-portal-ink);
  color: var(--as-portal-surface);
}

.as-client-reschedule__selection {
  position: sticky;
  bottom: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  margin: 0 0 12px;
  border-top: 1px solid var(--as-portal-line);
  border-bottom: 1px solid var(--as-portal-line);
  padding: 13px 0;
  background: var(--as-portal-paper);
}

.as-client-reschedule__selection[hidden] {
  display: none;
}

.as-client-reschedule__selection > div {
  display: grid;
  gap: 3px;
}

.as-client-reschedule__selection small {
  color: var(--as-portal-muted);
  font-size: 0.64rem;
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.as-client-reschedule__selection strong {
  font-size: 0.88rem;
}

body.as-client-signed-in .as-client-reschedule__selection .as-button {
  min-height: 40px;
  padding: 10px 14px;
  font-size: 0.68rem;
  white-space: nowrap;
}

@media (max-width: 1280px) {
  body.as-client-signed-in .as-client-portal-nav a:nth-child(n),
  body.as-client-signed-in > .as-header .as-staff-session--header span {
    display: block;
  }
}

@media (max-width: 960px) {
  body.as-client-signed-in .as-client-welcome {
    grid-template-columns: 1fr;
  }

  body.as-client-signed-in .as-client-welcome__summary {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  body.as-client-signed-in .as-client-appointment-manage__details {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 12px;
  }

  body.as-client-signed-in .as-client-appointment-item__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    padding-left: 0;
  }

  body.as-client-signed-in .as-client-appointment-item__actions .as-button {
    width: 100%;
    min-width: 0;
    padding-inline: 8px;
    font-size: 0.64rem;
  }

  body.as-client-signed-in .as-client-appointment-manage__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.as-client-signed-in .as-client-appointment-manage__actions .as-button {
    width: 100%;
    min-width: 0;
    padding-inline: 8px;
    font-size: 0.62rem;
  }

  body.as-client-signed-in .as-client-appointment-manage__actions .as-button:last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }

  .as-client-reschedule__date-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 7px;
  }

  .as-client-reschedule__date-native {
    width: 100%;
    justify-content: space-between;
  }

  .as-client-reschedule__date-shell {
    grid-template-columns: 32px minmax(0, 1fr) 32px;
    gap: 5px;
  }

  .as-client-reschedule__date-strip {
    gap: 4px;
  }

  .as-client-reschedule__date-nav,
  .as-client-reschedule__date-strip button {
    min-height: 52px;
  }

  .as-client-reschedule__slots {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .as-client-reschedule__selection {
    grid-template-columns: 1fr;
  }

  body.as-client-signed-in .as-client-reschedule__selection .as-button {
    width: 100%;
  }
}

@media (max-width: 520px) {
  body.as-client-signed-in .as-client-welcome__summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Selected client portal direction: Visit Agenda.
   Mobile is the source layout; larger screens expand into a calm editorial
   workspace without restoring the former dashboard grid. */
body.as-client-signed-in {
  --as-agenda-ink: #181714;
  --as-agenda-muted: #716d67;
  --as-agenda-wine: #7d3436;
  --as-agenda-paper: #fbf8f3;
  --as-agenda-soft: #f4e9df;
  --as-agenda-line: #d8cbc0;
  background: var(--as-agenda-paper);
}

body.as-client-signed-in > .as-header {
  position: sticky;
  top: 0;
  z-index: 60;
  display: grid;
  grid-template-columns: minmax(150px, 190px) minmax(0, 1fr) auto;
  grid-template-areas: "agenda-brand agenda-nav agenda-account";
  min-height: 86px;
  gap: 18px 34px;
  padding: 12px clamp(24px, 4vw, 64px);
  border-bottom: 1px solid var(--as-agenda-line);
  background: rgba(251, 248, 243, 0.98);
}

body.as-client-signed-in > .as-header > .as-logo {
  grid-area: agenda-brand;
}

body.as-client-signed-in > .as-header .as-logo img {
  width: clamp(148px, 13vw, 190px) !important;
}

body.as-client-signed-in .as-client-portal-nav:not([hidden]) {
  grid-area: agenda-nav;
  display: flex;
  width: auto;
  justify-content: center;
  gap: clamp(18px, 2vw, 32px);
  overflow: visible;
  border: 0;
  padding: 0;
  background: transparent;
}

body.as-client-signed-in .as-client-portal-nav > a,
body.as-client-signed-in .as-client-portal-nav__more > summary {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  border: 0;
  border-bottom: 1px solid transparent;
  padding: 12px 0 9px;
  background: transparent;
  color: var(--as-agenda-muted);
  font: 600 12px/1.2 var(--as-current-site-font);
  letter-spacing: 0.035em;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  list-style: none;
}

body.as-client-signed-in .as-client-portal-nav__more > summary::-webkit-details-marker {
  display: none;
}

body.as-client-signed-in .as-client-portal-nav > a:hover,
body.as-client-signed-in .as-client-portal-nav > a:focus-visible,
body.as-client-signed-in .as-client-portal-nav > a.is-active,
body.as-client-signed-in .as-client-portal-nav__more > summary:hover,
body.as-client-signed-in .as-client-portal-nav__more > summary:focus-visible,
body.as-client-signed-in .as-client-portal-nav__more[open] > summary {
  border-bottom-color: var(--as-agenda-wine);
  color: var(--as-agenda-ink);
}

body.as-client-signed-in .as-client-portal-nav__more {
  position: relative;
}

body.as-client-signed-in .as-client-portal-nav__more > div {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 70;
  display: grid;
  width: 240px;
  border: 1px solid var(--as-agenda-line);
  background: var(--as-agenda-paper);
}

body.as-client-signed-in .as-client-portal-nav__more > div a {
  min-height: 48px;
  border: 0;
  border-bottom: 1px solid var(--as-agenda-line);
  padding: 14px 16px;
  background: transparent;
  color: var(--as-agenda-ink);
  font-size: 13px;
  text-decoration: none;
}

body.as-client-signed-in .as-client-portal-nav__more > div a:last-child {
  border-bottom: 0;
}

body.as-client-signed-in .as-client-portal-nav__more > div a:hover,
body.as-client-signed-in .as-client-portal-nav__more > div a:focus-visible,
body.as-client-signed-in .as-client-portal-nav__more > div a.is-active {
  background: var(--as-agenda-soft);
}

body.as-client-signed-in > .as-header .as-header-auth {
  grid-area: agenda-account;
  justify-self: end;
}

body.as-client-signed-in > .as-header .as-staff-session--header {
  gap: 12px;
  border: 0;
  border-left: 1px solid var(--as-agenda-line);
  padding: 0 0 0 18px;
  background: transparent;
}

body.as-client-signed-in > .as-header .as-staff-session--header span {
  color: var(--as-agenda-muted);
  font-size: 13px;
  font-weight: 600;
}

body.as-client-signed-in > .as-header .as-staff-session--header .as-button {
  min-height: 42px;
  padding: 10px 14px;
  font-size: 10px;
}

body.as-client-signed-in main,
body.as-client-signed-in .as-client-private-content {
  width: min(1220px, calc(100% - clamp(32px, 6vw, 96px)));
  max-width: 1220px;
}

body.as-client-signed-in #client-mode {
  padding-top: 0;
}

body.as-client-signed-in .as-client-private-content {
  gap: 0;
  padding: 0 0 clamp(56px, 8vw, 112px);
}

body.as-client-signed-in .as-client-private-content > .as-section-heading {
  display: none !important;
}

body.as-client-signed-in .as-client-welcome {
  display: block;
  border: 0;
  border-bottom: 1px solid var(--as-agenda-line);
  padding: clamp(22px, 3vw, 34px) 0;
  background: transparent;
  color: var(--as-agenda-ink);
}

body.as-client-signed-in .as-client-welcome[hidden] {
  display: none !important;
}

body.as-client-signed-in .as-client-welcome__copy {
  display: grid;
  min-height: 0;
  gap: 8px;
  padding: 0;
}

body.as-client-signed-in .as-client-welcome .as-kicker {
  display: none;
}

body.as-client-signed-in .as-client-welcome h2 {
  max-width: none;
  margin: 0;
  color: var(--as-agenda-wine);
  font-family: var(--as-current-site-font) !important;
  font-size: clamp(18px, 2vw, 24px);
  font-weight: 650;
  line-height: 1.3;
  letter-spacing: 0.01em;
}

body.as-client-signed-in .as-client-welcome p:last-of-type {
  max-width: 58ch;
  margin: 0;
  color: var(--as-agenda-muted);
  font-size: 15px;
  line-height: 1.5;
}

body.as-client-signed-in .as-client-flow-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(300px, 0.72fr) !important;
  gap: 0 !important;
  align-items: stretch;
}

body.as-client-signed-in .as-client-flow-grid > [hidden] {
  display: none !important;
}

body.as-client-signed-in.as-client-priority-collapsed .as-appointment-panel {
  grid-column: 1 / -1;
  border-right: 0;
}

body.as-client-signed-in .as-appointment-panel {
  grid-column: 1;
  display: grid;
  grid-template-columns: 126px minmax(0, 1fr);
  align-content: start;
  gap: 0;
  min-height: 410px;
  border: 0;
  border-right: 1px solid var(--as-agenda-line);
  border-bottom: 1px solid var(--as-agenda-line);
  padding: clamp(34px, 5vw, 64px) clamp(30px, 4vw, 56px) clamp(34px, 5vw, 64px) 0;
  background: transparent;
}

body.as-client-signed-in .as-client-agenda-date {
  display: flex;
  min-height: 248px;
  flex-direction: column;
  align-items: flex-start;
  gap: 9px;
  border-right: 1px solid var(--as-agenda-wine);
  padding: 6px 28px 0 0;
  color: var(--as-agenda-ink);
  font-family: var(--as-current-site-font);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

body.as-client-signed-in .as-client-agenda-date strong {
  color: var(--as-agenda-wine);
  font-family: var(--as-display-font);
  font-size: 62px;
  font-weight: 500;
  line-height: 0.92;
  letter-spacing: -0.04em;
}

body.as-client-signed-in .as-client-agenda-date small {
  font-size: 12px;
  letter-spacing: 0.12em;
}

body.as-client-signed-in .as-client-agenda-appointment {
  min-width: 0;
  padding-left: clamp(26px, 4vw, 54px);
}

body.as-client-signed-in .as-client-agenda-appointment .as-kicker {
  margin: 3px 0 20px;
  color: var(--as-agenda-wine);
}

body.as-client-signed-in .as-appointment-panel h3 {
  max-width: 17ch;
  margin: 0 0 22px;
  color: var(--as-agenda-ink);
  font-family: var(--as-display-font) !important;
  font-size: clamp(38px, 4.2vw, 58px);
  font-weight: 500;
  line-height: 0.98;
  letter-spacing: -0.035em;
}

body.as-client-signed-in .as-appointment-panel #next-appointment-detail {
  max-width: 58ch;
  margin: 0;
  color: var(--as-agenda-muted);
  font-size: 15px;
  line-height: 1.65;
}

body.as-client-signed-in .as-appointment-panel__side {
  display: grid;
  grid-template-columns: auto minmax(190px, 1fr) auto;
  gap: 12px 18px;
  align-items: center;
  margin-top: 26px;
  border-top: 1px solid var(--as-agenda-line);
  padding-top: 14px;
}

body.as-client-signed-in .as-appointment-panel__side .as-status-pill {
  min-height: 0;
  justify-content: flex-start;
  border: 0;
  padding: 0;
  background: transparent;
  color: var(--as-agenda-wine);
  font-size: 13px;
  font-weight: 650;
  letter-spacing: 0;
  text-transform: none;
}

body.as-client-signed-in .as-appointment-panel__side .as-button {
  width: 100%;
  min-height: 48px;
  justify-content: flex-start;
  border: 0;
  padding: 13px 0;
  background: transparent;
  color: var(--as-agenda-ink);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0;
  text-align: left;
  text-transform: none;
}

body.as-client-signed-in .as-client-refresh-link {
  min-height: 44px;
  border: 0;
  background: transparent;
  color: var(--as-agenda-muted);
  padding: 10px 0;
  font: 600 12px/1.2 var(--as-current-site-font);
  text-decoration: underline;
  text-underline-offset: 4px;
  cursor: pointer;
}

body.as-client-signed-in .as-client-appointment-list {
  grid-column: 1 / -1;
  margin-top: 26px;
  border-top: 1px solid var(--as-agenda-line);
  padding-top: 24px;
}

body.as-client-signed-in .as-client-appointment-item--manage-only {
  border: 0;
  padding: 0;
  background: transparent;
}

body.as-client-signed-in .as-client-appointment-item--manage-only > .as-client-appointment-manage {
  border: 0;
  padding: 0;
}

body.as-client-signed-in .as-client-priority {
  grid-column: 2;
  display: grid;
  grid-template-columns: 1fr;
  align-content: center;
  gap: 28px;
  min-height: 410px;
  border: 0;
  border-bottom: 1px solid var(--as-agenda-line);
  padding: clamp(34px, 5vw, 64px) clamp(28px, 4vw, 52px);
  background: var(--as-agenda-soft);
}

body.as-client-signed-in .as-client-priority::after {
  display: none;
}

body.as-client-signed-in .as-client-priority .as-kicker {
  color: var(--as-agenda-wine);
}

body.as-client-signed-in .as-client-priority h3 {
  max-width: 14ch;
  margin: 12px 0 12px;
  color: var(--as-agenda-ink);
  font-size: clamp(30px, 3.2vw, 44px);
  line-height: 1;
}

body.as-client-signed-in .as-client-priority p:not(.as-kicker) {
  max-width: 36ch;
  margin: 0;
  color: var(--as-agenda-muted);
  font-size: 15px;
  line-height: 1.55;
}

body.as-client-signed-in .as-client-priority__actions {
  display: grid;
  gap: 10px;
}

body.as-client-signed-in .as-client-priority__actions > .as-button {
  width: 100%;
  min-height: 50px;
  border-color: var(--as-agenda-wine);
  background: var(--as-agenda-wine);
  color: #fff;
}

body.as-client-signed-in .as-client-records-index {
  grid-column: 1 / -1;
  border-bottom: 1px solid var(--as-agenda-line);
  background: transparent;
}

body.as-client-signed-in .as-client-mobile-priority-action {
  display: none;
}

body.as-client-signed-in .as-client-records-index > .as-kicker {
  margin: 0;
  border-bottom: 1px solid var(--as-agenda-line);
  padding: 18px 0;
  color: var(--as-agenda-wine);
}

body.as-client-signed-in .as-client-welcome__summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
  border: 0;
  background: transparent;
}

body.as-client-signed-in .as-client-welcome__summary a {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  min-height: 128px;
  align-content: center;
  gap: 6px;
  border: 0;
  border-right: 1px solid var(--as-agenda-line);
  padding: 22px clamp(14px, 2vw, 24px);
  background: transparent;
  color: var(--as-agenda-ink);
  text-decoration: none;
}

body.as-client-signed-in .as-client-welcome__summary a:last-child {
  border-right: 0;
}

body.as-client-signed-in .as-client-welcome__summary a:hover,
body.as-client-signed-in .as-client-welcome__summary a:focus-visible {
  background: var(--as-agenda-soft);
  transform: none;
}

body.as-client-signed-in .as-client-welcome__summary span {
  color: var(--as-agenda-ink);
  font-family: var(--as-display-font);
  font-size: clamp(22px, 2.2vw, 30px);
  line-height: 1;
}

body.as-client-signed-in .as-client-welcome__summary small {
  color: var(--as-agenda-muted);
  font-size: 12px;
  line-height: 1.35;
}

body.as-client-signed-in .as-client-welcome__summary small strong {
  display: inline;
  margin: 0;
  color: inherit;
  font-family: inherit !important;
  font-size: inherit;
  font-weight: 700;
  letter-spacing: inherit;
}

body.as-client-signed-in .as-client-welcome__summary b {
  margin-top: 6px;
  color: var(--as-agenda-wine);
  font-family: var(--as-current-site-font);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

body.as-client-signed-in .as-client-forms-group,
body.as-client-signed-in .as-client-dashboard {
  grid-column: 1 / -1;
  width: 100%;
  margin-top: clamp(28px, 4vw, 52px);
}

body.as-client-signed-in .as-client-forms-group {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
  gap: 0;
  border: 1px solid var(--as-agenda-line);
}

body.as-client-signed-in .as-client-forms-group > .as-card {
  border: 0;
  border-right: 1px solid var(--as-agenda-line);
  padding: clamp(28px, 4vw, 48px);
  background: transparent;
}

body.as-client-signed-in .as-client-forms-group > .as-card:last-child {
  border-right: 0;
}

body.as-client-signed-in .as-client-dashboard {
  display: block;
  border: 0;
  background: transparent;
}

body.as-client-signed-in .as-client-dashboard > :is(.as-card, article) {
  width: 100%;
  min-height: 0;
  border: 1px solid var(--as-agenda-line);
  padding: clamp(28px, 4vw, 48px);
  background: transparent;
}

body.as-client-signed-in .as-client-dashboard > :is(.as-card, article)[hidden] {
  display: none !important;
}

body.as-client-signed-in .as-client-dashboard h3,
body.as-client-signed-in .as-client-forms-group h3 {
  margin: 8px 0 16px;
  font-size: clamp(34px, 4vw, 50px);
  line-height: 1;
}

body.as-client-signed-in .as-client-account__header,
body.as-client-signed-in .as-client-payment-methods {
  gap: 24px;
}

/* Client records use the same crisp, editorial geometry as the public and
   education experiences. Legacy portal cards and form controls stay square. */
body.as-client-signed-in .as-client-private-content :is(
  .as-card,
  .as-intake-list__item,
  .as-intake-browser__detail,
  .as-intake-summary,
  .as-intake-section,
  .as-client-appointment-item,
  .as-client-appointment-manage,
  .as-client-order-card,
  .as-client-payment-methods article,
  fieldset,
  input,
  select,
  textarea,
  button,
  .as-button,
  .as-status-pill
) {
  border-radius: 0 !important;
  box-shadow: none !important;
}

body.as-client-signed-in .as-appointment-panel__side,
body.as-client-signed-in > .as-header .as-header-auth__menu,
body.as-client-signed-in > .as-header .as-staff-session--header {
  border-radius: 0 !important;
}

@media (max-width: 980px) {
  body.as-client-signed-in > .as-header {
    grid-template-columns: minmax(138px, 1fr) auto;
    grid-template-areas:
      "agenda-brand agenda-account"
      "agenda-nav agenda-nav";
    gap: 4px 24px;
    padding-bottom: 0;
  }

  body.as-client-signed-in .as-client-portal-nav:not([hidden]) {
    width: 100%;
    justify-content: flex-start;
    border-top: 1px solid var(--as-agenda-line);
  }

  body.as-client-signed-in .as-client-flow-grid {
    grid-template-columns: 1fr !important;
  }

  body.as-client-signed-in .as-appointment-panel,
  body.as-client-signed-in .as-client-priority {
    grid-column: 1;
    border-right: 0;
  }

  body.as-client-signed-in .as-client-priority {
    min-height: 0;
  }

  body.as-client-signed-in .as-client-welcome__summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  body.as-client-signed-in .as-client-welcome__summary a:nth-child(3) {
    border-right: 0;
  }

  body.as-client-signed-in .as-client-welcome__summary a:nth-child(n + 4) {
    border-top: 1px solid var(--as-agenda-line);
  }
}

@media (min-width: 761px) {
  body.as-client-signed-in .as-mobile-menu-toggle {
    display: none !important;
  }
}

@media (max-width: 760px) {
  body.as-client-signed-in.as-client-menu-open {
    overflow: hidden;
  }

  body.as-client-signed-in > .as-header {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "agenda-brand agenda-account";
    min-height: 70px;
    gap: 16px;
    padding: 8px 14px;
  }

  body.as-client-signed-in > .as-header .as-logo img {
    width: 112px !important;
  }

  body.as-client-signed-in .as-mobile-menu-toggle {
    display: inline-flex !important;
    min-width: 76px;
    min-height: 48px;
    border: 1px solid var(--as-agenda-ink);
    padding: 11px 14px;
    background: transparent;
    color: var(--as-agenda-ink);
    font-size: 12px;
    letter-spacing: 0.12em;
  }

  body.as-client-signed-in .as-client-portal-nav:not([hidden]) {
    position: fixed;
    inset: 70px 0 0;
    z-index: 65;
    display: none;
    align-content: start;
    width: 100%;
    max-height: none;
    overflow-y: auto;
    padding: 18px 18px 104px;
    border-top: 1px solid var(--as-agenda-line);
    background: var(--as-agenda-paper);
  }

  body.as-client-signed-in.as-client-menu-open .as-client-portal-nav:not([hidden]) {
    display: grid !important;
    gap: 0;
  }

  body.as-client-signed-in .as-client-portal-nav > a,
  body.as-client-signed-in .as-client-portal-nav__more > summary {
    width: 100%;
    min-height: 56px;
    justify-content: flex-start;
    border-bottom: 1px solid var(--as-agenda-line);
    padding: 16px 4px;
    color: var(--as-agenda-ink);
    font-size: 16px;
    letter-spacing: 0;
  }

  body.as-client-signed-in .as-client-portal-nav__more > div {
    position: static;
    width: 100%;
    border: 0;
    background: var(--as-agenda-soft);
  }

  body.as-client-signed-in .as-client-portal-nav__more > div a {
    min-height: 52px;
    padding: 15px 18px;
    font-size: 15px;
  }

  body.as-client-signed-in > .as-header .as-header-auth__menu {
    position: fixed;
    inset: auto 0 0;
    z-index: 72;
    width: 100%;
    max-height: none;
    border: 0;
    border-top: 1px solid var(--as-agenda-line);
    padding: 12px 18px;
    background: var(--as-agenda-paper);
  }

  body.as-client-signed-in > .as-header .as-header-auth__menu > .as-nav,
  body.as-client-signed-in > .as-header .as-header-auth__menu > :not(#client-session-bar) {
    display: none !important;
  }

  body.as-client-signed-in > .as-header .as-header-auth.is-open .as-header-auth__menu {
    display: block;
  }

  body.as-client-signed-in > .as-header .as-staff-session--header {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    width: 100%;
    max-width: none;
    border: 0;
    padding: 0;
  }

  body.as-client-signed-in > .as-header .as-staff-session--header span {
    display: block !important;
    max-width: none;
  }

  body.as-client-signed-in main,
  body.as-client-signed-in .as-client-private-content {
    width: 100%;
    max-width: none;
  }

  body.as-client-signed-in .as-client-private-content {
    padding-bottom: 52px;
  }

  body.as-client-signed-in .as-client-welcome {
    padding: 11px 18px;
    background: var(--as-agenda-soft);
  }

  body.as-client-signed-in .as-client-welcome h2 {
    font-size: 14px;
  }

  body.as-client-signed-in .as-client-welcome p:last-of-type {
    display: none;
  }

  body.as-client-signed-in .as-appointment-panel {
    grid-template-columns: 76px minmax(0, 1fr);
    min-height: 0;
    padding: 14px 0 0 18px;
    border-bottom: 1px solid var(--as-agenda-line);
  }

  body.as-client-signed-in .as-client-agenda-date {
    min-height: 228px;
    gap: 6px;
    padding: 3px 14px 0 0;
    font-size: 9px;
  }

  body.as-client-signed-in .as-client-agenda-date strong {
    font-size: 42px;
  }

  body.as-client-signed-in .as-client-agenda-appointment {
    padding: 0 18px 18px 18px;
  }

  body.as-client-signed-in .as-client-agenda-appointment .as-kicker {
    margin-bottom: 12px;
  }

  body.as-client-signed-in .as-appointment-panel h3 {
    max-width: none;
    margin-bottom: 13px;
    font-size: clamp(22px, 5.7vw, 24px);
    line-height: 0.98;
  }

  body.as-client-signed-in .as-appointment-panel #next-appointment-detail {
    font-size: 12px;
    line-height: 1.45;
  }

  body.as-client-signed-in .as-appointment-panel__side {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 8px 14px;
    margin-top: 10px;
    padding-top: 4px;
  }

  body.as-client-signed-in .as-appointment-panel__side .as-status-pill {
    min-height: 40px;
    align-items: center;
    border-bottom: 0;
  }

  body.as-client-signed-in .as-appointment-panel__side .as-button {
    min-height: 40px;
    justify-content: flex-end;
    font-size: 13px;
  }

  body.as-client-signed-in .as-client-refresh-link {
    display: none;
  }

  body.as-client-signed-in .as-client-appointment-list {
    grid-column: 1 / -1;
    margin: 0;
    padding: 24px;
    background: var(--as-agenda-paper);
  }

  body.as-client-signed-in .as-client-priority {
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 0;
    min-height: 0;
    padding: 0 18px;
    background: transparent;
  }

  body.as-client-signed-in .as-client-priority > div:first-child {
    grid-column: 2;
    border-left: 1px solid var(--as-agenda-wine);
    padding: 14px 0 12px 18px;
  }

  body.as-client-signed-in .as-client-priority h3 {
    max-width: 18ch;
    margin: 5px 0 6px;
    font-size: 19px;
    line-height: 1;
  }

  body.as-client-signed-in .as-client-priority p:not(.as-kicker) {
    font-size: 10.5px;
    line-height: 1.35;
  }

  body.as-client-signed-in .as-client-priority__actions {
    display: none;
  }

  body.as-client-signed-in .as-client-priority__actions > .as-button {
    min-height: 54px;
  }

  body.as-client-signed-in .as-client-reschedule__date-strip {
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: 58px;
    overflow-x: auto;
    scrollbar-width: thin;
  }

  body.as-client-signed-in .as-client-records-index > .as-kicker {
    padding: 10px 18px;
    background: var(--as-agenda-soft);
  }

  body.as-client-signed-in .as-client-welcome__summary {
    display: block;
  }

  body.as-client-signed-in .as-client-welcome__summary a {
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 48px;
    gap: 4px 14px;
    border-right: 0;
    border-bottom: 1px solid var(--as-agenda-line);
    padding: 7px 18px;
  }

  body.as-client-signed-in .as-client-welcome__summary a:nth-child(n) {
    border-top: 0;
  }

  body.as-client-signed-in .as-client-welcome__summary span,
  body.as-client-signed-in .as-client-welcome__summary small {
    grid-column: 1;
  }

  body.as-client-signed-in .as-client-welcome__summary span {
    font-size: 17px;
  }

  body.as-client-signed-in .as-client-welcome__summary small {
    font-size: 10px;
  }

  body.as-client-signed-in .as-client-welcome__summary b {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
    margin: 0;
    font-size: 9px;
  }

  body.as-client-signed-in .as-client-mobile-priority-action:not([hidden]) {
    display: flex;
    width: calc(100% - 36px);
    min-height: 46px;
    justify-content: center;
    margin: 10px 18px 0;
    border-color: var(--as-agenda-wine);
    background: var(--as-agenda-wine);
    color: #fff;
  }

  body.as-client-signed-in .as-client-forms-group,
  body.as-client-signed-in .as-client-dashboard {
    margin-top: 0;
  }

  body.as-client-signed-in .as-client-forms-group {
    grid-template-columns: 1fr;
    border-right: 0;
    border-left: 0;
  }

  body.as-client-signed-in .as-client-forms-group > .as-card {
    border-right: 0;
    border-bottom: 1px solid var(--as-agenda-line);
    padding: 28px 24px;
  }

  body.as-client-signed-in .as-client-dashboard > :is(.as-card, article) {
    border-right: 0;
    border-left: 0;
    padding: 30px 24px;
  }

  body.as-client-signed-in .as-client-dashboard h3,
  body.as-client-signed-in .as-client-forms-group h3 {
    font-size: 34px;
  }

  body.as-client-signed-in .as-client-account__header {
    grid-template-columns: 1fr;
  }

  body.as-client-signed-in .as-client-account__header-actions,
  body.as-client-signed-in .as-client-payment-methods,
  body.as-client-signed-in .as-client-profile-form__grid {
    grid-template-columns: 1fr;
  }

  body.as-client-signed-in .as-client-account__header-actions .as-button,
  body.as-client-signed-in .as-client-payment-methods > .as-button {
    width: 100%;
  }
}

@media (max-width: 430px) {
  body.as-client-signed-in .as-appointment-panel {
    grid-template-columns: 76px minmax(0, 1fr);
    padding-left: 18px;
  }

  body.as-client-signed-in .as-client-agenda-date {
    min-height: 228px;
    padding-right: 14px;
  }

  body.as-client-signed-in .as-client-agenda-appointment {
    padding-right: 18px;
    padding-left: 18px;
  }

  body.as-client-signed-in .as-client-priority {
    grid-template-columns: 76px minmax(0, 1fr);
    padding-inline: 18px;
  }

  body.as-client-signed-in .as-client-priority > div:first-child {
    padding-left: 18px;
  }
}

/* Client portal information architecture refinement — wider desktop canvas,
   visit-based records, compact account data, and client-safe care language. */
@media (min-width: 981px) {
  body.as-client-signed-in main,
  body.as-client-signed-in .as-client-private-content {
    width: min(1540px, calc(100% - 64px));
    max-width: 1540px;
  }

  body.as-client-signed-in > .as-header {
    grid-template-columns: minmax(150px, 180px) minmax(0, 1fr) auto;
    gap: 18px 28px;
    padding-inline: clamp(24px, 2.6vw, 48px);
  }

  body.as-client-signed-in .as-client-portal-nav:not([hidden]) {
    gap: clamp(14px, 1.45vw, 26px);
  }

  body.as-client-signed-in .as-client-portal-nav > a,
  body.as-client-signed-in .as-client-portal-nav__more > summary {
    font-size: 11.5px;
  }
}

body.as-client-signed-in .as-client-portal-nav__more > div {
  display: flex !important;
  width: 260px;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
}

body.as-client-signed-in .as-client-portal-nav__more > div a {
  display: flex !important;
  width: 100% !important;
  align-items: center;
  justify-content: flex-start;
  margin: 0 !important;
  text-align: left;
}

body.as-client-signed-in .as-client-flow-grid:has(.as-client-priority[hidden]) {
  grid-template-columns: minmax(0, 1fr) !important;
}

body.as-client-signed-in .as-client-flow-grid:has(.as-client-priority[hidden]) > .as-appointment-panel {
  grid-column: 1 / -1;
  border-right: 0;
  padding-right: 0;
}

body.as-client-signed-in .as-client-forms-group {
  grid-template-columns: minmax(260px, 0.38fr) minmax(0, 1.62fr);
  align-items: start;
  gap: clamp(18px, 2.4vw, 34px);
  border: 0;
}

body.as-client-signed-in .as-client-forms-group > .as-card {
  border: 1px solid var(--as-agenda-line);
  padding: clamp(24px, 3vw, 38px);
}

body.as-client-signed-in .as-client-start-card {
  position: sticky;
  top: 112px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  height: max-content;
  align-self: start;
  align-content: start;
  justify-content: stretch;
  gap: 26px;
  background: var(--as-agenda-soft) !important;
}

body.as-client-signed-in .as-client-start-card h3 {
  max-width: 8ch;
  font-size: clamp(34px, 3.6vw, 48px);
}

body.as-client-signed-in .as-client-start-card .as-button {
  width: 100%;
}

body.as-client-signed-in .as-client-history-card .as-intake-browser {
  display: grid;
  grid-template-columns: minmax(250px, 0.72fr) minmax(0, 1.28fr);
  align-items: start;
  gap: 22px;
}

body.as-client-signed-in .as-client-history-card .as-intake-browser__header {
  grid-column: 1 / -1;
  margin: 0;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--as-agenda-line);
}

body.as-client-signed-in .as-client-history-card .as-intake-list {
  display: grid;
  align-content: start;
  gap: 8px;
  max-height: 70vh;
  overflow-y: auto;
  padding-right: 4px;
}

body.as-client-signed-in .as-client-history-card .as-intake-list__item {
  min-height: 0;
  padding: 14px;
}

body.as-client-signed-in .as-client-history-card .as-intake-summary {
  min-width: 0;
  margin: 0;
  border: 1px solid var(--as-agenda-line);
  padding: clamp(18px, 2.2vw, 28px);
}

body.as-client-signed-in .as-intake-summary__sections {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

body.as-client-signed-in .as-intake-section {
  min-height: 0;
  padding: 18px;
}

body.as-client-signed-in .as-client-dashboard > :is(.as-card, article) {
  padding: clamp(30px, 3.5vw, 52px);
}

body.as-client-signed-in .as-client-dashboard h3 {
  max-width: 18ch;
  font-size: clamp(38px, 4vw, 58px);
}

body.as-client-signed-in .as-client-dashboard__intro {
  margin: 0 0 30px;
  font-size: 15px;
  line-height: 1.6;
}

.as-client-visit-timeline {
  display: grid;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--as-agenda-line);
  list-style: none;
}

.as-client-visit-timeline__item {
  display: grid;
  grid-template-columns: minmax(130px, 0.24fr) minmax(0, 1fr);
  gap: clamp(22px, 4vw, 64px);
  padding: 26px 0;
  border-bottom: 1px solid var(--as-agenda-line);
}

.as-client-visit-timeline__item > time {
  color: var(--as-agenda-wine);
  font-size: 12px;
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.as-client-visit-timeline__item h4,
.as-client-care-card h4,
.as-client-product-history h4,
.as-client-rebook-plan h4,
.as-client-account__details h4 {
  margin: 0;
  color: var(--as-agenda-ink);
  font-family: var(--as-display-font);
  font-size: clamp(23px, 2.5vw, 34px);
  font-weight: 500;
  line-height: 1.06;
}

.as-client-visit-timeline__item > div > p,
.as-client-care-card header p,
.as-client-product-history header p {
  margin: 7px 0 0;
  color: var(--as-agenda-muted);
}

.as-client-visit-status {
  display: inline-flex;
  margin-top: 12px;
  color: #65745d;
  font-size: 11px;
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.as-client-visit-timeline__details {
  display: grid;
  gap: 6px;
  max-width: 82ch;
  margin-top: 15px;
}

.as-client-visit-timeline__details p {
  margin: 0;
  color: var(--as-agenda-muted);
  line-height: 1.55;
}

.as-client-care-grid,
.as-client-product-history {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.as-client-care-card,
.as-client-product-history > article {
  display: grid;
  align-content: start;
  gap: 18px;
  border: 1px solid var(--as-agenda-line);
  padding: clamp(20px, 2.6vw, 30px);
  background: #fff;
}

.as-client-care-card section {
  display: grid;
  gap: 6px;
  padding-top: 16px;
  border-top: 1px solid var(--as-agenda-line);
}

.as-client-care-card h5,
.as-client-product-history li strong {
  margin: 0;
  color: var(--as-agenda-wine);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.as-client-care-card section p {
  margin: 0;
  color: var(--as-agenda-muted);
  line-height: 1.55;
}

.as-client-product-history ul,
.as-client-favourite-list {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.as-client-product-history li {
  display: grid;
  gap: 4px;
  padding: 14px 0;
  border-bottom: 1px solid var(--as-agenda-line);
}

.as-client-product-history li:last-child {
  border-bottom: 0;
}

.as-client-product-history li span,
.as-client-favourite-list {
  color: var(--as-agenda-muted);
  font-size: 13px;
}

#client-favourite-colours {
  margin-top: 34px;
  padding-top: 26px;
  border-top: 1px solid var(--as-agenda-line);
}

#client-favourite-colours > h4 {
  margin: 0 0 14px;
  font-size: 22px;
}

.as-client-favourite-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.as-client-favourite-list li {
  border: 1px solid var(--as-agenda-line);
  padding: 12px 14px;
  background: #fff;
}

.as-client-rebook-plan {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(260px, 0.75fr);
  gap: 14px clamp(30px, 6vw, 90px);
  align-items: start;
  border-top: 1px solid var(--as-agenda-line);
  padding-top: 30px;
}

.as-client-rebook-plan > :not(dl):not(.as-button) {
  grid-column: 1;
}

.as-client-rebook-plan > p:not(.as-kicker) {
  max-width: 62ch;
  margin: 2px 0 14px;
  color: var(--as-agenda-muted);
  line-height: 1.6;
}

.as-client-rebook-plan dl {
  grid-column: 2;
  grid-row: 1 / span 4;
  margin: 0;
  border-top: 1px solid var(--as-agenda-line);
}

.as-client-rebook-plan dl > div {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--as-agenda-line);
}

.as-client-rebook-plan dt,
.as-client-rebook-plan dd {
  margin: 0;
}

.as-client-rebook-plan dt {
  color: var(--as-agenda-muted);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.as-client-rebook-plan .as-button {
  grid-column: 1;
  justify-self: start;
}

.as-client-section-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 18px;
}

.as-client-section-header .as-client-dashboard__intro {
  margin-bottom: 0;
}

body.as-client-signed-in .as-client-account__header h3 {
  max-width: 18ch;
  font-size: clamp(38px, 4vw, 56px);
}

.as-client-account__details {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  border: 1px solid var(--as-agenda-line);
}

.as-client-account__details article {
  min-width: 0;
  padding: 22px;
  border-right: 1px solid var(--as-agenda-line);
}

.as-client-account__details article:last-child {
  border-right: 0;
}

.as-client-account__details h4 {
  margin-top: 8px;
  overflow-wrap: anywhere;
  font-size: clamp(20px, 2vw, 28px);
}

.as-client-account__details article > p:last-child {
  margin: 10px 0 0;
  color: var(--as-agenda-muted);
  font-size: 13px;
  line-height: 1.5;
}

body.as-client-signed-in .as-client-payment-methods {
  border: 1px solid var(--as-agenda-line);
  padding: clamp(22px, 3vw, 34px);
  background: var(--as-agenda-soft);
}

body.as-client-signed-in .as-client-payment-methods__list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 980px) {
  body.as-client-signed-in .as-client-forms-group {
    grid-template-columns: 1fr;
  }

  body.as-client-signed-in .as-client-history-card .as-intake-browser,
  body.as-client-signed-in .as-client-care-grid,
  body.as-client-signed-in .as-client-product-history,
  body.as-client-signed-in .as-client-account__details,
  body.as-client-signed-in .as-client-rebook-plan {
    grid-template-columns: 1fr;
  }

  body.as-client-signed-in .as-client-start-card {
    position: static;
  }

  body.as-client-signed-in .as-client-history-card {
    margin-top: 0;
  }

  body.as-client-signed-in .as-client-rebook-plan dl,
  body.as-client-signed-in .as-client-rebook-plan .as-button,
  body.as-client-signed-in .as-client-rebook-plan > :not(dl):not(.as-button) {
    grid-column: 1;
    grid-row: auto;
  }

  body.as-client-signed-in .as-client-account__details article {
    border-right: 0;
    border-bottom: 1px solid var(--as-agenda-line);
  }

  body.as-client-signed-in .as-client-account__details article:last-child {
    border-bottom: 0;
  }
}

@media (max-width: 760px) {
  body.as-client-signed-in .as-client-portal-nav__more > div {
    width: 100%;
  }

  body.as-client-signed-in .as-client-forms-group {
    gap: 0;
  }

  body.as-client-signed-in .as-client-history-card .as-intake-browser {
    display: block;
  }

  body.as-client-signed-in .as-client-history-card .as-intake-list {
    max-height: none;
    margin: 18px 0;
  }

  body.as-client-signed-in .as-intake-summary__sections,
  body.as-client-signed-in .as-client-payment-methods__list,
  body.as-client-signed-in .as-client-favourite-list {
    grid-template-columns: 1fr;
  }

  .as-client-visit-timeline__item {
    grid-template-columns: 1fr;
    gap: 9px;
    padding: 22px 0;
  }

  .as-client-section-header {
    align-items: stretch;
    flex-direction: column;
  }

  .as-client-section-header .as-button {
    width: 100%;
  }
}

/* Appointment form and scheduling actions stay visible at the booking level. */
body.as-client-signed-in .as-client-appointment-form-status {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 6px 14px;
  align-items: baseline;
  max-width: 58ch;
  margin-top: 20px;
  border-left: 2px solid var(--as-agenda-wine);
  padding: 10px 14px;
  background: var(--as-agenda-soft);
  color: var(--as-agenda-muted);
  font-size: 13px;
  line-height: 1.45;
}

body.as-client-signed-in .as-client-appointment-form-status[hidden] {
  display: none !important;
}

body.as-client-signed-in .as-client-appointment-form-status strong {
  color: var(--as-agenda-wine);
  font-weight: 700;
}

body.as-client-signed-in .as-client-appointment-form-status.is-complete {
  border-left-color: var(--as-agenda-line);
  background: transparent;
}

body.as-client-signed-in .as-client-appointment-form-status.is-complete strong {
  color: var(--as-agenda-muted);
}

body.as-client-signed-in .as-appointment-panel__side {
  grid-template-columns: auto max-content max-content max-content auto;
  gap: 12px 16px;
}

body.as-client-signed-in #client-appointment-intake.as-button,
body.as-client-signed-in #client-appointment-reschedule.as-button,
body.as-client-signed-in #appointment-manage-link.as-button {
  width: auto;
  min-height: 42px;
  border-radius: 0;
  padding: 10px 14px;
  justify-content: center;
  white-space: nowrap;
}

body.as-client-signed-in #client-appointment-intake.as-button {
  border: 1px solid var(--as-agenda-ink);
  background: var(--as-agenda-ink);
  color: var(--as-agenda-paper);
}

body.as-client-signed-in #client-appointment-reschedule.as-button {
  border: 1px solid var(--as-agenda-wine);
  color: var(--as-agenda-wine);
}

body.as-client-signed-in #appointment-manage-link.as-button {
  padding-inline: 4px;
  color: var(--as-agenda-muted);
  text-decoration: underline;
  text-underline-offset: 4px;
}

body.as-client-signed-in .as-client-appointment-item__form-status {
  display: block;
  width: fit-content;
  margin-top: 6px;
  border-left: 2px solid var(--as-agenda-wine);
  padding-left: 9px;
  color: var(--as-agenda-wine);
  font-size: 12px;
  font-weight: 700;
}

body.as-client-signed-in .as-client-appointment-item__form-status.is-complete {
  border-left-color: var(--as-agenda-line);
  color: var(--as-agenda-muted);
}

body.as-client-signed-in .as-client-appointment-item__actions > [hidden] {
  display: none !important;
}

body.as-client-signed-in .as-client-reschedule h4 {
  margin: 0;
  color: var(--as-portal-ink);
  font-family: var(--as-current-site-font) !important;
  font-size: 1rem;
  font-weight: 750;
  letter-spacing: -0.01em;
}

body.as-client-signed-in .as-client-reschedule:focus-visible {
  outline: 1px solid var(--as-agenda-line);
  outline-offset: 4px;
}

@media (max-width: 1120px) {
  body.as-client-signed-in .as-appointment-panel__side {
    grid-template-columns: auto repeat(2, minmax(0, 1fr));
  }

  body.as-client-signed-in .as-appointment-panel__side .as-status-pill {
    grid-column: 1 / -1;
  }

  body.as-client-signed-in .as-client-refresh-link {
    justify-self: start;
  }
}

@media (max-width: 760px) {
  body.as-client-signed-in .as-client-appointment-form-status {
    grid-template-columns: 1fr;
    gap: 2px;
    margin-top: 12px;
    padding: 8px 10px;
    font-size: 11px;
  }

  body.as-client-signed-in .as-appointment-panel__side {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    padding-top: 10px;
  }

  body.as-client-signed-in .as-appointment-panel__side .as-status-pill {
    grid-column: 1 / -1;
    min-height: 28px;
  }

  body.as-client-signed-in #client-appointment-intake.as-button,
  body.as-client-signed-in #client-appointment-reschedule.as-button,
  body.as-client-signed-in #appointment-manage-link.as-button {
    width: 100%;
    min-height: 44px;
    padding: 9px 10px;
    justify-content: center;
    font-size: 12px;
    text-align: center;
  }

  body.as-client-signed-in #appointment-manage-link.as-button {
    grid-column: 1 / -1;
  }

  body.as-client-signed-in .as-client-appointment-manage__actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
  }

  body.as-client-signed-in .as-client-appointment-manage__actions .as-button {
    width: 100%;
    min-width: 0;
    min-height: 42px;
    padding: 8px 6px;
    font-size: 10.5px;
    letter-spacing: 0.04em;
    white-space: nowrap;
  }
}

/* Client entry and records share one container and explicit media/panel insets. */
body.as-mode-client {
  --as-client-gutter: clamp(20px, 3vw, 40px);
  --as-client-inset: clamp(20px, 3vw, 36px);
}
body.as-mode-client main {
  width: min(1280px, calc(100% - 2 * var(--as-client-gutter))) !important;
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: 0;
}
body.as-mode-client .as-client-private-content {
  width: 100% !important;
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
}
body.as-mode-client > .as-header {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  padding-inline: max(var(--as-client-gutter), calc((100vw - 1280px) / 2));
  height: auto;
  min-height: 86px;
  padding-block: 14px;
  align-items: center;
}
body.as-mode-client > .as-header .as-logo img { width: 160px !important; max-width: 100%; height: auto; }
body.as-mode-client main > .as-hero { display: none !important; }
body.as-mode-client #client-mode { padding-top: 32px; }
body.as-mode-client.as-client-signed-in .as-client-welcome { display: block; padding: 0 0 28px; background: transparent; text-align: left; }
body.as-mode-client.as-client-signed-in .as-client-welcome__copy { max-width: 70ch; text-align: left; align-items: start; }
body.as-mode-client.as-client-signed-in .as-client-welcome h2 { text-align: left; }
body.as-mode-client .as-client-login {
  width: 100%;
  max-width: 1040px;
  margin: 0 auto 48px;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  grid-template-areas: "visual copy" "visual form" "visual status";
  border-radius: 0;
  box-shadow: none;
}
body.as-mode-client .as-client-login__image { min-height: 470px; }
body.as-mode-client .as-client-login__image img { display: none; }
body.as-mode-client .as-client-login__copy { border: 0; padding: 36px 36px 12px; justify-content: start; }
body.as-mode-client .as-client-login__copy h2 { font-size: clamp(32px, 3.6vw, 46px); line-height: 1.08; max-width: 16ch; }
body.as-mode-client .as-client-login__copy p { font-size: 17px; line-height: 1.5; max-width: 40ch; }
body.as-mode-client .as-client-login .as-login-form { padding: 12px 36px 16px; align-content: start; }
body.as-mode-client .as-client-login > .as-search-status { padding: 0 36px 32px; font-size: 15px; line-height: 1.5; }
body.as-mode-client .as-login-form label { font-size: 14px; text-transform: none; letter-spacing: 0; }
body.as-mode-client .as-login-form input { font-size: 16px; min-height: 48px; }
body.as-mode-client .as-client-session-recovery { padding: 40px var(--as-client-inset); min-height: 220px; max-width: 65ch; margin: auto; }
body.as-mode-client.as-client-restoring #client-login,
body.as-mode-client.as-client-restoring #client-private-content,
body.as-mode-client.as-client-restoring #client-portal-nav { display: none !important; }
body.as-mode-client .as-client-session-recovery[hidden] { display: none; }
body.as-mode-client.as-client-signed-in .as-appointment-panel,
body.as-mode-client.as-client-signed-in .as-client-flow-grid:has(.as-client-priority[hidden]) > .as-appointment-panel {
  box-sizing: border-box;
  padding: var(--as-client-inset);
  min-height: 280px;
  background: var(--as-portal-paper, #f8f4ed);
}
body.as-mode-client.as-client-signed-in .as-appointment-panel[data-appointment-state="empty"],
body.as-mode-client.as-client-signed-in .as-client-flow-grid:has(.as-client-priority[hidden]) > .as-appointment-panel[data-appointment-state="empty"] {
  grid-template-columns: minmax(0, 1fr);
  min-height: 0;
}
body.as-mode-client.as-client-signed-in .as-appointment-panel[data-appointment-state="empty"] .as-client-agenda-date,
body.as-mode-client.as-client-signed-in .as-appointment-panel[data-appointment-state="empty"] .as-kicker,
body.as-mode-client.as-client-signed-in .as-appointment-panel[data-appointment-state="empty"] #square-sync-status { display: none; }
body.as-mode-client.as-client-signed-in .as-appointment-panel[data-appointment-state="empty"] .as-client-agenda-appointment { padding: 0; }
body.as-mode-client.as-client-signed-in .as-appointment-panel[data-appointment-state="empty"] h3 { font-size: clamp(28px, 3vw, 38px); line-height: 1.12; max-width: none; margin-bottom: 12px; }
body.as-mode-client.as-client-signed-in .as-appointment-panel[data-appointment-state="empty"] .as-appointment-panel__side { margin-top: 20px; padding-top: 16px; }
body.as-mode-client.as-client-signed-in .as-appointment-panel[data-appointment-state="empty"] .as-appointment-panel__side { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; }
body.as-mode-client.as-client-signed-in .as-appointment-panel[data-appointment-state="empty"] #appointment-manage-link { width: auto; min-height: 44px; padding: 0; justify-content: start; font-size: 15px; text-align: left; }
body.as-mode-client.as-client-signed-in .as-appointment-panel[data-appointment-state="empty"] .as-client-refresh-link { display: inline-flex; }
body.as-mode-client.as-client-signed-in .as-client-dashboard > .as-card { padding: var(--as-client-inset); }
body.as-mode-client .as-client-order-notice { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; padding: 16px 0 24px; }
body.as-mode-client .as-client-order-notice p { flex: 1 1 320px; margin: 0; max-width: 70ch; font-size: 16px; line-height: 1.5; }
body.as-mode-client .as-client-orders-more { margin-top: 24px; }
body.as-mode-client .as-client-order-card { min-width: 0; }
body.as-mode-client .as-client-order-card__header { flex-wrap: wrap; gap: 12px; }
body.as-mode-client .as-client-order-card__actions { flex-wrap: wrap; }
body.as-mode-client .as-client-order-card__items { overflow-wrap: anywhere; }
body.as-mode-client .as-client-welcome__summary small { font-size: 15px; line-height: 1.45; }
@media (max-width: 980px) {
  body.as-mode-client > .as-header .as-logo img { width: 140px !important; }
  body.as-mode-client .as-client-login { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
}
@media (max-width: 760px) {
  body.as-mode-client.as-client-signed-in .as-client-welcome h2 { font-size: 20px; }
  body.as-mode-client.as-client-signed-in .as-client-welcome p:last-of-type { display: block; font-size: 15px; }
  body.as-mode-client.as-client-signed-in .as-appointment-panel #next-appointment-detail { font-size: 15px; line-height: 1.5; }
}
@media (max-width: 600px) {
  body.as-mode-client > .as-header { min-height: 76px; padding-block: 10px; }
  body.as-mode-client.as-client-signed-in .as-client-welcome h2 { font-size: 20px; }
  body.as-mode-client.as-client-signed-in .as-client-welcome p:last-of-type { display: block; font-size: 15px; }
  body.as-mode-client.as-client-signed-in .as-appointment-panel #next-appointment-detail { font-size: 15px; line-height: 1.5; }
  body.as-mode-client #client-mode { padding-top: 20px; }
  body.as-mode-client .as-client-login { grid-template-columns: minmax(0, 1fr); grid-template-areas: "visual" "copy" "form" "status"; }
  body.as-mode-client .as-client-login__image { min-height: 0; height: 180px; border-right: 0; background-position: center 44%; }
  body.as-mode-client .as-client-login__copy { padding: 24px 20px 8px; }
  body.as-mode-client .as-client-login .as-login-form { padding: 12px 20px 16px; }
  body.as-mode-client .as-client-login > .as-search-status { padding: 0 20px 24px; }
  body.as-mode-client .as-client-login__copy h2 { font-size: 32px; }
  body.as-mode-client.as-client-signed-in .as-appointment-panel { grid-template-columns: minmax(0, 1fr); }
  body.as-mode-client.as-client-signed-in .as-client-agenda-date { min-height: 0; border-right: 0; padding: 0 0 16px; }
  body.as-mode-client.as-client-signed-in .as-client-agenda-appointment { padding: 0; }
  body.as-mode-client .as-client-order-notice { align-items: stretch; }
  body.as-mode-client .as-client-order-notice .as-button { width: 100%; }
}
