:root {
  color-scheme: dark;
  --md-sys-color-background: #0b0d0d;
  --md-sys-color-surface: #0d0e0f;
  --md-sys-color-surface-dim: #070808;
  --md-sys-color-surface-bright: #1b1d1d;
  --md-sys-color-surface-container-lowest: #050505;
  --md-sys-color-surface-container-low: #101111;
  --md-sys-color-surface-container: #131414;
  --md-sys-color-surface-container-high: #171818;
  --md-sys-color-surface-container-highest: #1c1d1d;
  --md-sys-color-on-surface: #e6e8e7;
  --md-sys-color-on-surface-variant: #b7bebc;
  --md-sys-color-outline: rgba(255, 255, 255, 0.04);
  --md-sys-color-outline-variant: rgba(255, 255, 255, 0.02);
  --md-sys-color-primary: #00bfaF;
  --md-sys-color-on-primary: #031211;
  --md-sys-color-primary-container: #0a3a35;
  --md-sys-color-on-primary-container: #8ff4ea;
  --md-sys-color-secondary: #c0c9c6;
  --md-sys-color-secondary-container: #2a3130;
  --md-sys-color-on-secondary-container: #dce5e1;
  --md-sys-color-tertiary: #b9c8c4;
  --md-sys-color-tertiary-container: #28312f;
  --md-sys-color-error: #c8235f;
  --md-sys-color-on-error: #fff8fb;
  --md-sys-color-error-container: #3f1023;
  --md-sys-color-on-error-container: #ffd6e4;
  --md-sys-color-shadow: rgba(0, 0, 0, 0.34);
  --md-sys-state-hover: 0.08;
  --md-sys-state-focus: 0.12;
  --md-sys-state-pressed: 0.14;
  --md-sys-elevation-1: 0 1px 2px rgba(0, 0, 0, 0.22), 0 1px 3px rgba(0, 0, 0, 0.28);
  --md-sys-elevation-2: 0 4px 10px rgba(0, 0, 0, 0.2), 0 2px 6px rgba(0, 0, 0, 0.18);
  --md-sys-elevation-3: 0 10px 24px rgba(0, 0, 0, 0.22), 0 3px 10px rgba(0, 0, 0, 0.18);
  --md-sys-elevation-4: 0 16px 34px rgba(0, 0, 0, 0.28), 0 6px 18px rgba(0, 0, 0, 0.18);
  --md-sys-shape-corner-xs: 12px;
  --md-sys-shape-corner-sm: 16px;
  --md-sys-shape-corner-md: 22px;
  --md-sys-shape-corner-lg: 30px;
  --md-sys-shape-corner-xl: 38px;
  --md-sys-shape-corner-full: 999px;
  --bg: var(--md-sys-color-background);
  --bg-strong: var(--md-sys-color-surface-dim);
  --surface: var(--md-sys-color-surface-container);
  --surface-strong: var(--md-sys-color-surface-container-high);
  --surface-tint: rgba(0, 191, 175, 0.018);
  --outline: var(--md-sys-color-outline-variant);
  --outline-strong: var(--md-sys-color-outline);
  --text: var(--md-sys-color-on-surface);
  --muted: var(--md-sys-color-on-surface-variant);
  --primary: var(--md-sys-color-primary);
  --primary-strong: #00a89a;
  --secondary: var(--md-sys-color-secondary);
  --accent: var(--md-sys-color-tertiary);
  --good: #00bfaf;
  --warn: #b8d6d1;
  --danger: #b35339;
  --shadow: var(--md-sys-elevation-3);
  --radius-xl: var(--md-sys-shape-corner-xl);
  --radius-lg: var(--md-sys-shape-corner-lg);
  --radius-md: var(--md-sys-shape-corner-md);
  --font-body: "Roboto Flex", "Segoe UI", sans-serif;
  --font-display: "Roboto Flex", "Segoe UI", sans-serif;
  --type-display-lg: clamp(3.5rem, 8vw, 5.6rem);
  --type-headline-lg: clamp(2.1rem, 4.8vw, 3.25rem);
  --type-headline-md: clamp(1.6rem, 3.4vw, 2.35rem);
  --type-title-lg: clamp(1.2rem, 2.4vw, 1.55rem);
  --type-title-md: 1.02rem;
  --type-label-lg: 0.94rem;
  --type-label-md: 0.82rem;
  --type-body-lg: 1rem;
  --type-body-md: 0.94rem;
}

* {
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

html,
body {
  margin: 0;
  min-height: 100%;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  font-variation-settings: "opsz" 14, "GRAD" 0, "slnt" 0, "XTRA" 468;
  user-select: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
}

html.sheet-open,
body.sheet-open {
  overflow: hidden;
  overscroll-behavior: none;
}

body {
  overflow-x: hidden;
  background:
    radial-gradient(circle at 12% -4%, rgba(0, 191, 175, 0.18), transparent 24%),
    radial-gradient(circle at 88% 10%, rgba(0, 191, 175, 0.09), transparent 18%),
    radial-gradient(circle at 50% 100%, rgba(255, 255, 255, 0.045), transparent 28%),
    linear-gradient(180deg, #070909 0%, #0a0d0d 34%, #0b0e0e 100%);
}

html.android-app-shell,
body.android-app-shell {
  min-height: 100dvh;
  overscroll-behavior: none;
  -webkit-tap-highlight-color: transparent;
}

body.android-app-shell .client-app {
  padding-top: 0;
  padding-bottom: calc(108px + 8px);
}

body.android-app-shell .app-shell {
  min-height: 100dvh;
  padding-top: env(safe-area-inset-top, 0px);
}

body.android-app-shell .topbar {
  margin-top: 16px;
}

body.android-app-shell .bottom-nav {
  bottom: 18px;
}

a {
  color: inherit;
  text-decoration: none;
  user-select: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
}

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

input,
textarea,
select,
[contenteditable="true"] {
  user-select: text;
  -webkit-user-select: text;
  -webkit-touch-callout: default;
}

img,
svg,
picture,
video,
a,
button {
  -webkit-user-drag: none;
  user-drag: none;
  user-select: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
}

a img,
a svg,
.profile-avatar,
.profile-avatar * {
  -webkit-user-drag: none;
  user-drag: none;
  user-select: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
}

button {
  border: 0;
  background: none;
  cursor: pointer;
}

button:disabled,
.primary-btn:disabled,
.ghost-btn:disabled,
.tonal-btn:disabled,
.danger-btn:disabled {
  opacity: 0.56;
  cursor: not-allowed;
  transform: none;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid rgba(143, 232, 216, 0.56);
  outline-offset: 3px;
}

.client-app {
  width: min(100%, 1240px);
  margin: 0 auto;
  padding: 16px 18px calc(108px + env(safe-area-inset-bottom, 0px));
}

.app-shell {
  position: relative;
  min-height: calc(100vh - 28px);
  isolation: isolate;
}

.app-shell::before,
.app-shell::after {
  content: "";
  position: fixed;
  inset: auto;
  pointer-events: none;
  z-index: 0;
  display: block;
  filter: blur(24px);
  opacity: 0.8;
}

.app-shell::before {
  top: 72px;
  right: max(1vw, 8px);
  width: clamp(220px, 28vw, 360px);
  height: clamp(220px, 28vw, 360px);
  border-radius: 42% 58% 63% 37% / 44% 34% 66% 56%;
  background: radial-gradient(circle at 35% 35%, rgba(0, 191, 175, 0.22), rgba(0, 191, 175, 0.025) 70%, transparent 76%);
}

.app-shell::after {
  left: max(-1vw, -12px);
  bottom: 64px;
  width: clamp(180px, 22vw, 300px);
  height: clamp(180px, 22vw, 300px);
  border-radius: 59% 41% 51% 49% / 38% 48% 52% 62%;
  background: radial-gradient(circle at 50% 50%, rgba(0, 191, 175, 0.13), rgba(0, 191, 175, 0.015) 72%, transparent 78%);
}

.topbar,
.page,
.bottom-nav,
.sheet {
  position: relative;
  z-index: 1;
}

.topbar {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: min(100%, 960px);
  margin-inline: auto;
  margin-bottom: 14px;
  padding: 14px 16px;
  border: 1px solid transparent;
  border-radius: 28px;
  background: rgba(15, 18, 18, 0.98);
  backdrop-filter: blur(22px) saturate(1.1);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.015), var(--md-sys-elevation-2);
  overflow: hidden;
  isolation: isolate;
}

.topbar-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  min-width: 0;
  position: relative;
  z-index: 1;
  transition: filter 0.36s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.topbar-announcement {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 14px 22px;
  pointer-events: none;
  z-index: 2;
  clip-path: inset(0 100% 0 0 round 28px);
  opacity: 0;
  transform: translate3d(0, 0, 0);
  filter: none;
  background:
    linear-gradient(120deg, rgb(0, 191, 175) 0%, rgb(9, 170, 156) 42%, rgb(18, 58, 56) 100%);
}

.topbar-announcement::before {
  content: "";
  position: absolute;
  inset: -1px;
  opacity: 1;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(190, 255, 249, 0.16) 38%, rgba(255, 255, 255, 0.56) 52%, rgba(190, 255, 249, 0.18) 66%, rgba(255, 255, 255, 0) 100%);
  transform: translateX(-120%);
}

.topbar-announcement-label {
  position: relative;
  z-index: 1;
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: left;
  font: 700 clamp(1.14rem, 2.5vw, 1.34rem) / 1.08 var(--font-display);
  letter-spacing: 0.01em;
  color: rgba(248, 252, 251, 0.98);
  transform: translate3d(-8px, 0, 0);
  opacity: 0;
  transition:
    opacity 0.34s cubic-bezier(0.22, 0.61, 0.36, 1) 0.14s,
    transform 0.34s cubic-bezier(0.22, 0.61, 0.36, 1) 0.14s;
}

.topbar.is-announcing .topbar-content {
  filter: saturate(0.94) brightness(0.78);
}

.topbar.is-announcing .topbar-announcement {
  animation: topbar-announcement-pass 2.18s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.topbar.is-announcing .topbar-announcement-label {
  animation: topbar-announcement-copy-pass 2.18s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.topbar.is-announcing .topbar-announcement::before {
  animation: topbar-balance-sweep 1.16s ease forwards;
}

@keyframes topbar-announcement-pass {
  0% {
    opacity: 1;
    clip-path: inset(0 100% 0 0 round 28px);
  }

  18% {
    opacity: 1;
    clip-path: inset(0 0 0 0 round 28px);
  }

  78% {
    opacity: 1;
    clip-path: inset(0 0 0 0 round 28px);
  }

  100% {
    opacity: 1;
    clip-path: inset(0 0 0 100% round 28px);
  }
}

@keyframes topbar-announcement-copy-pass {
  0% {
    opacity: 0;
    transform: translate3d(-10px, 0, 0);
  }

  16% {
    opacity: 0;
    transform: translate3d(-10px, 0, 0);
  }

  28% {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }

  72% {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }

  100% {
    opacity: 0;
    transform: translate3d(10px, 0, 0);
  }
}

@keyframes topbar-balance-sweep {
  0% {
    transform: translateX(-120%);
  }

  55% {
    transform: translateX(8%);
  }

  100% {
    transform: translateX(120%);
  }
}

.brand {
  display: flex;
  align-items: center;
  min-width: 0;
}

.brand-label {
  font: 700 0.76rem/1 var(--font-display);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--md-sys-color-primary);
}

.brand-title {
  font: 700 clamp(1.1rem, 2.3vw, 1.58rem) / 1.06 var(--font-display);
  letter-spacing: -0.01em;
  font-variation-settings: "opsz" 36, "wght" 700, "GRAD" 88;
}

.topbar-side {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.chip,
.nav-pill,
.ghost-btn,
.primary-btn,
.tonal-btn,
.danger-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 52px;
  padding: 0 18px;
  border-radius: var(--md-sys-shape-corner-full);
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
  overflow: hidden;
}

.chip::after,
.nav-pill::after,
.ghost-btn::after,
.primary-btn::after,
.tonal-btn::after,
.danger-btn::after {
  content: "";
  position: absolute;
  inset: 0;
  background: currentColor;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.18s ease;
}

.chip {
  min-width: 0;
  max-width: min(100%, 280px);
  padding-right: 14px;
  padding-left: 2px;
}

.chip .profile-avatar {
  margin-left: -1px;
}

.chip span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.chip,
.ghost-btn,
.tonal-btn {
  border: 1px solid transparent;
  background: rgba(18, 22, 22, 0.96);
  color: var(--text);
  box-shadow: var(--md-sys-elevation-1);
}

.icon-only-btn {
  width: 48px;
  min-width: 48px;
  padding: 0;
}

.icon-only-btn svg {
  width: 22px;
  height: 22px;
  stroke: currentColor;
  stroke-width: 1.8;
  fill: none;
}

.primary-btn {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0) 30%),
    var(--md-sys-color-primary);
  color: var(--md-sys-color-on-primary);
  box-shadow: var(--md-sys-elevation-2);
  font-weight: 700;
}

.danger-btn {
  background: var(--md-sys-color-error-container);
  color: var(--md-sys-color-on-error-container);
  border: 1px solid transparent;
  box-shadow: var(--md-sys-elevation-1);
}

.tonal-btn {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.025), rgba(255, 255, 255, 0)),
    var(--md-sys-color-secondary-container);
  color: var(--md-sys-color-on-secondary-container);
  border-color: transparent;
}

.ghost-btn:hover,
.primary-btn:hover,
.tonal-btn:hover,
.danger-btn:hover,
.nav-pill:hover,
.chip:hover {
  transform: translateY(-1px) scale(1.01);
  box-shadow: var(--md-sys-elevation-2);
}

.chip:hover::after,
.nav-pill:hover::after,
.ghost-btn:hover::after,
.primary-btn:hover::after,
.tonal-btn:hover::after,
.danger-btn:hover::after {
  opacity: var(--md-sys-state-hover);
}

.chip:focus-visible::after,
.nav-pill:focus-visible::after,
.ghost-btn:focus-visible::after,
.primary-btn:focus-visible::after,
.tonal-btn:focus-visible::after,
.danger-btn:focus-visible::after {
  opacity: var(--md-sys-state-focus);
}

.chip:active::after,
.nav-pill:active::after,
.ghost-btn:active::after,
.primary-btn:active::after,
.tonal-btn:active::after,
.danger-btn:active::after {
  opacity: var(--md-sys-state-pressed);
}

.page {
  display: grid;
  gap: 14px;
}

.page-section,
.hero-card,
.content-card,
.metric-card,
.list-card,
.booking-panel,
.promo-card,
.barber-card,
.timeline-card,
.soon-card {
  border: 1px solid transparent;
  border-radius: var(--radius-xl);
  background: var(--surface);
  backdrop-filter: blur(16px) saturate(1.05);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.012), var(--shadow);
}

.page-section,
.content-card,
.list-card,
.booking-panel,
.timeline-card {
  background: var(--md-sys-color-surface-container);
}

.metric-card,
.promo-card,
.barber-card {
  background: var(--md-sys-color-surface-container-high);
}

.hero-card {
  padding: 20px;
  background: var(--md-sys-color-surface-container-high);
}

.hero-eyebrow,
.section-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  color: var(--secondary);
  font: 700 0.76rem/1 var(--font-display);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.hero-title,
.section-title {
  margin: 0;
  font-family: var(--font-display);
  line-height: 1.04;
  text-wrap: balance;
  letter-spacing: -0.03em;
  font-variation-settings: "opsz" 42, "wght" 700, "GRAD" 90;
}

.hero-title {
  max-width: 12ch;
  font-size: var(--type-headline-lg);
}

.section-title {
  font-size: var(--type-headline-md);
}

.hero-text,
.section-text,
.muted-text {
  color: var(--muted);
}

.hero-actions,
.stack-actions,
.inline-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.metrics-grid,
.card-grid,
.barber-grid,
.home-grid,
.booking-grid,
.profile-grid {
  display: grid;
  gap: 12px;
}

.metrics-grid,
.barber-grid,
.home-grid {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.metric-card,
.promo-card,
.barber-card,
.content-card,
.list-card,
.timeline-card,
.booking-panel,
.soon-card {
  padding: 16px;
}

.barber-card {
  display: grid;
  align-content: start;
  gap: 10px;
  border-radius: 30px;
  background: var(--md-sys-color-surface-container);
}

.metric-value {
  font-family: var(--font-display);
  font-size: var(--type-title-lg);
  line-height: 1;
  letter-spacing: -0.04em;
  font-variation-settings: "opsz" 30, "wght" 720, "GRAD" 90;
}

.status-badge,
.tag {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 999px;
  font-size: var(--type-label-lg);
  font-weight: 700;
  border: 1px solid transparent;
}

.status-badge.green,
.status-badge.status-green,
.tag.green {
  background: var(--md-sys-color-primary-container);
  color: var(--md-sys-color-on-primary-container);
  border-color: transparent;
}

.status-badge.yellow,
.status-badge.status-yellow,
.tag.yellow {
  background: var(--md-sys-color-secondary-container);
  color: var(--md-sys-color-on-secondary-container);
  border-color: transparent;
}

.status-badge.red,
.status-badge.status-red,
.tag.red {
  background: var(--md-sys-color-error-container);
  color: var(--md-sys-color-on-error-container);
  border-color: transparent;
}

.tag {
  background: var(--md-sys-color-surface-container-highest);
  color: var(--secondary);
  border: 1px solid transparent;
}

.slides {
  display: grid;
  gap: 12px;
  scroll-snap-type: y proximity;
}

.slide {
  min-height: calc(100vh - 140px);
  padding: 18px;
  scroll-snap-align: start;
}

.home-page {
  gap: 14px;
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
}

.home-barbers-card {
  order: 3;
  display: none;
}

.home-barber-rotating-card,
.home-barber-rotating-empty {
  order: 3;
}

.home-barber-rotating-stage {
  position: relative;
  overflow: visible;
  isolation: isolate;
  width: 100%;
  border-radius: 34px;
  padding-inline: 14px;
  margin-inline: -14px;
  touch-action: pan-y;
}

.home-barber-rotating-card {
  position: relative;
  overflow: visible;
  margin: 0;
  padding: 0;
  --barber-display-font: "Oxanium", "Unbounded", var(--font-display);
  --barber-ui-font: "Chakra Petch", "Manrope", var(--font-body);
}

.home-barber-rotating-glint {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 22%;
  z-index: 12;
  pointer-events: none;
  opacity: 0;
  transform: translateX(-160%) skewX(-18deg);
  background:
    linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.12) 22%, rgba(255, 255, 255, 0.88) 50%, rgba(255, 255, 255, 0.16) 78%, transparent 100%);
  filter: none;
  box-shadow: none;
}

.home-barber-rotating-card .barber-profile-layout {
  position: relative;
  overflow: hidden;
  border-radius: inherit;
  cursor: pointer;
}

.home-barber-rotating-wrap {
  order: 3;
  width: 100%;
  overflow: visible;
}

.home-barber-rotating-dots {
  position: absolute;
  left: 50%;
  bottom: 22px;
  z-index: 13;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  transform: translateX(-50%);
  pointer-events: none;
}

.home-barber-rotating-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.34);
  transition: background-color 0.28s ease, transform 0.28s ease;
}

.home-barber-rotating-dot.is-active {
  background: rgba(255, 255, 255, 0.96);
  transform: scale(1.05);
}

.home-barber-rotating-layer {
  position: relative;
  grid-area: 1 / 1;
  transition: opacity 0.9s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: opacity;
  overflow: visible;
}

.home-barber-rotating-stage {
  display: grid;
}

.home-barber-rotating-layer.is-current {
  opacity: 1;
  z-index: 1;
}

.home-barber-rotating-layer.is-incoming {
  opacity: 0;
  z-index: 2;
}

.home-barber-rotating-stage.is-transitioning .home-barber-rotating-glint {
  opacity: 1;
  animation: home-barber-card-sheen 0.9s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
}

.home-barber-rotating-stage.is-transitioning .home-barber-rotating-layer.is-current {
  opacity: 0;
}

.home-barber-rotating-stage.is-transitioning .home-barber-rotating-layer.is-incoming {
  opacity: 1;
}

@keyframes home-barber-card-sheen {
  0% {
    opacity: 0;
    transform: translateX(-160%) skewX(-18deg);
  }

  14% {
    opacity: 0.96;
  }

  100% {
    opacity: 0;
    transform: translateX(560%) skewX(-18deg);
  }
}

.home-barber-rotating-card .barber-profile-meta-item:last-child {
  display: none;
}

.home-barber-rotating-card .barber-profile-meta-item .barber-profile-meta-label {
  display: block;
  color: rgba(255, 255, 255, 0.42);
  font-size: 0.66rem;
  width: 4.9rem;
  letter-spacing: 0.1em;
  text-align: right;
}

.home-barber-rotating-card .barber-profile-meta-item strong {
  display: inline;
  color: #ffffff;
  font-size: 1.12rem;
  letter-spacing: 0.08em;
}

.home-map-contacts-row {
  order: 4;
  display: grid;
  gap: 14px;
}

.home-legal-card {
  order: 5;
  display: grid;
  gap: 6px;
  padding-top: 16px;
  padding-bottom: 16px;
}

.home-legal-copy {
  display: block;
}

.home-legal-copy .section-text {
  margin: 0;
}

.home-legal-disclosure {
  display: grid;
  gap: 10px;
}

.home-legal-summary {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: fit-content;
  max-width: 100%;
  color: rgba(226, 232, 240, 0.78);
  cursor: pointer;
  list-style: none;
  font: inherit;
  line-height: 1.5;
}

.home-legal-summary::-webkit-details-marker {
  display: none;
}

.home-legal-summary::before {
  content: "+";
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(121, 217, 201, 0.1);
  color: #79d9c9;
  font-size: 0.95rem;
  font-weight: 700;
  transition: transform 160ms ease, background 160ms ease, color 160ms ease;
}

.home-legal-disclosure[open] .home-legal-summary::before {
  content: "−";
}

.home-legal-summary:hover,
.home-legal-summary:focus-visible {
  color: #f2f7f6;
}

.home-legal-summary:hover::before,
.home-legal-summary:focus-visible::before {
  background: rgba(121, 217, 201, 0.16);
  color: #b6f3ea;
}

.home-legal-card .section-head {
  margin-bottom: 0;
}

.home-legal-card .section-eyebrow {
  color: rgba(226, 232, 240, 0.52);
}

.home-legal-text {
  line-height: 1.56;
}

.home-legal-copy a {
  color: #79d9c9;
  text-decoration: none;
}

.home-legal-copy a:hover,
.home-legal-copy a:focus-visible {
  color: #b6f3ea;
  text-decoration: underline;
}

.home-mobile-layout {
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
}

.home-frame,
.home-about-card,
.map-card,
.contacts-card {
  position: relative;
  overflow: hidden;
  border-radius: 34px;
  isolation: isolate;
}

.home-frame {
  padding: 14px;
}

.home-frame.home-promo-strip {
  width: 100%;
  max-width: 100%;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  overflow: hidden;
  border-radius: 0;
}

.home-frame::before,
.home-about-card::after,
.contacts-card::after {
  content: none;
}

.home-brand-row,
.appointment-grid,
.appointment-barber,
.contact-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.home-brand-row {
  justify-content: space-between;
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.brand-mark {
  font: 800 clamp(1.12rem, 2.4vw, 1.34rem) / 0.96 var(--font-display);
  letter-spacing: -0.03em;
  text-transform: none;
  max-width: 70%;
  color: #f0f5f2;
  font-variation-settings: "opsz" 28, "wght" 760, "GRAD" 100;
}

.home-brand-dots {
  display: flex;
  gap: 10px;
}

.home-brand-dots span {
  width: 22px;
  height: 6px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--md-sys-color-primary) 86%, white 8%);
}

@keyframes media-wave {
  0% {
    background-position: 200% 0;
  }

  100% {
    background-position: -200% 0;
  }
}

.media-wave {
  background:
    linear-gradient(
      90deg,
      color-mix(in srgb, var(--md-sys-color-surface-container-low) 92%, white 8%) 0%,
      color-mix(in srgb, var(--md-sys-color-surface-container-high) 84%, white 16%) 48%,
      color-mix(in srgb, var(--md-sys-color-surface-container-low) 92%, white 8%) 100%
    );
  background-size: 200% 100%;
  animation: media-wave 1.35s linear infinite;
}

img.media-wave {
  opacity: 0;
  transition: opacity 0.24s ease;
}

img.media-wave.is-ready {
  opacity: 1;
  background: transparent;
  animation: none;
}

.media-wave-surface {
  position: relative;
  overflow: hidden;
}

.media-wave-surface::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(
      90deg,
      color-mix(in srgb, var(--md-sys-color-surface-container-low) 94%, white 6%) 0%,
      color-mix(in srgb, var(--md-sys-color-surface-container-high) 82%, white 18%) 50%,
      color-mix(in srgb, var(--md-sys-color-surface-container-low) 94%, white 6%) 100%
    );
  background-size: 200% 100%;
  animation: media-wave 1.35s linear infinite;
  transition: opacity 0.24s ease;
  pointer-events: none;
}

.media-wave-surface > * {
  position: relative;
  z-index: 1;
}

.media-wave-surface.is-ready::before {
  opacity: 0;
}

.promo-marquee {
  --promo-gap: 10px;
  overflow: hidden;
  margin: 0;
  border-radius: 0;
  padding: 2px 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  mask-image: linear-gradient(90deg, transparent 0, #000 18px, #000 calc(100% - 18px), transparent 100%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 18px, #000 calc(100% - 18px), transparent 100%);
}

.promo-track {
  display: flex;
  gap: var(--promo-gap);
  width: max-content;
}

.promo-track.is-animated {
  animation: promo-marquee 28s linear infinite;
}

.promo-lane {
  display: flex;
  gap: var(--promo-gap);
  flex: 0 0 auto;
}

.promo-marquee:hover .promo-track {
  animation-play-state: paused;
}

.promo-thumb {
  position: relative;
  flex: 0 0 clamp(180px, 22vw, 230px);
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 28px;
  border: 0;
  background:
    radial-gradient(circle at top right, rgba(126, 226, 207, 0.2), transparent 34%),
    linear-gradient(160deg, rgba(11, 28, 28, 0.98), rgba(7, 16, 18, 0.94));
  background-size: cover;
  background-position: center;
  text-align: left;
  box-shadow: none;
  transition: transform 0.2s ease;
  isolation: isolate;
  outline: none;
}

.promo-thumb:hover {
  transform: translateY(-2px) scale(1.01);
  box-shadow: none;
}

.promo-thumb:focus,
.promo-thumb:focus-visible,
.promo-thumb:active {
  outline: none;
  box-shadow: none;
}

.promo-thumb-overlay {
  position: absolute;
  inset: auto 0 0;
  display: grid;
  gap: 6px;
  padding: 18px 16px 16px;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(5, 8, 8, 0.26) 22%, rgba(4, 7, 7, 0.88) 100%);
  z-index: 1;
}

.promo-thumb::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(145deg, rgba(133, 235, 215, 0.08), transparent 34%);
  z-index: 0;
  pointer-events: none;
}

.promo-thumb-kicker {
  display: inline-flex;
  width: fit-content;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(111, 217, 195, 0.14);
  border: 1px solid rgba(111, 217, 195, 0.24);
  color: rgba(214, 249, 242, 0.9);
  font-size: 0.67rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

@keyframes promo-marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(calc(-50% - (var(--promo-gap) / 2)));
  }
}

.promo-thumb strong {
  font-size: 0.96rem;
  line-height: 1.16;
  letter-spacing: -0.02em;
}

.promo-thumb small {
  color: rgba(225, 235, 233, 0.8);
  font-size: 0.84rem;
  line-height: 1.3;
}

.appointment-card {
  display: grid;
  gap: 16px;
  padding: 20px;
  border-radius: 30px;
  background: var(--md-sys-color-surface-container-high);
  border: 0;
  box-shadow: none;
}

.appointment-card.has-booking {
  position: relative;
  overflow: hidden;
  background: var(--md-sys-color-surface-container-high);
  border: 0;
  box-shadow: var(--md-sys-elevation-2);
}

.appointment-card.has-booking::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 0%, transparent 36%, rgba(0, 191, 175, 0.11) 48%, transparent 60%, transparent 100%);
  transform: translateX(-130%);
  pointer-events: none;
  opacity: 1;
  animation: appointment-sheen 4.8s ease-in-out infinite;
}

@keyframes appointment-sheen {
  0%, 72%, 100% {
    transform: translateX(-130%);
  }

  18%, 42% {
    transform: translateX(130%);
  }
}

.appointment-head {
  align-items: start;
  position: relative;
  z-index: 1;
}

.appointment-head .section-eyebrow {
  margin-bottom: 0;
  color: var(--text);
  font-size: 1.05rem;
  letter-spacing: -0.02em;
  text-transform: none;
}

.appointment-head-eta {
  color: color-mix(in srgb, var(--md-sys-color-primary) 88%, white 12%);
  font: 700 0.92rem/1.1 var(--font-display);
  letter-spacing: -0.01em;
  white-space: nowrap;
}

.appointment-empty-card {
  background: var(--md-sys-color-surface-container-low);
}

.appointment-overview {
  display: grid;
  gap: 16px;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
  position: relative;
  z-index: 1;
}

.appointment-overview:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--md-sys-color-primary) 52%, transparent);
  outline-offset: 6px;
}

.appointment-grid {
  align-items: stretch;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.appointment-meta {
  flex: 1;
  display: grid;
  align-content: start;
  padding: 18px 20px 16px;
  border-radius: 22px;
  background: var(--md-sys-color-surface-container-low);
  border: 0;
  box-shadow: none;
  transition: background 0.22s ease;
}

.appointment-card.has-booking .appointment-overview:hover .appointment-meta,
.appointment-card.has-booking .appointment-overview:focus-visible .appointment-meta {
  background: var(--md-sys-color-surface-container);
}

.appointment-card.has-booking .appointment-meta .field-label,
.appointment-card.has-booking .appointment-meta strong {
  color: var(--text);
}

.appointment-card.has-booking .appointment-meta .field-label {
  gap: 12px;
  align-items: center;
  font-size: 0.94rem;
  letter-spacing: -0.01em;
  text-transform: none;
}

.appointment-meta strong {
  display: block;
  margin-top: 16px;
  font-size: 1.02rem;
  letter-spacing: -0.01em;
  line-height: 1.18;
}

.appointment-label-icon {
  position: relative;
  width: 22px;
  height: 22px;
  flex: 0 0 auto;
  display: inline-grid;
  place-items: center;
}

.appointment-label-icon svg {
  width: 100%;
  height: 100%;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}

.appointment-label-icon svg path[fill] {
  fill: currentColor;
}

.appointment-label-icon-clock svg path:last-child {
  animation: appointment-clock-tick 8s steps(12, end) infinite;
  transform-origin: 12px 12px;
}

@keyframes appointment-clock-tick {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}

.appointment-card.has-booking .booking-cta {
  background: var(--md-sys-color-primary);
  color: var(--md-sys-color-on-primary);
  box-shadow: 0 8px 18px rgba(0, 104, 96, 0.16);
}

.appointment-card.has-booking .booking-cta:hover {
  background: color-mix(in srgb, var(--md-sys-color-primary) 90%, white 10%);
}

.appointment-barber {
  align-items: center;
  gap: 14px;
  padding: 2px 2px 0;
}

.appointment-barber .profile-avatar {
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--md-sys-color-surface-container);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.appointment-barber .profile-avatar img {
  transform: scale(1.14);
  transform-origin: center;
  filter: saturate(1.04) contrast(1.02);
}

.appointment-cta-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
}

.appointment-cta-wrap::before,
.appointment-cta-wrap::after {
  content: "";
  flex: 0 0 100px;
  height: 6px;
  background:
    linear-gradient(color-mix(in srgb, var(--md-sys-color-primary) 86%, white 8%), color-mix(in srgb, var(--md-sys-color-primary) 86%, white 8%)) 0 50% / 16px 6px no-repeat,
    linear-gradient(color-mix(in srgb, var(--md-sys-color-primary) 86%, white 8%), color-mix(in srgb, var(--md-sys-color-primary) 86%, white 8%)) 28px 50% / 16px 6px no-repeat,
    linear-gradient(color-mix(in srgb, var(--md-sys-color-primary) 86%, white 8%), color-mix(in srgb, var(--md-sys-color-primary) 86%, white 8%)) 56px 50% / 16px 6px no-repeat,
    linear-gradient(color-mix(in srgb, var(--md-sys-color-primary) 86%, white 8%), color-mix(in srgb, var(--md-sys-color-primary) 86%, white 8%)) 84px 50% / 16px 6px no-repeat;
  border-radius: 999px;
  opacity: 0.9;
  align-self: center;
}

.manage-booking-sheet {
  display: grid;
  gap: 16px;
  padding-inline: 6px;
}

.manage-booking-card {
  gap: 14px;
  padding: 18px;
}

.manage-booking-head {
  z-index: 1;
}

.manage-booking-overview {
  display: grid;
  gap: 14px;
  position: relative;
  z-index: 1;
}

.manage-booking-barber {
  padding: 14px 16px;
  border-radius: 22px;
  background: var(--md-sys-color-surface-container-low);
}

.manage-booking-services {
  padding: 18px 20px 20px;
  border-radius: 24px;
  background: var(--md-sys-color-surface-container-low);
}

.manage-booking-section-head {
  margin-bottom: 14px;
}

.manage-booking-section-head .section-eyebrow {
  margin-bottom: 0;
  text-transform: none;
  letter-spacing: -0.01em;
}

.manage-booking-service-row {
  gap: 10px;
}

.manage-booking-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding-inline: 2px;
}

.manage-booking-actions > * {
  width: 100%;
  min-width: 0;
}

.manage-booking-primary {
  justify-content: center;
}

.manage-booking-cancel-btn {
  justify-content: center;
  background: color-mix(in srgb, var(--md-sys-color-error) 10%, var(--md-sys-color-surface-container-low) 90%);
  color: color-mix(in srgb, var(--md-sys-color-error) 82%, white 18%);
}

.manage-booking-cancel-btn:hover,
.manage-booking-cancel-btn:focus-visible {
  background: color-mix(in srgb, var(--md-sys-color-error) 16%, var(--md-sys-color-surface-container) 84%);
}

@media (prefers-reduced-motion: reduce) {
  .appointment-card.has-booking::after,
  .appointment-mini-clock::after {
    animation: none !important;
  }
}

.booking-cta {
  width: auto;
  min-width: 320px;
  justify-self: center;
  min-height: 56px;
  margin-top: 8px;
  padding-inline: 42px;
  font-size: 1.05rem;
  border-radius: 20px;
}

.booking-cta-compact {
  margin-top: 0;
}

.home-about-card,
.map-card,
.contacts-card {
  padding: 20px;
}

.home-frame {
  background:
    linear-gradient(180deg, var(--md-sys-color-surface-container-high), var(--md-sys-color-surface-container));
  border-color: transparent;
  box-shadow: 0 18px 34px rgba(0, 0, 0, 0.22);
}

.home-frame.home-promo-strip {
  background: transparent;
  box-shadow: none;
}

.home-about-card,
.map-card,
.contacts-card {
  background: var(--md-sys-color-surface-container-high);
}

.home-about-card {
  display: block;
  text-align: left;
}

.home-about-toggle {
  position: relative;
  width: 100%;
  appearance: none;
  border: 0;
  color: inherit;
  cursor: pointer;
  overflow: hidden;
  transform: translateY(0) scale(1);
  transition: transform 0.42s cubic-bezier(0.22, 1, 0.36, 1);
}

.home-about-toggle:active {
  transform: translateY(1px) scale(0.994);
}

.home-about-toggle:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--md-sys-color-primary) 58%, transparent);
  outline-offset: 4px;
}

.home-about-toggle .section-title {
  margin-bottom: 12px;
}

.home-about-text {
  margin: 0;
  line-height: 1.56;
}

.home-about-text-wrap {
  position: relative;
  max-height: 20em;
  overflow: hidden;
  transition: max-height 0.56s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: max-height;
}

.home-about-toggle.is-collapsed .home-about-text-wrap {
  max-height: calc(1.56em * 4);
}

.home-about-toggle.is-collapsed .home-about-text-wrap::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 2.8em;
  background: linear-gradient(180deg, rgba(23, 24, 24, 0), var(--md-sys-color-surface-container-high) 88%);
  pointer-events: none;
}

.home-about-more {
  display: inline-flex;
  margin-top: 12px;
  color: var(--md-sys-color-primary);
  font: 700 0.95rem/1.2 var(--font-display);
  letter-spacing: -0.01em;
  transition: transform 0.42s cubic-bezier(0.22, 1, 0.36, 1), color 0.42s cubic-bezier(0.22, 1, 0.36, 1);
}

@media (prefers-reduced-motion: reduce) {
  .home-about-toggle,
  .home-about-toggle::after,
  .home-about-text-wrap,
  .home-about-more {
    transition: none !important;
  }
}

.about-image-frame,
.map-image,
.promo-sheet-image {
  width: 100%;
  min-height: 0;
  border-radius: 28px;
  background: var(--md-sys-color-surface-container-low);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}

.about-image-frame,
.map-image {
  aspect-ratio: 16 / 7.4;
}

.promo-sheet-image {
  aspect-ratio: 16 / 9;
  background-size: contain;
}

.promo-sheet-shell {
  padding: 0;
  overflow: hidden;
}

.sheet.promo-sheet-shell {
  padding: 0;
}

.promo-sheet-shell > div:last-child {
  width: 100%;
}

.promo-sheet-card {
  display: grid;
  gap: 0;
  border-radius: inherit;
  overflow: hidden;
  background: transparent;
}

.promo-sheet-hero {
  position: relative;
  min-height: 260px;
  padding: 24px 24px 22px;
  display: flex;
  align-items: flex-end;
  background:
    linear-gradient(180deg, rgba(4, 8, 8, 0.08), rgba(4, 8, 8, 0.72)),
    var(--md-sys-color-surface-container-low);
  background-size: cover;
  background-position: center;
  isolation: isolate;
}

.promo-sheet-hero-empty {
  background:
    radial-gradient(circle at top right, rgba(126, 226, 207, 0.22), transparent 36%),
    linear-gradient(160deg, rgba(11, 28, 28, 0.98), rgba(7, 16, 18, 0.94));
}

.promo-sheet-hero-glow {
  position: absolute;
  inset: auto 24px 20px auto;
  width: 128px;
  height: 128px;
  border-radius: 999px;
  background: rgba(97, 217, 191, 0.16);
  filter: blur(28px);
  pointer-events: none;
  z-index: 0;
}

.promo-sheet-hero-copy {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 10px;
  max-width: 420px;
}

.promo-sheet-badge {
  display: inline-flex;
  width: fit-content;
  padding: 7px 12px;
  border-radius: 999px;
  border: 1px solid rgba(138, 230, 212, 0.24);
  background: rgba(120, 219, 198, 0.14);
  color: rgba(226, 250, 245, 0.95);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.promo-sheet-hero-copy strong {
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 3rem);
  line-height: 0.94;
  letter-spacing: -0.05em;
  color: #f3fbf8;
}

.promo-sheet-hero-copy p {
  margin: 0;
  color: rgba(228, 237, 235, 0.86);
  font-size: 1rem;
  line-height: 1.45;
}

.promo-sheet-body {
  display: grid;
  gap: 12px;
  padding: 18px 22px 22px;
}

.promo-sheet-summary .list-title,
.promo-sheet-copy p {
  margin: 0;
}

.promo-sheet-summary .list-title {
  color: rgba(235, 242, 241, 0.92);
}

.promo-sheet-copy p {
  color: rgba(229, 236, 235, 0.9);
  line-height: 1.6;
  text-align: justify;
  text-justify: inter-word;
}

.promo-sheet-close {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 3;
  color: rgba(243, 248, 247, 0.9);
}

.about-image-frame {
  margin-top: 14px;
}

.map-title {
  margin: 0 0 14px;
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 4vw, 2.4rem);
  text-transform: none;
  line-height: 0.96;
  letter-spacing: -0.04em;
  color: #eef4f1;
}

.map-link-card {
  display: block;
  padding: 0;
  border-radius: 28px;
  background: transparent;
  box-shadow: none;
}

.map-image {
  position: relative;
  overflow: hidden;
  min-height: 320px;
}

.map-overlay-card {
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 16px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  border-radius: 24px;
  background: color-mix(in srgb, var(--md-sys-color-surface-container-highest) 94%, white 6%);
  color: var(--md-sys-color-on-surface);
  box-shadow:
    0 10px 24px rgba(0, 0, 0, 0.16),
    0 1px 0 rgba(255, 255, 255, 0.3) inset;
}

.map-overlay-icon {
  width: 52px;
  height: 52px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  background: color-mix(in srgb, var(--md-sys-color-primary-container) 88%, white 8%);
  color: var(--md-sys-color-primary);
}

.map-overlay-icon svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.map-overlay-copy {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.map-overlay-copy strong {
  font-size: 1.02rem;
  line-height: 1.12;
  letter-spacing: -0.02em;
}

.map-overlay-copy span {
  color: var(--muted);
  font-size: 0.94rem;
  line-height: 1.3;
}

.map-overlay-action {
  color: var(--md-sys-color-primary);
  font-weight: 800;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  align-self: center;
}

.contacts-phone {
  margin: 0;
  color: var(--text);
  font-weight: 800;
}

.contacts-card .section-title {
  margin-bottom: 8px;
  font-size: clamp(1.8rem, 4vw, 2.4rem);
  line-height: 0.96;
  letter-spacing: -0.04em;
  color: #eef4f1;
}

.contacts-card {
  display: grid;
  align-content: start;
  padding-top: 14px;
}

.phone-link:hover {
  background: rgba(49, 57, 56, 0.92);
}

.square-btn {
  min-width: 72px;
  min-height: 56px;
}

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

.contacts-card .icon-btn {
  width: 100%;
  min-height: 58px;
  justify-content: flex-start;
  background: rgba(14, 17, 17, 0.98);
  border-color: transparent;
  border-radius: 999px;
  box-shadow: none;
}

.contacts-card .icon-btn:hover {
  background: rgba(20, 24, 24, 0.98);
}

.icon-btn {
  gap: 10px;
  justify-content: flex-start;
  padding: 0 16px;
  flex: 0 0 auto;
}

.icon-btn svg,
.primary-btn svg {
  width: 18px;
  height: 18px;
  stroke: currentColor;
  stroke-width: 1.8;
  fill: none;
  flex: 0 0 auto;
}

.icon-btn span,
.primary-btn span {
  white-space: nowrap;
}

.route-transition .page:not(.booking-page) > * {
  animation: booking-step-in 320ms cubic-bezier(.2,.8,.2,1) both;
}

.route-transition .page:not(.booking-page) > *:nth-child(2) {
  animation-duration: 360ms;
  animation-delay: 28ms;
}

.route-transition .page:not(.booking-page) > *:nth-child(3) {
  animation-duration: 360ms;
  animation-delay: 52ms;
}

.route-transition .page:not(.booking-page) > *:nth-child(4) {
  animation-duration: 380ms;
  animation-delay: 76ms;
}

.route-transition .page:not(.booking-page) > *:nth-child(5),
.route-transition .page:not(.booking-page) > *:nth-child(6) {
  animation-duration: 400ms;
  animation-delay: 96ms;
}

.nav-pill.active {
  transform: translateY(-1px);
}

@keyframes page-enter {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.barber-card img {
  width: 100%;
  aspect-ratio: 1 / 1.15;
  object-fit: cover;
  border-radius: 28px;
}

.profile-avatar {
  overflow: hidden;
  border-radius: 50%;
}

.profile-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
}

.barber-card-head,
.section-head,
.tile-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 12px;
}

.section-head > div,
.tile-head > div {
  min-width: 0;
}

.section-head + .barber-grid,
.section-head + .booking-grid,
.section-head + .summary-grid,
.section-head + .list,
.section-head + .timeline,
.section-head + .compact-metrics-grid,
.section-head + .shop-teaser-grid,
.section-head + .contact-actions,
.section-title + .barber-grid,
.section-title + .list,
.section-title + .timeline,
.section-title + .contact-actions,
.map-title + .map-link-card {
  margin-top: 14px;
}

.barber-name,
.list-title,
.tile-title {
  margin: 0;
  font-weight: 800;
  line-height: 1.22;
  font-size: var(--type-title-md);
  letter-spacing: -0.01em;
}

.subtitle {
  margin: 2px 0 0;
  color: var(--muted);
  font-size: var(--type-body-md);
  line-height: 1.48;
}

.progress-wrap {
  display: grid;
  gap: 10px;
}

.progress-track {
  position: relative;
  height: 14px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.08);
}

.progress-bar {
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--md-sys-color-primary), #c1fff2);
}

.progress-points {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  color: var(--muted);
  font-size: 0.82rem;
}

.list,
.timeline {
  display: grid;
  gap: 10px;
}

.list-item,
.timeline-item,
.service-item,
.slot-item {
  display: grid;
  gap: 8px;
  padding: 14px 16px;
  border-radius: 24px;
  background: var(--md-sys-color-surface-container-low);
  border: 1px solid transparent;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.01);
  transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease, color 0.2s ease;
}

.list-item:hover,
.timeline-item:hover,
.service-item:hover,
.slot-item:hover {
  background: var(--md-sys-color-surface-container);
}

.timeline-item {
  grid-template-columns: 1fr auto;
  align-items: center;
}

.amount-rub {
  font-weight: 800;
}

.amount-rub.negative {
  color: var(--md-sys-color-error);
}

.amount-bs {
  color: var(--good);
  font-weight: 800;
}

.amount-bs.negative {
  color: var(--md-sys-color-error);
}

.form-grid {
  display: grid;
  gap: 14px;
}

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

.field-label {
  display: inline-flex;
  color: var(--secondary);
  font-size: var(--type-label-md);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.field input,
.field select,
.field textarea {
  width: 100%;
  min-height: 56px;
  padding: 0 18px;
  border-radius: 18px;
  border: 1px solid transparent;
  background: var(--md-sys-color-surface-container-low);
  color: var(--text);
  outline: none;
  transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.field textarea {
  min-height: 120px;
  padding: 16px 18px;
  resize: vertical;
}

.field input:hover,
.field select:hover,
.field textarea:hover {
  background: var(--md-sys-color-surface-container);
}

.field input:focus,
.field select:focus,
.field textarea:focus {
  border-color: transparent;
  box-shadow: 0 0 0 1px rgba(0, 191, 175, 0.28), inset 0 0 0 1px rgba(255, 255, 255, 0.02);
}

.bottom-nav {
  --nav-gap: 8px;
  --nav-booking-size: 70px;
  --nav-booking-cutout: 42px;
  --nav-booking-cutout-offset: 8px;
  --nav-booking-lift: 37px;
  --nav-surface-bg: rgba(15, 18, 18, 0.98);
  position: fixed;
  left: 50%;
  bottom: calc(18px + env(safe-area-inset-bottom, 0px));
  transform: translateX(-50%);
  width: min(calc(100% - 24px), 430px);
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: var(--nav-gap);
  padding: 10px;
  border-radius: 32px;
  border: 0;
  background: transparent;
  backdrop-filter: none;
  box-shadow: none;
  overflow: visible;
  isolation: isolate;
}

.bottom-nav::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: var(--nav-surface-bg);
  backdrop-filter: blur(30px) saturate(1.2);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.32);
  -webkit-mask-image: radial-gradient(circle var(--nav-booking-cutout) at 50% var(--nav-booking-cutout-offset), transparent 98%, #000 100%);
  mask-image: radial-gradient(circle var(--nav-booking-cutout) at 50% var(--nav-booking-cutout-offset), transparent 98%, #000 100%);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  pointer-events: none;
  z-index: 0;
}

.bottom-nav-indicator {
  position: absolute;
  top: 10px;
  bottom: 10px;
  left: calc(10px + var(--indicator-index) * (((100% - 20px - (var(--nav-gap) * (var(--nav-count) - 1))) / var(--nav-count)) + var(--nav-gap)));
  width: calc((100% - 20px - (var(--nav-gap) * (var(--nav-count) - 1))) / var(--nav-count));
  border-radius: 24px;
  background: color-mix(in srgb, var(--md-sys-color-primary-container) 84%, var(--md-sys-color-surface-container) 16%);
  transition: left 0.34s cubic-bezier(.2,.8,.2,1), background-color 0.24s ease, border-color 0.24s ease;
  pointer-events: none;
  box-shadow: none;
}

.bottom-nav .nav-pill {
  min-height: 58px;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--md-sys-color-on-surface-variant);
  padding: 0;
  position: relative;
  z-index: 1;
  transition: color 0.24s ease, transform 0.24s ease;
}

.bottom-nav .nav-pill::after {
  display: none;
}

.nav-pill.active {
  color: var(--md-sys-color-on-primary-container);
  box-shadow: none;
}

.nav-pill span,
.primary-btn span,
.ghost-btn span,
.tonal-btn span,
.danger-btn span,
.chip span {
  position: relative;
  z-index: 1;
}

.nav-icon-wrap {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  transition: transform 0.22s ease;
}

.bottom-nav .nav-pill:hover .nav-icon-wrap {
  transform: none;
}

.bottom-nav .nav-pill:hover,
.bottom-nav .nav-pill:active,
.bottom-nav .nav-pill.active {
  transform: none;
}

.bottom-nav .nav-pill:active .nav-icon-wrap {
  transform: none;
}

.bottom-nav .nav-pill svg {
  width: 29px;
  height: 29px;
  display: block;
  fill: currentColor;
  stroke: none;
  transition: transform 0.22s ease;
}

.bottom-nav .nav-pill img {
  width: 29px;
  height: 29px;
  display: block;
  object-fit: contain;
}

.bottom-nav .nav-pill.nav-pill-booking img {
  width: var(--nav-booking-size);
  height: var(--nav-booking-size);
}

.bottom-nav .nav-pill.nav-pill-booking {
  width: var(--nav-booking-size);
  min-height: var(--nav-booking-size);
  justify-self: center;
  align-self: start;
  display: grid;
  place-items: center;
  overflow: visible;
  transform: translateY(calc(-1 * var(--nav-booking-lift)));
  z-index: 2;
}

.bottom-nav .nav-pill.nav-pill-booking .nav-icon-wrap {
  overflow: visible;
}

.bottom-nav .nav-pill.nav-pill-booking:hover,
.bottom-nav .nav-pill.nav-pill-booking:active,
.bottom-nav .nav-pill.nav-pill-booking.active {
  transform: translateY(calc(-1 * var(--nav-booking-lift)));
}

.bottom-nav[data-active-page="booking"] .bottom-nav-indicator {
  opacity: 0;
}

.bottom-nav .nav-pill.active .nav-icon-wrap {
  transform: none;
}

@media (display-mode: standalone) {
  .client-app {
    padding-top: 0;
    padding-bottom: calc(108px + 8px);
  }

  .app-shell {
    min-height: 100dvh;
    padding-top: env(safe-area-inset-top, 0px);
  }

  .topbar {
    margin-top: 16px;
  }

  .bottom-nav {
    bottom: 18px;
  }
}

.sheet-backdrop {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(5, 8, 8, 0.28);
  backdrop-filter: blur(6px) saturate(1.02);
  z-index: 40;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.28s ease, backdrop-filter 0.28s ease, background-color 0.28s ease;
}

.sheet-backdrop.is-entering,
.sheet-backdrop.is-open,
.sheet-backdrop.is-closing {
  pointer-events: auto;
}

.sheet-backdrop.is-open {
  opacity: 1;
  background: rgba(5, 8, 8, 0.62);
  backdrop-filter: blur(18px) saturate(1.06);
}

.sheet-backdrop.is-entering {
  opacity: 0;
  background: rgba(5, 8, 8, 0.28);
  backdrop-filter: blur(6px) saturate(1.02);
}

.sheet-backdrop.is-closing {
  opacity: 0;
  background: rgba(5, 8, 8, 0.22);
  backdrop-filter: blur(8px) saturate(1.02);
}

.sheet {
  width: min(100%, 720px);
  max-height: min(84vh, 760px);
  overflow: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding: 24px;
  border-radius: 36px;
  border: 0;
  background: var(--md-sys-color-surface-container);
  box-shadow: var(--md-sys-elevation-3);
  transform: translateY(28px) scale(0.975);
  opacity: 0;
  transition: transform 0.28s cubic-bezier(.2,.8,.2,1), opacity 0.28s cubic-bezier(.2,.8,.2,1), height 0.28s cubic-bezier(.2,.8,.2,1);
}

.sheet.sheet-wide {
  width: min(100%, 980px);
  max-height: min(92vh, 900px);
}

.sheet-body {
  min-height: 0;
}

.sheet.referral-history-sheet {
  height: min(82vh, 820px);
}

.sheet.referral-history-sheet .sheet-body {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  min-height: 0;
}

.sheet.referral-history-sheet .referral-history-list {
  min-height: 0;
  overflow: auto;
  padding-right: 4px;
}

.sheet.is-open {
  transform: translateY(0) scale(1);
  opacity: 1;
}

.sheet.is-entering {
  transform: translateY(28px) scale(0.975);
  opacity: 0;
}

.sheet.is-closing {
  transform: translateY(18px) scale(0.985);
  opacity: 0;
}

.sheet.sheet-success {
  width: min(100%, 420px);
  min-height: 280px;
  display: grid;
  align-content: center;
  justify-items: center;
  padding: 28px;
}

.sheet-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 22px;
  flex-wrap: nowrap;
  padding-bottom: 14px;
  border-bottom: 0;
}

.sheet.sheet-wide .sheet-head {
  align-items: center;
  margin-bottom: 20px;
  padding-inline: 0;
}

.sheet-close-btn {
  flex: 0 0 44px;
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  background: transparent;
  color: var(--md-sys-color-on-secondary-container);
  border: 0;
  box-shadow: none;
  outline: none;
  aspect-ratio: 1 / 1;
}

.sheet-close-btn svg {
  width: 24px;
  height: 24px;
}

.sheet-close-btn:hover,
.sheet-close-btn:focus,
.sheet-close-btn:focus-visible,
.sheet-close-btn:active {
  background: transparent;
  border: 0;
  box-shadow: none;
  outline: none;
  transform: none;
}

.sheet-title {
  margin: 0;
  line-height: 1.04;
}

.sheet-success-close {
  position: absolute;
  top: 20px;
  right: 20px;
}

.booking-status-sheet {
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 20px;
  min-height: 220px;
  text-align: center;
}

.booking-status-icon {
  position: relative;
  width: 92px;
  height: 92px;
  display: grid;
  place-items: center;
}

.booking-status-icon-ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: color-mix(in srgb, var(--md-sys-color-primary-container) 78%, transparent);
  border: 1px solid color-mix(in srgb, var(--md-sys-color-primary) 28%, transparent);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);
  animation: booking-status-ring-in 0.34s cubic-bezier(.2,.8,.2,1);
}

.booking-status-icon-ring::after {
  content: "";
  position: absolute;
  inset: 12px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--md-sys-color-primary) 18%, transparent);
}

.booking-status-icon-check {
  position: relative;
  width: 30px;
  height: 16px;
  border-left: 4px solid var(--md-sys-color-primary);
  border-bottom: 4px solid var(--md-sys-color-primary);
  transform: rotate(-45deg) scale(0.82);
  opacity: 0;
  animation: booking-status-check-in 0.22s cubic-bezier(.22,1,.36,1) 0.1s forwards;
}

.booking-status-title {
  font-family: var(--font-display);
  font-size: clamp(1.6rem, 3vw, 2rem);
  line-height: 1.02;
  letter-spacing: -0.04em;
  color: var(--text);
}

@keyframes booking-status-ring-in {
  0% {
    transform: scale(0.92);
    opacity: 0;
  }

  100% {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes booking-status-check-in {
  0% {
    opacity: 0;
    transform: rotate(-45deg) scale(0.58);
  }

  100% {
    opacity: 1;
    transform: rotate(-45deg) scale(0.82);
  }
}

.empty-state,
.loading-state {
  padding: 28px;
  text-align: center;
  color: var(--muted);
  border-radius: 24px;
  border: 1px dashed rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.02);
  line-height: 1.5;
}

.soon-card {
  min-height: calc(100vh - 150px);
  display: grid;
  place-items: center;
  text-align: center;
  background: var(--md-sys-color-surface-container-high);
}

.app-note {
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.45;
}

.page-hero,
.referral-balance-card,
.booking-step,
.booking-summary,
.profile-hero,
.clean-soon-card {
  background: var(--md-sys-color-surface-container-high);
}

.booking-progress-line,
.service-chip-row,
.profile-summary-strip,
.summary-master-row {
  display: flex;
  gap: 10px;
}

.compact-metrics-grid {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.referral-page,
.booking-page,
.profile-page,
.shop-page {
  max-width: 960px;
  margin: 0 auto;
}

.referral-cabinet-card {
  padding: 20px;
  background:
    radial-gradient(circle at top left, rgba(0, 191, 175, 0.1), transparent 34%),
    linear-gradient(180deg, var(--md-sys-color-surface-container-high), var(--md-sys-color-surface-container-low));
}

.referral-page {
  --referral-surface-1: color-mix(in srgb, var(--md-sys-color-surface-container-high) 84%, var(--md-sys-color-primary) 16%);
  --referral-surface-2: var(--md-sys-color-surface-container);
  --referral-surface-3: var(--md-sys-color-surface-container-low);
  --referral-outline: var(--md-sys-color-outline);
  --referral-outline-soft: var(--md-sys-color-outline-variant);
  --referral-chip: color-mix(in srgb, var(--md-sys-color-secondary-container) 54%, var(--md-sys-color-surface-container-low) 46%);
  gap: 0;
}

.referral-wallet-hero {
  display: grid;
  gap: 14px;
}

.referral-wallet-card,
.referral-panel-card,
.referral-level-card {
  display: grid;
}

.referral-wallet-card {
  position: relative;
  overflow: clip;
  isolation: isolate;
  gap: 14px;
  padding: 18px 20px;
  border-radius: 38px;
  background:
    radial-gradient(circle at top right, color-mix(in srgb, var(--md-sys-color-primary) 12%, transparent 88%), transparent 34%),
    radial-gradient(circle at 18% 122%, color-mix(in srgb, var(--md-sys-color-tertiary) 7%, transparent 93%), transparent 20%),
    linear-gradient(180deg, var(--referral-surface-1), var(--md-sys-color-surface-container-high));
  border: 0;
  background-clip: padding-box;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.06),
    0 14px 28px rgba(0, 0, 0, 0.22),
    0 6px 14px rgba(0, 0, 0, 0.14);
}

.referral-wallet-sheen {
  position: absolute;
  inset: -30%;
  background:
    linear-gradient(128deg, transparent 16%, rgba(255, 255, 255, 0.05) 34%, color-mix(in srgb, var(--md-sys-color-primary) 16%, transparent 84%) 48%, transparent 64%),
    radial-gradient(circle at 22% 20%, color-mix(in srgb, var(--md-sys-color-primary) 18%, transparent 82%), transparent 20%),
    radial-gradient(circle at 76% 74%, rgba(255, 255, 255, 0.04), transparent 18%),
    radial-gradient(circle at 52% 46%, color-mix(in srgb, var(--md-sys-color-tertiary) 14%, transparent 86%), transparent 26%);
  opacity: 0.46;
  filter: blur(18px);
  pointer-events: none;
  transform: translate3d(-10%, -6%, 0) rotate(-12deg) scale(1.08);
  animation: referral-wallet-shimmer 12s ease-in-out infinite;
  will-change: transform, opacity;
  -webkit-mask-image: linear-gradient(180deg, #000 0, #000 90%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 0, #000 90%, transparent 100%);
  z-index: 0;
}

.referral-wallet-head,
.referral-wallet-footer,
.referral-wallet-actions {
  display: flex;
}

.referral-wallet-head {
  position: relative;
  align-items: start;
  justify-content: space-between;
  gap: 12px;
  z-index: 2;
}

.referral-level-card {
  gap: 14px;
  padding: 18px 20px;
  border-radius: 30px;
  background: linear-gradient(180deg, var(--referral-surface-2), var(--md-sys-color-surface-container));
  border: 1px solid transparent;
}

.referral-level-card-head {
  align-items: start;
}

.referral-wallet-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  padding: 0;
  border-radius: 17px;
  border: 1px solid transparent;
  background: color-mix(in srgb, var(--md-sys-color-surface-container-low) 90%, var(--md-sys-color-primary-container) 10%);
  color: var(--text);
  cursor: pointer;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.04),
    0 8px 18px rgba(0, 0, 0, 0.1);
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.referral-wallet-mark svg {
  width: 24px;
  height: 24px;
  stroke: currentColor;
  stroke-width: 1.8;
  fill: none;
}

.referral-wallet-mark:hover,
.referral-wallet-mark:focus-visible {
  transform: translateY(-1px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.06),
    0 10px 22px rgba(0, 0, 0, 0.14);
}

.referral-wallet-balance {
  position: relative;
  display: grid;
  gap: 6px;
  z-index: 2;
}

.referral-wallet-card .hero-title,
.referral-wallet-balance-number,
.referral-wallet-level strong,
.referral-wallet-progress-head strong,
.referral-wallet-action span:last-child {
  font-family: "Manrope", var(--font-display);
}

.referral-wallet-balance-number {
  font-size: clamp(2.6rem, 6.3vw, 4rem);
  line-height: 0.86;
  letter-spacing: -0.05em;
  color: var(--md-sys-color-on-surface);
  font-variation-settings: normal;
  font-weight: 700;
  transition: color 0.2s ease, text-shadow 0.2s ease, filter 0.2s ease;
}

.referral-wallet-balance-number.is-balance-updated {
  animation: referral-wallet-balance-pop 620ms cubic-bezier(0.22, 0.72, 0.2, 1);
}

.referral-wallet-balance-note {
  margin: 0;
  color: var(--muted);
  line-height: 1.32;
}

.referral-wallet-level-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: fit-content;
  max-width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  text-align: left;
  font: inherit;
  transition: color 0.2s ease, opacity 0.2s ease;
}

.referral-wallet-level-link:hover {
  color: var(--text);
}

.referral-wallet-progress {
  position: relative;
  display: grid;
  gap: 7px;
  z-index: 2;
}

.referral-wallet-progress-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.referral-wallet-progress-head strong {
  color: var(--text);
  font-weight: 800;
}

.referral-wallet-progress-track {
  height: 9px;
  background: color-mix(in srgb, var(--md-sys-color-surface-container-low) 82%, var(--md-sys-color-secondary-container) 18%);
}

.referral-wallet-progress-bar {
  background: linear-gradient(90deg, var(--md-sys-color-primary), var(--md-sys-color-on-primary-container));
}

.referral-wallet-footer {
  display: block;
  position: relative;
  gap: 12px;
  z-index: 2;
}

.referral-wallet-level {
  display: grid;
  gap: 4px;
  flex: 0 0 calc((100% - 36px) / 4);
  min-width: 0;
  min-height: 76px;
  padding: 13px 15px;
  border: 1px solid transparent;
  border-radius: 26px;
  background: color-mix(in srgb, var(--md-sys-color-surface-container-low) 88%, var(--md-sys-color-primary-container) 12%);
  color: var(--text);
  text-align: left;
  cursor: pointer;
  backdrop-filter: blur(10px);
}

.referral-wallet-level strong {
  font-size: 1.08rem;
  line-height: 1.05;
}

.referral-wallet-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  width: 100%;
}

.referral-wallet-action {
  display: grid;
  grid-template-columns: auto minmax(0, max-content);
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 76px;
  min-width: 0;
  width: 100%;
  padding: 12px 15px;
  border-radius: 26px;
  border: 0;
  background: color-mix(in srgb, var(--md-sys-color-surface-container-low) 90%, var(--md-sys-color-primary-container) 10%);
  background-clip: padding-box;
  color: var(--text);
  cursor: pointer;
  transition: background-color 0.22s ease, background 0.22s ease, box-shadow 0.22s ease, filter 0.22s ease;
  backdrop-filter: blur(10px);
  outline: none;
  -webkit-tap-highlight-color: transparent;
  overflow: hidden;
}

.referral-wallet-action-scan {
  display: none;
}

.referral-wallet-action:hover {
  box-shadow: var(--md-sys-elevation-2);
}

.referral-wallet-action:active {
  filter: brightness(0.98);
  box-shadow: none;
}

.referral-wallet-action:focus,
.referral-wallet-action:focus-visible,
.referral-wallet-level-link:focus,
.referral-wallet-level-link:focus-visible {
  outline: none;
  box-shadow: none;
}

.referral-wallet-card .hero-title {
  max-width: 9ch;
  font-size: clamp(2.2rem, 4.4vw, 3.35rem);
  line-height: 0.96;
  letter-spacing: -0.045em;
  font-weight: 650;
  font-variation-settings: normal;
}

.referral-wallet-action svg {
  width: 20px;
  height: 20px;
  stroke: currentColor;
  stroke-width: 1.8;
  fill: none;
  align-self: center;
}

.referral-wallet-action span:last-child {
  font-weight: 700;
  line-height: 1.2;
  text-wrap: balance;
  text-align: center;
  max-width: 12ch;
}

.referral-level-chip-note,
.referral-wallet-level .subtitle {
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.35;
}

.referral-level-trigger {
  width: 100%;
  text-align: left;
  cursor: pointer;
}

.referral-level-trigger-note {
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.35;
}

.referral-levels-sheet {
  display: grid;
  gap: 16px;
}

.referral-levels-sheet-hero {
  display: grid;
  gap: 12px;
  padding: 14px;
  border-radius: 20px;
  border: 1px solid transparent;
  background: var(--md-sys-color-surface-container-low);
}

.referral-levels-sheet-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
}

.referral-levels-sheet-stat {
  display: grid;
  gap: 6px;
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(9, 11, 14, 0.18);
  border: 1px solid transparent;
}

.referral-levels-sheet-stat strong {
  font-family: var(--font-display);
  font-size: 1.05rem;
  line-height: 1.05;
}

.referral-levels-sheet-note {
  margin: 0;
  line-height: 1.45;
}

.referral-levels-sheet-list {
  display: grid;
  gap: 10px;
}

.referral-action-row {
  margin-top: 14px;
}

.referral-copy-btn {
  position: relative;
}

.referral-copy-btn.is-copied {
  animation: referral-copy-pop 320ms cubic-bezier(.2,.8,.2,1);
  background: linear-gradient(135deg, var(--md-sys-color-primary-container), color-mix(in srgb, var(--md-sys-color-on-primary-container) 30%, var(--md-sys-color-primary-container) 70%));
  color: var(--md-sys-color-on-primary-container);
}

.referral-copy-btn.is-copied span {
  animation: referral-copy-fade 320ms cubic-bezier(.2,.8,.2,1);
}

.referral-transfer-card {
  display: grid;
  gap: 16px;
  padding: 18px;
  border-radius: 30px;
  background: linear-gradient(180deg, var(--referral-surface-2), var(--md-sys-color-surface-container));
  border: 1px solid transparent;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
}

.referral-transfer-card,
.referral-transfer-history-card,
.referral-insights-card,
.referral-spotlight-card,
.referral-panel-card {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.03),
    var(--md-sys-elevation-2);
}

.referral-transfer-card .section-head,
.referral-transfer-history-card .section-head,
.referral-insights-card .section-head,
.referral-spotlight-card .section-head,
.referral-panel-card .section-head {
  align-items: start;
  gap: 14px;
  padding-bottom: 12px;
  border-bottom: 0;
}

.referral-transfer-history-card .section-head {
  padding-bottom: 0;
}

.referral-transfer-card .section-head > div,
.referral-transfer-history-card .section-head > div,
.referral-insights-card .section-head > div,
.referral-spotlight-card .section-head > div,
.referral-panel-card .section-head > div {
  display: grid;
  gap: 4px;
}

.referral-transfer-card .section-head .section-eyebrow,
.referral-transfer-history-card .section-head .section-eyebrow,
.referral-insights-card .section-head .section-eyebrow,
.referral-spotlight-card .section-head .section-eyebrow,
.referral-panel-card .section-head .section-eyebrow {
  letter-spacing: 0.12em;
  color: var(--secondary);
}

.referral-transfer-card .section-head .section-title,
.referral-transfer-history-card .section-head .section-title,
.referral-insights-card .section-head .section-title,
.referral-spotlight-card .section-head .section-title,
.referral-panel-card .section-head .section-title {
  font-size: clamp(1.1rem, 2vw, 1.48rem);
  line-height: 1.1;
}

.referral-transfer-card .section-head .status-badge,
.referral-transfer-history-card .section-head .status-badge,
.referral-insights-card .section-head .status-badge,
.referral-spotlight-card .section-head .status-badge,
.referral-panel-card .section-head .status-badge {
  align-self: start;
  min-width: 40px;
  justify-content: center;
  padding: 7px 11px;
  border: 1px solid transparent;
  background: var(--referral-chip);
  color: var(--md-sys-color-on-secondary-container);
}

.referral-transfer-hub {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 18px 20px;
  border-radius: 24px;
  border: 1px solid transparent;
  background: linear-gradient(180deg, var(--referral-surface-3), var(--md-sys-color-surface-container-low));
  color: var(--text);
  text-align: left;
  cursor: pointer;
  transition: transform 0.2s ease, border-color 0.2s ease;
  width: 100%;
}

.referral-transfer-hub:hover {
  transform: translateY(-1px);
  box-shadow: var(--md-sys-elevation-2);
}

.referral-transfer-hub > div {
  min-width: 0;
}

.referral-transfer-hub .list-title,
.referral-transfer-recipient-name {
  margin: 0;
}

.referral-transfer-hub .subtitle {
  margin-top: 6px;
  line-height: 1.4;
}

.referral-transfer-fast-amounts {
  display: grid;
  gap: 10px;
}

.referral-transfer-fast-amount-row {
  display: flex;
  flex-wrap: nowrap;
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 4px;
  scrollbar-width: none;
}

.referral-transfer-fast-amount-row::-webkit-scrollbar {
  display: none;
}

.referral-transfer-fast-amount-row .referral-quick-amount {
  flex: 0 0 auto;
}

.referral-transfer-hub-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 52px;
  height: 52px;
  border-radius: 18px;
  background: linear-gradient(135deg, var(--md-sys-color-primary-container), color-mix(in srgb, var(--md-sys-color-on-primary-container) 24%, var(--md-sys-color-primary-container) 76%));
  color: var(--md-sys-color-on-primary-container);
}

.referral-transfer-hub-arrow svg {
  width: 22px;
  height: 22px;
  stroke: currentColor;
  stroke-width: 1.8;
  fill: none;
}

.referral-transfer-recipient-carousel {
  position: relative;
}

.referral-transfer-recipient-strip {
  display: flex;
  flex-wrap: nowrap;
  gap: 12px;
  overflow-x: auto;
  padding-bottom: 4px;
  scrollbar-width: none;
  scroll-behavior: smooth;
  scroll-snap-type: x proximity;
}

.referral-transfer-recipient-strip::-webkit-scrollbar {
  display: none;
}

.referral-transfer-scroll-btn {
  position: absolute;
  top: 50%;
  z-index: 2;
  width: 46px;
  min-width: 46px;
  min-height: 46px;
  border-radius: 16px;
  transform: translateY(-50%);
  background: rgba(12, 15, 15, 0.88);
  backdrop-filter: blur(10px);
  box-shadow: var(--md-sys-elevation-2);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.referral-transfer-scroll-btn-prev {
  left: 8px;
}

.referral-transfer-scroll-btn-next {
  right: 8px;
}

.referral-transfer-recipient-carousel.has-overflow .referral-transfer-scroll-btn {
  opacity: 1;
  pointer-events: auto;
}

.referral-transfer-scroll-btn.is-hidden {
  opacity: 0;
  pointer-events: none;
}

.referral-transfer-scroll-btn:hover,
.referral-transfer-scroll-btn:active {
  transform: translateY(-50%);
}

.referral-transfer-scroll-btn svg {
  width: 22px;
  height: 22px;
  stroke: currentColor;
  stroke-width: 1.8;
  fill: none;
}

.referral-transfer-recipient {
  flex: 0 0 164px;
  display: grid;
  justify-items: center;
  align-content: start;
  gap: 10px;
  padding: 14px;
  border-radius: 22px;
  border: 1px solid transparent;
  background: linear-gradient(180deg, var(--referral-surface-3), var(--md-sys-color-surface-container-low));
  color: var(--text);
  text-align: center;
  cursor: pointer;
  transition: transform 0.2s ease, border-color 0.2s ease;
  scroll-snap-align: start;
}

.referral-transfer-recipient:hover {
  transform: translateY(-1px);
  box-shadow: var(--md-sys-elevation-2);
}

.referral-transfer-recipient .profile-avatar {
  width: 56px !important;
  height: 56px !important;
  border-radius: 50% !important;
}

.referral-transfer-recipient-name {
  font-weight: 700;
  line-height: 1.2;
}

.referral-transfer-empty-wrap {
  display: block;
  margin-top: 2px;
}

.referral-transfer-onboarding {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  min-height: 156px;
  padding: 22px;
  border-radius: 24px;
  border: 1px solid transparent;
  background: linear-gradient(180deg, var(--referral-surface-3), var(--md-sys-color-surface-container-low));
}

.referral-transfer-onboarding-copy {
  display: grid;
  gap: 8px;
}

.referral-transfer-onboarding-copy .list-title,
.referral-transfer-onboarding-copy .subtitle {
  margin: 0;
}

.referral-transfer-onboarding-cta {
  min-width: 240px;
}

.referral-transfer-empty {
  min-height: 140px;
  display: grid;
  place-items: center;
  text-align: center;
  padding: 20px;
  border-radius: 22px;
}

.referral-insights-card {
  display: grid;
  gap: 14px;
  padding: 18px;
  border-radius: 30px;
  background: linear-gradient(180deg, var(--referral-surface-2), var(--md-sys-color-surface-container));
  border: 1px solid transparent;
}

.referral-inline-insights {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.filter-row.referral-section-tabs {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  align-self: start;
  gap: 0;
  padding: 4px;
  margin: 0;
  border-radius: 999px;
  background: var(--md-sys-color-surface-container-low);
  border: 1px solid color-mix(in srgb, var(--md-sys-color-outline) 18%, transparent 82%);
  isolation: isolate;
}

.referral-pill-row {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.referral-pill-indicator {
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  border-radius: 999px;
  background: color-mix(in srgb, var(--md-sys-color-primary) 16%, var(--md-sys-color-surface-container-high) 84%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.04),
    0 4px 12px rgba(0, 0, 0, 0.12);
  transform: translateX(0);
  transition: transform 0.3s cubic-bezier(0.22, 0.61, 0.36, 1), width 0.3s cubic-bezier(0.22, 0.61, 0.36, 1), background 0.24s ease;
  z-index: 0;
  pointer-events: none;
}

.referral-pill-row.is-pill-initializing .referral-pill-indicator {
  transition: none;
}

.referral-pill-row .nav-pill {
  min-width: auto;
  border: 0;
  min-height: 40px;
  padding: 0 14px;
  background: transparent;
  box-shadow: none;
  color: color-mix(in srgb, var(--md-sys-color-on-surface) 74%, transparent 26%);
  z-index: 1;
  transition: color 0.24s ease, transform 0.2s ease;
}

.referral-pill-row .nav-pill.active {
  transform: none;
  color: var(--md-sys-color-on-surface);
}

.referral-pill-row .nav-pill:hover,
.referral-pill-row .nav-pill:focus-visible {
  transform: none;
  box-shadow: none;
}

.filter-row.referral-history-filter-row {
  width: fit-content;
  margin: 12px 0 0;
}

.filter-row.referral-history-filter-row .nav-pill {
  padding: 0 16px;
}

.filter-row.profile-history-filter-row {
  width: fit-content;
  margin: 12px 0 14px;
}

.filter-row.profile-history-filter-row .nav-pill {
  padding: 0 16px;
}

.referral-stats-stack {
  display: grid;
  gap: 14px;
}

.referral-overview-stack {
  display: grid;
  gap: 14px;
}

.referral-section-panel {
  margin: 0 0 10px;
  min-height: clamp(520px, 62vh, 760px);
  animation: referral-section-fade 220ms cubic-bezier(0.22, 0.61, 0.36, 1);
  transform-origin: top left;
}

.referral-wallet-card + .referral-section-tabs {
  margin-top: 0;
}

.referral-section-tabs + .referral-section-panel {
  margin-top: 0;
}

.referral-wallet-hero + .referral-section-tabs {
  margin-top: 14px;
}

.referral-inline-insight {
  display: grid;
  gap: 8px;
  padding: 14px 16px;
  border-radius: 22px;
  border: 1px solid transparent;
  background: linear-gradient(180deg, var(--referral-surface-3), var(--md-sys-color-surface-container-low));
}

.referral-inline-insight strong {
  font-family: var(--font-display);
  font-size: 1.32rem;
  line-height: 1;
}

@keyframes referral-section-fade {
  0% {
    opacity: 0;
    transform: translateY(10px) scale(0.992);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.referral-subsection {
  display: grid;
  gap: 12px;
  padding-top: 4px;
}

.referral-subsection .section-title {
  font-size: clamp(1rem, 1.7vw, 1.28rem);
}

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

.referral-insight-tile {
  display: grid;
  gap: 8px;
  padding: 16px;
  border-radius: 22px;
  border: 1px solid transparent;
  background: linear-gradient(180deg, var(--referral-surface-3), var(--md-sys-color-surface-container-low));
}

.referral-insight-tile strong {
  font-family: var(--font-display);
  font-size: 1.45rem;
  line-height: 1;
}

.referral-transfer-history-card {
  display: grid;
  gap: 10px;
  padding: 18px;
  border-radius: 30px;
  background: linear-gradient(180deg, var(--referral-surface-2), var(--md-sys-color-surface-container));
  border: 1px solid transparent;
}

.referral-history-filter-row {
  margin: 0;
  flex-wrap: wrap;
  gap: 10px;
}

.referral-activity-list {
  display: grid;
  gap: 12px;
}

.referral-activity-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 15px 16px;
  border-radius: 22px;
  border: 0;
  background: linear-gradient(180deg, var(--referral-surface-3), var(--md-sys-color-surface-container-low));
  box-shadow: none;
}

.referral-activity-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border-radius: 16px;
  background: color-mix(in srgb, var(--md-sys-color-secondary-container) 64%, transparent 36%);
  color: var(--text);
}

.referral-activity-icon.has-avatar {
  background: transparent;
  border-radius: 50%;
  overflow: hidden;
}

.referral-activity-icon .profile-avatar {
  width: 46px !important;
  height: 46px !important;
  border-radius: 50% !important;
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--md-sys-color-primary) 24%, transparent 76%);
}

.referral-activity-icon svg {
  width: 20px;
  height: 20px;
  stroke: currentColor;
  stroke-width: 1.8;
  fill: none;
}

.referral-activity-row.is-outgoing .referral-activity-icon {
  background: color-mix(in srgb, var(--md-sys-color-primary-container) 76%, transparent 24%);
  color: var(--md-sys-color-on-primary-container);
}

.referral-activity-row.is-incoming .referral-activity-icon {
  background: color-mix(in srgb, var(--md-sys-color-secondary-container) 82%, var(--md-sys-color-primary-container) 18%);
  color: var(--md-sys-color-on-secondary-container);
}

.referral-activity-row.is-reward .referral-activity-icon {
  background: color-mix(in srgb, var(--md-sys-color-tertiary-container) 82%, var(--md-sys-color-primary-container) 18%);
  color: var(--accent);
}

.referral-activity-copy {
  min-width: 0;
}

.referral-activity-copy .list-title,
.referral-activity-copy .subtitle {
  margin: 0;
}

.referral-activity-copy .subtitle {
  margin-top: 4px;
  line-height: 1.35;
}

.referral-activity-comment {
  margin-top: 8px;
}

.referral-activity-meta {
  display: grid;
  justify-items: end;
  gap: 6px;
  min-width: 104px;
}

.referral-activity-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 26px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid transparent;
  background: var(--referral-chip);
  color: var(--muted);
  font-size: 0.73rem;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.referral-activity-row .amount-bs {
  font-family: var(--font-display);
  font-size: 1.06rem;
  letter-spacing: -0.02em;
}

.referral-activity-row.is-outgoing .referral-activity-status {
  color: var(--md-sys-color-on-primary-container);
  border-color: transparent;
  background: color-mix(in srgb, var(--md-sys-color-primary-container) 82%, transparent 18%);
}

.referral-activity-row.is-incoming .referral-activity-status {
  color: var(--md-sys-color-on-secondary-container);
  border-color: color-mix(in srgb, var(--md-sys-color-secondary) 18%, transparent 82%);
  background: color-mix(in srgb, var(--md-sys-color-secondary-container) 82%, transparent 18%);
}

.referral-activity-row.is-reward .referral-activity-status {
  color: var(--accent);
  border-color: color-mix(in srgb, var(--md-sys-color-tertiary) 18%, transparent 82%);
  background: color-mix(in srgb, var(--md-sys-color-tertiary-container) 82%, transparent 18%);
}

.referral-referral-card {
  gap: 14px;
  border-radius: 22px;
  border: 1px solid transparent;
  background: linear-gradient(180deg, var(--referral-surface-3), var(--md-sys-color-surface-container-low));
}

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

.referral-referral-metric {
  display: grid;
  gap: 6px;
  padding: 12px 14px;
  border-radius: 18px;
  background: color-mix(in srgb, var(--md-sys-color-surface-container) 82%, var(--md-sys-color-primary-container) 18%);
  border: 1px solid transparent;
}

.referral-referral-metric strong {
  font-family: var(--font-display);
  font-size: 1.2rem;
  line-height: 1;
}

.referral-spotlight-card {
  display: grid;
  gap: 14px;
  padding: 18px;
  border-radius: 30px;
  background: linear-gradient(180deg, var(--referral-surface-2), var(--md-sys-color-surface-container));
  border: 1px solid transparent;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.03),
    var(--md-sys-elevation-2);
}

.referral-spotlight-embedded {
  gap: 12px;
  padding: 16px;
  border-radius: 24px;
  box-shadow: none;
}

.referral-spotlight-kicker {
  color: var(--secondary);
  font: 700 0.76rem/1 var(--font-display);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.referral-spotlight-body,
.referral-spotlight-stats {
  display: grid;
}

.referral-spotlight-body {
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
}

.referral-spotlight-avatar .profile-avatar {
  width: 72px !important;
  height: 72px !important;
  border-radius: 50% !important;
}

.referral-spotlight-copy .list-title,
.referral-spotlight-copy .subtitle,
.referral-spotlight-note {
  margin: 0;
}

.referral-spotlight-copy .subtitle,
.referral-spotlight-note {
  margin-top: 4px;
}

.referral-spotlight-stats {
  grid-template-columns: repeat(2, minmax(88px, 1fr));
  gap: 10px;
}

.referral-spotlight-stat {
  display: grid;
  gap: 6px;
  padding: 12px 14px;
  border-radius: 18px;
  background: linear-gradient(180deg, var(--referral-surface-3), var(--md-sys-color-surface-container-low));
  border: 1px solid var(--referral-outline-soft);
  text-align: center;
}

.referral-spotlight-stat strong {
  font-family: var(--font-display);
  font-size: 1.28rem;
  line-height: 1;
}

@keyframes referral-wallet-shimmer {
  0% {
    transform: translate3d(-10%, -6%, 0) rotate(-12deg) scale(1.08);
    opacity: 0.42;
  }
  35% {
    transform: translate3d(6%, -10%, 0) rotate(-9deg) scale(1.12);
    opacity: 0.56;
  }
  68% {
    transform: translate3d(10%, 8%, 0) rotate(-14deg) scale(1.1);
    opacity: 0.5;
  }
  100% {
    transform: translate3d(-10%, -6%, 0) rotate(-12deg) scale(1.08);
    opacity: 0.42;
  }
}

@keyframes referral-wallet-balance-pop {
  0% {
    transform: translate3d(0, 4px, 0) scale(0.97);
    opacity: 0.7;
    color: rgba(121, 255, 242, 0.88);
    text-shadow: 0 0 0 rgba(121, 255, 242, 0);
    filter: saturate(0.92) brightness(0.96);
  }

  48% {
    transform: translate3d(6px, -1px, 0) scale(1.03);
    opacity: 1;
    color: #f5fffd;
    text-shadow: 8px 0 18px rgba(121, 255, 242, 0.22);
    filter: saturate(1.08) brightness(1.03);
  }

  100% {
    transform: translate3d(0, 0, 0) scale(1);
    opacity: 1;
    color: var(--md-sys-color-on-surface);
    text-shadow: 0 0 0 rgba(121, 255, 242, 0);
    filter: saturate(1) brightness(1);
  }
}

.referral-panel-card {
  gap: 14px;
  padding: 18px;
  border-radius: 28px;
}

.referral-panel-card .list,
.referral-panel-card .timeline {
  gap: 12px;
}

.referral-panel-more {
  margin-top: 2px;
}

.referral-panel-more .ghost-btn {
  width: 100%;
}

.history-more-btn {
  border-color: transparent;
  background: color-mix(in srgb, rgba(88, 95, 95, 0.82) 58%, rgba(12, 15, 15, 0.96) 42%);
  color: color-mix(in srgb, #f3f6f6 90%, #c8d0d0 10%);
  box-shadow: none;
}

.history-more-btn:hover,
.history-more-btn:active {
  background: color-mix(in srgb, rgba(104, 112, 112, 0.9) 62%, rgba(12, 15, 15, 0.98) 38%);
}

.referral-sheet-list,
.referral-history-list {
  gap: 12px;
}

.referral-sheet-item,
.referral-history-item {
  padding: 16px;
  border-radius: 20px;
}

.referral-sheet-meta {
  display: grid;
  gap: 8px;
  color: var(--muted);
}

.referral-sheet-meta strong {
  color: var(--text);
  font-weight: 700;
}

.referral-transfer-form {
  gap: 16px;
}

.transfer-bs-sheet {
  background: color-mix(in srgb, var(--md-sys-color-surface) 94%, #0c1011);
}

.transfer-bs-sheet .sheet-body {
  padding-top: 8px;
}

.referral-transfer-bank-sheet {
  display: grid;
  gap: 14px;
}

.referral-transfer-bank-hero,
.referral-transfer-bank-section,
.referral-transfer-bank-summary {
  display: grid;
  gap: 10px;
  padding: 18px 18px 16px;
  border-radius: 24px;
  border: 0;
  background: color-mix(in srgb, var(--md-sys-color-surface-container-low) 88%, #101516);
  box-shadow: none;
}

.referral-transfer-bank-hero {
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  gap: 14px;
}

.referral-transfer-bank-hero-copy {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.referral-transfer-bank-hero-copy strong {
  font: 800 clamp(2rem, 4vw, 2.7rem)/0.94 var(--font-display);
  letter-spacing: -0.04em;
}

.referral-transfer-bank-hero-copy .subtitle {
  margin: 0;
  max-width: 34ch;
  color: color-mix(in srgb, var(--text) 70%, white 30%);
  line-height: 1.45;
}

.referral-transfer-bank-hero-action {
  min-height: 44px;
  padding-inline: 16px;
  align-self: start;
  border: 0;
  background: color-mix(in srgb, var(--md-sys-color-surface-container) 92%, #13191a);
  box-shadow: none;
}

.referral-transfer-bank-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.referral-transfer-bank-section-note {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 600;
  white-space: nowrap;
}

.referral-transfer-bank-field {
  gap: 0;
}

.referral-transfer-bank-contact-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
}

.referral-transfer-bank-contact-field {
  min-width: 0;
}

.referral-transfer-bank-field input {
  min-height: 60px;
  padding-inline: 18px;
  border: 0;
  border-radius: 18px;
  background: color-mix(in srgb, var(--md-sys-color-surface) 94%, #101516);
  box-shadow: none;
  font-size: 1rem;
}

.referral-transfer-bank-field input:hover,
.referral-transfer-bank-field input:focus {
  background: color-mix(in srgb, var(--md-sys-color-surface) 98%, #141a1b);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--md-sys-color-primary) 18%, transparent);
}

.referral-transfer-bank-scan-action {
  width: 60px;
  height: 60px;
  min-width: 60px;
  min-height: 60px;
  max-width: 60px;
  max-height: 60px;
  min-height: 60px;
  padding: 0;
  border-radius: 18px;
  align-self: stretch;
  justify-self: stretch;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1 / 1;
}

.referral-transfer-bank-scan-action span:last-child {
  display: none;
}

.referral-transfer-bank-scan-action svg {
  width: 22px;
  height: 22px;
}

.referral-transfer-bank-amount-field {
  position: relative;
}

.referral-transfer-bank-amount-field input {
  padding-right: 72px;
  font: 800 1.3rem/1 var(--font-display);
  letter-spacing: -0.03em;
}

.referral-transfer-bank-currency {
  position: absolute;
  top: 50%;
  right: 18px;
  transform: translateY(-50%);
  color: var(--secondary);
  font: 800 0.92rem/1 var(--font-display);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  pointer-events: none;
}

.referral-transfer-bank-presets {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.referral-transfer-bank-preset {
  min-height: 44px;
  padding: 0 12px;
  border: 0;
  border-radius: 16px;
  background: color-mix(in srgb, var(--md-sys-color-surface) 95%, #121718);
  color: var(--text);
  font: 700 0.94rem/1 var(--font-display);
  box-shadow: none;
  transition: background-color 0.18s ease, transform 0.18s ease, color 0.18s ease;
}

.referral-transfer-bank-preset:hover {
  transform: translateY(-1px);
  background: color-mix(in srgb, var(--md-sys-color-surface) 100%, #171d1f);
}

.referral-transfer-bank-preset.is-selected {
  background: color-mix(in srgb, var(--md-sys-color-primary-container) 84%, #162120);
  color: var(--md-sys-color-on-primary-container);
}

.referral-transfer-bank-summary {
  gap: 12px;
  background: color-mix(in srgb, var(--md-sys-color-surface-container) 86%, #121718);
}

.referral-transfer-bank-error {
  padding: 14px 16px;
  border-radius: 18px;
  border: 0;
  background: color-mix(in srgb, var(--md-sys-color-error-container) 92%, #1d1111);
  color: var(--md-sys-color-on-error-container);
  font-size: 0.95rem;
  line-height: 1.45;
  box-shadow: none;
}

.referral-transfer-bank-summary-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--muted);
  font-size: 0.95rem;
}

.referral-transfer-bank-summary-row strong {
  color: var(--text);
  font: 800 1.02rem/1 var(--font-display);
}

.referral-transfer-bank-confirm-sheet .referral-transfer-bank-hero-copy strong {
  font-size: clamp(2.1rem, 4.8vw, 3rem);
}

.referral-transfer-bank-counterparty {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 14px;
}

.referral-transfer-bank-counterparty-avatar .profile-avatar {
  box-shadow: none;
}

.referral-transfer-bank-counterparty-copy {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.referral-transfer-bank-counterparty-copy strong {
  font: 800 1.02rem/1.1 var(--font-display);
  color: var(--text);
}

.referral-transfer-bank-counterparty-copy span {
  color: var(--muted);
  font-size: 0.92rem;
}

.referral-transfer-bank-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
}

.referral-transfer-bank-submit,
.referral-transfer-bank-cancel {
  min-height: 52px;
  border: 0;
  box-shadow: none;
}

.referral-transfer-bank-submit {
  background: color-mix(in srgb, var(--md-sys-color-primary) 92%, #15b7ab);
  color: var(--md-sys-color-on-primary);
}

.referral-transfer-bank-cancel {
  min-width: 112px;
  background: color-mix(in srgb, var(--md-sys-color-surface-container) 92%, #131819);
}

@media (max-width: 640px) {
  .referral-transfer-bank-hero {
    grid-template-columns: 1fr;
  }

  .referral-transfer-bank-contact-row {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .referral-transfer-bank-presets {
    display: flex;
    flex-wrap: nowrap;
    gap: 10px;
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: 4px;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
  }

  .referral-transfer-bank-presets::-webkit-scrollbar {
    display: none;
  }

  .referral-transfer-bank-preset {
    flex: 0 0 auto;
    min-width: 94px;
    scroll-snap-align: start;
  }

  .referral-transfer-bank-actions {
    grid-template-columns: 1fr;
  }

  .referral-transfer-bank-cancel {
    min-width: 0;
  }
}

.referral-transfer-form-presets {
  display: grid;
  gap: 10px;
}

.referral-transfer-balance,
.referral-transfer-confirm-card {
  display: grid;
  gap: 8px;
  padding: 16px 18px;
  border-radius: 20px;
  border: 1px solid var(--referral-outline-soft);
  background: linear-gradient(180deg, var(--md-sys-color-surface-container-high), var(--md-sys-color-surface-container-low));
}

.referral-transfer-balance strong,
.referral-transfer-confirm-card strong {
  font-family: var(--font-display);
  font-size: 1.6rem;
  line-height: 1;
}

.referral-transfer-confirm {
  display: grid;
  gap: 14px;
}

.referral-quick-transfer {
  display: grid;
  gap: 14px;
}

.referral-quick-transfer-bank-sheet {
  display: grid;
  gap: 14px;
}

.referral-quick-transfer-bank-sheet .referral-transfer-bank-hero {
  grid-template-columns: 1fr;
}

.referral-quick-transfer-bank-sheet .referral-transfer-bank-cancel {
  background: color-mix(in srgb, var(--md-sys-color-surface-container) 92%, #131819) !important;
  color: var(--text);
  box-shadow: none;
  border: 0;
}

.referral-referrals-onboarding {
  display: grid;
  gap: 14px;
  padding: 18px;
  border-radius: 24px;
  border: 1px solid var(--referral-outline-soft);
  background: linear-gradient(180deg, var(--referral-surface-3), var(--md-sys-color-surface-container-low));
}

.referral-quick-transfer-custom {
  width: 100%;
}

.achievements-page {
  display: grid;
  gap: 18px;
}

.achievements-hero-copy,
.achievement-description {
  margin: 0;
}

.achievements-grid {
  display: grid;
  gap: 14px;
}

.achievement-card {
  display: grid;
  gap: 12px;
}

.achievement-card.is-unlocked {
  border-color: color-mix(in srgb, var(--md-sys-color-primary) 18%, transparent 82%);
  background: linear-gradient(180deg, color-mix(in srgb, var(--md-sys-color-primary-container) 26%, var(--md-sys-color-surface-container-low) 74%), var(--md-sys-color-surface-container-low));
}

.referral-qr-sheet {
  display: grid;
  gap: 16px;
}

.referral-qr-bank-sheet .referral-transfer-bank-hero-copy {
  text-align: left;
  align-items: start;
}

.referral-qr-bank-sheet .referral-transfer-bank-hero-copy strong {
  font-size: clamp(1.7rem, 4.2vw, 2.35rem);
  line-height: 1.02;
  letter-spacing: -0.035em;
  text-wrap: balance;
}

.referral-qr-bank-sheet .referral-transfer-bank-hero-copy .subtitle {
  max-width: none;
}

.referral-qr-bank-sheet .referral-transfer-bank-summary {
  text-align: center;
}

.referral-qr-bank-frame {
  display: grid;
  place-items: center;
  padding: 18px;
}

.referral-qr-stage {
  position: relative;
  display: grid;
  place-items: center;
  width: min(100%, 360px);
  aspect-ratio: 1 / 1;
  border-radius: 32px;
  background:
    radial-gradient(circle at 20% 18%, rgba(0, 191, 175, 0.14), transparent 26%),
    radial-gradient(circle at 78% 80%, rgba(0, 191, 175, 0.1), transparent 24%),
    linear-gradient(180deg, #f7fffd, #e8f7f4);
  overflow: hidden;
}

.referral-qr-stage.is-loading::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(110deg, transparent 0%, rgba(255, 255, 255, 0.72) 44%, transparent 72%);
  transform: translateX(-120%);
  animation: referral-qr-sheen 1.4s linear infinite;
}

.referral-qr-loading {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  z-index: 1;
}

.referral-qr-loading-orb {
  width: 68px;
  height: 68px;
  border-radius: 24px;
  background:
    radial-gradient(circle at 35% 35%, rgba(255, 255, 255, 0.72), rgba(255, 255, 255, 0) 60%),
    linear-gradient(180deg, rgba(0, 191, 175, 0.22), rgba(0, 191, 175, 0.08));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.55),
    0 12px 24px rgba(0, 0, 0, 0.08);
  animation: referral-qr-orb-pulse 1.5s ease-in-out infinite;
}

.referral-qr-bank-scanner-frame {
  min-height: 296px;
}

.referral-qr-bank-note {
  justify-content: center;
  text-align: center;
  color: color-mix(in srgb, var(--text) 74%, white 26%);
  line-height: 1.5;
}

.referral-qr-svg-shell {
  width: min(100%, 320px);
  aspect-ratio: 1 / 1;
  border-radius: 28px;
  background: transparent;
  opacity: 0;
  transform: scale(0.96);
  transition: opacity 0.28s ease, transform 0.28s ease;
}

.referral-qr-svg-shell svg {
  display: block;
  width: 100%;
  height: auto;
}

.referral-qr-stage.is-ready .referral-qr-svg-shell {
  opacity: 1;
  transform: scale(1);
}

.referral-qr-stage.is-ready .referral-qr-loading,
.referral-qr-stage.is-error .referral-qr-loading {
  opacity: 0;
  pointer-events: none;
}

.referral-qr-stage.is-error::after {
  content: "Не удалось загрузить QR";
  position: absolute;
  inset: auto 18px 18px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(15, 24, 24, 0.86);
  color: rgba(255, 255, 255, 0.92);
  text-align: center;
  font-size: 0.88rem;
}

.referral-qr-video {
  width: min(100%, 360px);
  min-height: 260px;
  border-radius: 20px;
  background: #000;
  object-fit: cover;
}

@keyframes referral-qr-sheen {
  0% {
    transform: translateX(-120%);
  }

  100% {
    transform: translateX(120%);
  }
}

@keyframes referral-qr-orb-pulse {
  0%,
  100% {
    transform: scale(0.94);
    opacity: 0.86;
  }

  50% {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes referral-copy-pop {
  0% {
    transform: scale(1);
  }
  40% {
    transform: scale(1.03);
  }
  100% {
    transform: scale(1);
  }
}

@keyframes referral-copy-fade {
  0% {
    opacity: 0.75;
  }
  100% {
    opacity: 1;
  }
}

.referral-balance-card,
.booking-step-head,
.summary-grid,
.shop-teaser-grid {
  display: grid;
  gap: 12px;
}

.referral-balance-card {
  margin: 8px 0 2px;
  padding: 16px;
  border-radius: 22px;
  border: 1px solid transparent;
  background: var(--md-sys-color-surface-container-low);
}

.referral-program-card,
.referral-panel-card {
  gap: 14px;
}

.referral-program-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.referral-program-pill {
  display: inline-flex;
  align-items: center;
  padding: 10px 14px;
  border-radius: 999px;
  background: var(--md-sys-color-surface-container);
  border: 1px solid transparent;
  color: var(--text);
  font-weight: 700;
}

.referral-program-note {
  margin: 0;
}

.referral-program-levels {
  display: grid;
  gap: 12px;
}

.referral-level-card {
  display: grid;
  gap: 12px;
  padding: 16px;
  border-radius: 22px;
  border: 1px solid transparent;
  background: var(--md-sys-color-surface-container-low);
}

.referral-level-card.is-current {
  border-color: transparent;
  background: linear-gradient(180deg, rgba(0, 191, 175, 0.09), rgba(31, 37, 36, 0.98));
  box-shadow: inset 0 0 0 1px rgba(0, 191, 175, 0.12);
}

.referral-level-card-compact {
  gap: 10px;
  padding: 14px;
}

.referral-level-card-top,
.referral-level-card-main,
.referral-level-card-range {
  display: grid;
}

.referral-level-card-top {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: start;
}

.referral-level-card-main {
  gap: 8px;
}

.referral-level-card-main .list-title {
  margin: 0;
}

.referral-level-rewards {
  display: grid;
  gap: 8px;
}

.referral-level-rewards-compact {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 8px;
}

.referral-level-reward {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 16px;
  background: var(--md-sys-color-surface-container);
  color: var(--muted);
}

.referral-level-reward strong {
  color: var(--text);
}

.referral-level-reward-compact {
  min-height: 68px;
  align-items: start;
  flex-direction: column;
  justify-content: space-between;
  gap: 8px;
}

.referral-level-reward-label {
  color: var(--muted);
  line-height: 1.35;
}

.referral-level-reward-value {
  font-family: var(--font-display);
  font-size: 1.05rem;
}

.booking-grid {
  grid-template-columns: 1fr;
  width: 100%;
  max-width: 100%;
  margin: 0;
}

.booking-step {
  gap: 16px;
  align-content: start;
  scroll-margin-top: 22px;
  padding: 20px;
  border-radius: 30px;
  background: var(--md-sys-color-surface-container-high);
}

.booking-step-head {
  grid-template-columns: 1fr auto;
  align-items: center;
}

.step-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 60px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid transparent;
  background: var(--md-sys-color-surface-container);
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 700;
}

.barber-card.is-selected,
.service-item.is-selected,
.slot-item.is-selected {
  border-color: transparent;
  background: var(--md-sys-color-secondary-container);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}

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

.booking-flow {
  position: relative;
  gap: 16px;
}

.booking-step-active {
  animation: booking-step-in 320ms cubic-bezier(.2,.8,.2,1);
}

.booking-grid .booking-step:nth-child(2),
.booking-grid .booking-step:nth-child(3),
.booking-grid .booking-step:nth-child(4),
.booking-summary.booking-step-active {
  animation-duration: 360ms;
}

.booking-step-head {
  padding-bottom: 2px;
}

.booking-step .list,
.booking-step .barber-grid,
.booking-summary .summary-grid,
.booking-summary .service-chip-row {
  margin-top: 6px;
}

.booking-step .empty-state,
.booking-summary .summary-master-row {
  margin-top: 2px;
}

.booking-panel,
.booking-summary {
  transition: transform 0.22s ease, border-color 0.22s ease, background-color 0.22s ease;
}

.booking-panel:hover,
.booking-summary:hover {
  transform: translateY(-1px);
}

.booking-page > .booking-summary {
  width: 100%;
  max-width: 100%;
  margin-inline: 0;
}

.booking-hero {
  position: relative;
  z-index: 3;
  padding: 6px 10px 2px;
  pointer-events: none;
}

.booking-hero-floating {
  margin: 0 0 -18px;
}

.booking-hero-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--type-display-lg);
  text-transform: uppercase;
  line-height: 0.92;
  letter-spacing: -0.05em;
  text-shadow: 0 10px 34px rgba(0, 0, 0, 0.3);
  font-variation-settings: "opsz" 54, "wght" 780, "GRAD" 110;
}

.booking-step .barber-grid {
  grid-template-columns: 1fr;
}

.booking-step[data-booking-step="barber"] .barber-card,
.home-barber-card {
  width: 100%;
  appearance: none;
  color: inherit;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  padding: 0;
  border-radius: 28px;
  background: var(--md-sys-color-surface-container-low);
  border: 1px solid transparent;
  text-align: left;
  transition: transform 0.22s ease, border-color 0.22s ease, background-color 0.22s ease, box-shadow 0.22s ease;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02), 0 10px 24px rgba(0, 0, 0, 0.16);
}

.booking-step[data-booking-step="barber"] .barber-card::before,
.home-barber-card::before {
  content: "";
  position: absolute;
  inset: 1px 1px auto 1px;
  width: calc(100% - 2px);
  height: 5px;
  border-radius: 27px 27px 0 0;
  background: rgba(255, 255, 255, 0.045);
  opacity: 0.42;
  transition: background-color 0.22s ease;
}

.booking-step[data-booking-step="barber"] .barber-card .barber-name,
.home-barber-card .barber-name {
  margin: 0;
  font-size: clamp(1.45rem, 2.6vw, 2.1rem);
  line-height: 0.96;
  letter-spacing: -0.03em;
}

.booking-step[data-booking-step="barber"] .barber-card .subtitle,
.home-barber-card .subtitle {
  margin: 0;
  max-width: 22ch;
  line-height: 1.45;
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.74);
}

.booking-step[data-booking-step="barber"] .barber-card:hover,
.home-barber-card:hover {
  transform: translateY(-2px);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02), var(--md-sys-elevation-3);
}

.booking-step[data-booking-step="barber"] .barber-card.is-selected::before {
  background: var(--primary);
  opacity: 1;
  box-shadow: 0 0 18px color-mix(in srgb, var(--primary) 38%, transparent);
}

.booking-step[data-booking-step="barber"] .barber-card.is-selected {
  background: color-mix(in srgb, var(--md-sys-color-secondary-container) 80%, var(--md-sys-color-surface-container-high) 20%);
}

.booking-barber-surface {
  position: relative;
  min-height: 292px;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(208px, 0.95fr);
  align-items: stretch;
  gap: 10px;
  padding: 22px 22px 0;
}

.booking-barber-surface::before {
  content: "";
  position: absolute;
  inset: 18px 18px auto auto;
  width: 86px;
  height: 12px;
  border-radius: 999px;
  background:
    radial-gradient(circle, rgba(255, 255, 255, 0.92) 0 34%, transparent 40%) 0 50%/18px 12px repeat-x;
  opacity: 0.66;
}

.booking-barber-copy {
  position: relative;
  z-index: 1;
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: space-between;
  gap: 16px;
  padding: 10px 0 22px;
}

.booking-barber-kicker {
  display: inline-flex;
  align-self: flex-start;
  padding: 7px 10px;
  border-radius: 999px;
  background: var(--md-sys-color-surface-container-highest);
  color: var(--secondary);
  font-size: var(--type-label-md);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.booking-barber-meta {
  display: grid;
  gap: 10px;
  margin-top: auto;
}

.booking-barber-pill,
.booking-barber-action {
  display: inline-flex;
  align-self: flex-start;
  min-height: 36px;
  align-items: center;
  border-radius: 999px;
  font-weight: 700;
}

.booking-barber-pill {
  padding: 0 12px;
  background: var(--md-sys-color-surface-container-highest);
  color: var(--text);
  font-size: 0.84rem;
}

.booking-barber-action {
  padding: 0 2px;
  color: var(--secondary);
  font-size: 0.92rem;
  line-height: 1.35;
}

.booking-barber-visual {
  position: relative;
  min-height: 240px;
  display: flex;
  align-items: end;
  justify-content: end;
}

.booking-barber-visual::before {
  content: "";
  position: absolute;
  inset: 12px 0 0 14px;
  border-radius: 34px 34px 0 0;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(240, 244, 245, 0.88)),
    repeating-linear-gradient(135deg, rgba(19, 20, 22, 0.03) 0 4px, rgba(19, 20, 22, 0.08) 4px 8px);
  box-shadow: inset 0 0 0 1px rgba(19, 20, 22, 0.08);
}

.booking-barber-visual::after {
  content: "";
  position: absolute;
  left: 0;
  right: 22px;
  bottom: 0;
  height: 32%;
  border-radius: 28px 28px 0 0;
  background: linear-gradient(180deg, var(--md-sys-color-primary), #5ecfbd);
}

.booking-barber-visual-frame {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: end;
  justify-content: end;
}

.booking-barber-photo {
  position: relative;
  z-index: 2;
  width: min(100%, 250px);
  max-height: 286px;
  object-fit: contain;
  object-position: center bottom;
  border-radius: 0;
  filter: drop-shadow(0 16px 28px rgba(0, 0, 0, 0.3));
  transform: translateX(6px);
}

.booking-step[data-booking-step="barber"] .barber-card .booking-barber-visual .profile-avatar {
  position: relative;
  z-index: 2;
  width: 154px !important;
  height: 154px !important;
  margin: auto 10px 18px auto;
  border: 3px solid rgba(255, 255, 255, 0.08);
}

.booking-step[data-booking-step="barber"] .barber-card.is-selected .booking-barber-pill {
  background: rgba(143, 232, 216, 0.16);
  color: var(--md-sys-color-on-primary-container);
}

.booking-step[data-booking-step="barber"] .barber-card.is-selected .booking-barber-action {
  color: var(--md-sys-color-on-primary-container);
}

.home-barber-card .booking-barber-surface {
  min-height: 276px;
  grid-template-columns: minmax(0, 1.08fr) minmax(178px, 0.92fr);
  grid-template-areas:
    "head visual"
    "description visual"
    "bottom visual";
  row-gap: 10px;
}

.home-barber-head {
  grid-area: head;
  display: grid;
  gap: 8px;
  align-content: start;
}

.home-barber-card .home-barber-description {
  grid-area: description;
  max-width: none;
  margin: 0;
  padding-right: 6px;
  text-align: justify;
  text-wrap: pretty;
}

.home-barber-bottom {
  grid-area: bottom;
  margin-top: auto;
  align-self: end;
  max-width: 18ch;
  padding: 10px 0 4px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.home-barber-card .booking-barber-visual {
  grid-area: visual;
  align-self: end;
  min-height: 100%;
}

.home-barber-card .booking-barber-meta {
  margin-top: 0;
}

.home-barber-card .barber-name {
  font-size: clamp(1.35rem, 2.2vw, 1.9rem);
  letter-spacing: -0.02em;
  color: #f2f7f4;
}

.home-barber-card .subtitle {
  max-width: none;
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
}

.home-barber-phrase {
  color: rgba(242, 247, 244, 0.92);
  font-weight: 700;
  line-height: 1.35;
}

.home-barber-description {
  font-size: 0.84rem;
  line-height: 1.42;
  color: rgba(224, 228, 225, 0.74);
}

.barber-profile-page {
  --barber-accent: #ff8a2a;
  --barber-accent-strong: color-mix(in srgb, var(--barber-accent) 76%, white 24%);
  --barber-display-font: "Oxanium", "Unbounded", var(--font-display);
  --barber-ui-font: "Chakra Petch", "Manrope", var(--font-body);
  gap: 18px;
  max-width: 960px;
  margin: 0 auto;
}

.barber-profile-hero {
  position: relative;
  overflow: visible;
  padding: 24px 18px 12px;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  perspective: 1600px;
}

.barber-profile-scene {
  position: relative;
  --tilt-x: 0deg;
  --tilt-y: 0deg;
  --sheen-x: 0%;
  --sheen-y: 0%;
  --text-shimmer: 50%;
  min-height: 520px;
  overflow: hidden;
  border-radius: 34px;
  background: #303031;
  box-shadow: none;
  isolation: isolate;
  contain: layout paint;
  will-change: transform;
  transform-origin: center center;
  transform: perspective(1600px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));
  transform-style: preserve-3d;
  transition: transform 0.18s ease-out;
  backface-visibility: hidden;
}

.barber-profile-surface {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  overflow: hidden;
  transform-style: preserve-3d;
  backface-visibility: hidden;
}

.barber-profile-surface::before,
.barber-profile-surface::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 2;
}

.barber-profile-surface::before {
  inset: 0;
  border-radius: inherit;
  background:
    linear-gradient(112deg, transparent 16%, rgba(255, 255, 255, 0.025) 30%, rgba(255, 255, 255, 0.14) 48%, rgba(255, 255, 255, 0.035) 61%, transparent 76%),
    radial-gradient(circle at 22% 18%, rgba(255, 255, 255, 0.065), transparent 24%);
  background-size: 182% 182%, 146% 146%;
  background-position:
    calc(50% + (var(--sheen-x) * 0.42)) calc(50% + (var(--sheen-y) * 0.28)),
    calc(20% + (var(--sheen-x) * 0.16)) calc(18% + (var(--sheen-y) * 0.12));
  background-repeat: no-repeat;
  mix-blend-mode: screen;
  opacity: 0.48;
  transition: background-position 0.14s ease-out, opacity 0.14s ease-out;
}

.barber-profile-surface::after {
  background-image:
    radial-gradient(circle at 16% 12%, rgba(255, 255, 255, 0.045), transparent 18%);
  background-size: auto;
  opacity: 0.18;
  transform: translate3d(calc(var(--sheen-x) * -0.12), calc(var(--sheen-y) * -0.12), 0);
  transition: transform 0.14s ease-out, opacity 0.14s ease-out;
}

.barber-profile-scene.is-tilt-active,
.barber-profile-scene.is-tilt-active .barber-profile-surface::before,
.barber-profile-scene.is-tilt-active .barber-profile-surface::after {
  transition: none;
}

.barber-profile-backdrop,
.barber-profile-layout {
  position: relative;
  z-index: 1;
}

.barber-profile-backdrop {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}

.barber-profile-backdrop-glow,
.barber-profile-backdrop-orb,
.barber-profile-backdrop-wave,
.barber-profile-backdrop-grid,
.barber-profile-backdrop-name {
  position: absolute;
}

.barber-profile-backdrop-glow {
  left: -86%;
  top: 54%;
  width: 132%;
  height: 146%;
  border-radius: 50%;
  background: #3c3d3c;
  filter: none;
  opacity: 1;
}

.barber-profile-backdrop-orb {
  border-radius: 50%;
  border: 0;
  opacity: 1;
}

.barber-profile-backdrop-orb-a {
  display: none;
}

.barber-profile-backdrop-orb-b {
  display: none;
}

.barber-profile-backdrop-wave {
  top: -90%;
  right: -50%;
  left: auto;
  width: 119%;
  height: 176%;
  background: #1d1d1d;
  border-radius: 50%;
  transform: none;
  opacity: 1;
}

.barber-profile-backdrop-grid {
  display: none;
}

.barber-profile-backdrop-name {
  top: 30px;
  right: 34px;
  left: auto;
  bottom: auto;
  overflow: visible;
  color: rgba(255, 255, 255, 0.96);
  font: 800 clamp(2.5rem, 4vw, 3.9rem)/0.9 var(--barber-display-font);
  letter-spacing: -0.04em;
  text-transform: uppercase;
  white-space: nowrap;
  text-align: right;
}

.barber-profile-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.9fr);
  align-items: stretch;
  min-height: 520px;
  padding: 26px 30px 22px;
  gap: 12px;
  overflow: visible;
}

.barber-profile-copy {
  position: relative;
  z-index: 2;
  align-self: end;
  display: grid;
  gap: 10px;
  padding: 86px 0 10px;
  max-width: min(100%, 34rem);
  width: 100%;
}

.barber-profile-copy-head {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}

.barber-profile-kicker,
.barber-profile-meta-label {
  font: 700 0.78rem/1 var(--barber-ui-font);
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.barber-profile-kicker {
  display: none;
}

.barber-profile-title {
  margin: 0;
  color: #ffffff;
  font: 800 clamp(2.8rem, 5vw, 4.35rem)/0.88 var(--barber-display-font);
  letter-spacing: -0.05em;
  text-transform: uppercase;
  max-width: 9ch;
  text-shadow: 0 10px 28px rgba(0, 0, 0, 0.34);
}

.barber-profile-subtitle {
  margin: -6px 0 0;
  color: rgba(255, 255, 255, 0.54);
  font: 600 0.92rem/1.45 var(--barber-ui-font);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.barber-profile-signature {
  max-width: none;
  margin: 0;
  color: rgba(255, 255, 255, 0.84);
  font: 700 1.02rem/1.5 var(--barber-ui-font);
  text-wrap: balance;
}

.barber-profile-description {
  margin: 0;
  color: rgba(255, 255, 255, 0.62);
  font-size: 0.95rem;
  line-height: 1.58;
  max-width: none;
}

.barber-profile-services {
  display: grid;
  gap: 8px;
  margin-top: 4px;
}

.barber-profile-services-label {
  color: rgba(255, 255, 255, 0.48);
  font: 700 0.72rem/1 var(--barber-ui-font);
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.barber-profile-services-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
}

.barber-profile-service-chip {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.045);
  border: 0;
  color: rgba(255, 255, 255, 0.76);
  font: 700 0.78rem/1 var(--barber-ui-font);
  white-space: nowrap;
}

.barber-profile-service-chip.is-placeholder {
  color: rgba(242, 245, 247, 0.68);
  font-weight: 600;
}

.barber-profile-meta {
  position: absolute;
  top: 98px;
  right: 32px;
  display: grid;
  justify-items: end;
  gap: 4px;
  width: auto;
  z-index: 3;
}

.barber-profile-meta-item {
  display: grid;
  justify-items: end;
  gap: 4px;
  padding: 0;
  background: none;
  border-radius: 0;
  text-align: right;
  box-shadow: none;
}

.barber-profile-meta-item strong {
  color: #fff8f3;
  font: 800 clamp(1.18rem, 2.2vw, 1.55rem)/1 var(--barber-display-font);
}

.barber-profile-page .barber-profile-meta-item:last-child {
  display: none;
}

.barber-profile-page .barber-profile-meta-item .barber-profile-meta-label {
  display: block;
  color: rgba(255, 255, 255, 0.42);
  font-size: 0.66rem;
  width: 4.9rem;
  letter-spacing: 0.1em;
  text-align: right;
}

.barber-profile-page .barber-profile-meta-item strong {
  display: inline;
  color: #ffffff;
  font-size: 1.12rem;
  letter-spacing: 0.08em;
}

.barber-profile-meta-services {
  font: 700 0.88rem/1.35 var(--barber-ui-font) !important;
  letter-spacing: 0.01em;
  text-transform: none;
}

.barber-profile-meta-note {
  display: inline-flex;
  align-items: center;
  gap: 1px;
  color: rgba(255, 255, 255, 0.86);
  font-size: 0.84rem;
  line-height: 1;
  letter-spacing: 0.04em;
  text-shadow: none;
  width: 4.9rem;
  justify-content: flex-end;
}

.barber-profile-star {
  color: rgba(255, 255, 255, 0.28);
  font-size: 0.76rem;
}

.barber-profile-star.is-filled,
.barber-review-rating {
  color: #ffd166;
}

.barber-profile-action-row {
  margin-top: 10px;
}

.barber-profile-primary-btn,
.barber-profile-secondary-btn {
  position: relative;
  overflow: hidden;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.12),
    0 12px 24px rgba(0, 0, 0, 0.18);
  border-radius: 14px;
}

.barber-profile-primary-btn {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(238, 238, 238, 0.92));
  color: #111214;
}

.barber-profile-secondary-btn {
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.88);
  border: 0;
}

.barber-profile-primary-btn::before,
.barber-profile-secondary-btn::before {
  content: "";
  position: absolute;
  inset: 1px;
  border-radius: inherit;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.1), transparent 42%, rgba(255, 255, 255, 0.04) 74%, transparent);
  opacity: 0.7;
  pointer-events: none;
}

.barber-profile-mobile-sheet {
  display: none;
}

.barber-profile-art {
  position: relative;
  align-self: stretch;
  min-height: 100%;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  overflow: visible;
  padding-top: 12px;
}

.barber-profile-art-stack {
  position: relative;
  width: min(100%, 560px);
  min-height: 100%;
  height: 100%;
  margin-left: auto;
  overflow: visible;
}

.barber-profile-art-outline,
.barber-profile-art-image {
  position: absolute;
  right: -14px;
  bottom: -42px;
  width: auto;
  height: min(100%, 580px);
  max-width: 100%;
  max-height: none;
  object-fit: contain;
  object-position: center bottom;
  transform-origin: right bottom;
}

.barber-profile-art-outline {
  opacity: 0.2;
  filter:
    brightness(0)
    saturate(100%)
    drop-shadow(0 0 0 rgba(255, 255, 255, 0.12))
    drop-shadow(0 18px 28px rgba(0, 0, 0, 0.26));
  transform: scale(1.1);
}

.barber-profile-art-image {
  filter:
    grayscale(0.06)
    contrast(1.05)
    drop-shadow(0 28px 36px rgba(0, 0, 0, 0.32));
  animation: barber-profile-float 8s ease-in-out infinite;
  transform: translateZ(28px) scale(1.1) translateY(0);
}

.barber-profile-poster-fallback {
  margin-left: auto;
  margin-bottom: 40px;
}

.barber-profile-panel {
  padding: 20px;
  background: rgba(18, 21, 23, 0.82);
  border: 0;
  box-shadow: none;
}

.barber-profile-empty {
  min-height: 240px;
  padding: 24px;
  background: rgba(18, 21, 23, 0.82);
  box-shadow: none;
}

.barber-profile-panel-head {
  align-items: start;
  margin-bottom: 14px;
}

.barber-reviews-card {
  padding: 20px;
}

.barber-reviews-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 12px;
}

.barber-review-item {
  display: grid;
  gap: 10px;
  padding: 18px;
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.03);
}

.barber-review-empty {
  padding: 18px;
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.03);
}

.barber-review-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: baseline;
}

@keyframes barber-profile-float {
  0%,
  100% {
    transform: translateZ(28px) scale(1.1) translateY(0);
  }

  50% {
    transform: translateZ(28px) scale(1.1) translateY(-4px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .barber-profile-art-image {
    animation: none !important;
  }

  .barber-profile-scene {
    transform: none !important;
  }

  .barber-profile-surface {
    transform: none !important;
  }

  .barber-profile-surface::before {
    transition: none !important;
  }
}

.booking-step .list {
  gap: 12px;
}

.booking-step[data-booking-step="services"] .service-item,
.booking-step[data-booking-step="date"] .slot-item,
.booking-step[data-booking-step="time"] .slot-item {
  position: relative;
  overflow: hidden;
  width: 100%;
  text-align: left;
  border-radius: 20px;
  background: var(--md-sys-color-surface-container-low);
  border: 1px solid transparent;
  transition: transform 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}

.booking-step[data-booking-step="services"] .service-item:hover,
.booking-step[data-booking-step="date"] .slot-item:hover,
.booking-step[data-booking-step="time"] .slot-item:hover {
  transform: translateY(-1px);
  background: var(--md-sys-color-surface-container);
}

.booking-step[data-booking-step="services"] .service-item::before,
.booking-step[data-booking-step="date"] .slot-item::before,
.booking-step[data-booking-step="time"] .slot-item::before {
  content: "";
  position: absolute;
  inset: 1px auto 1px 1px;
  width: 3px;
  border-radius: 19px 0 0 19px;
  background: transparent;
  transition: background-color 0.2s ease;
}

.booking-step[data-booking-step="services"] .service-item.is-selected::before,
.booking-step[data-booking-step="date"] .slot-item.is-selected::before,
.booking-step[data-booking-step="time"] .slot-item.is-selected::before {
  background: var(--primary);
}

.booking-step[data-booking-step="date"] .slot-item,
.booking-step[data-booking-step="time"] .slot-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 64px;
  padding: 0 16px;
}

.booking-step[data-booking-step="date"] .slot-item .list-title,
.booking-step[data-booking-step="time"] .slot-item .list-title {
  font-size: 0.95rem;
  line-height: 1.35;
}

.booking-step[data-booking-step="date"] .slot-item.is-selected .list-title,
.booking-step[data-booking-step="time"] .slot-item.is-selected .list-title {
  color: var(--md-sys-color-on-secondary-container);
}

.booking-summary {
  border-radius: 30px;
  background: var(--md-sys-color-surface-container-high);
}

.booking-summary .booking-step-head {
  align-items: start;
}

.booking-summary .step-badge {
  white-space: nowrap;
}

.booking-comment-field textarea {
  min-height: 118px;
  resize: none;
}

.booking-comment-field textarea::-webkit-resizer {
  display: none;
}

.summary-note {
  display: grid;
  gap: 8px;
  padding: 12px 14px;
  border-radius: 18px;
  border: 1px solid transparent;
  background: var(--md-sys-color-surface-container-low);
}

.summary-note .subtitle {
  margin: 0;
  overflow-wrap: anywhere;
}

.summary-note-muted {
  opacity: 0.78;
}

.summary-placeholder {
  opacity: 0.84;
}

.booking-summary-status {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 14px;
  border-radius: 18px;
  border: 1px solid transparent;
  background: var(--md-sys-color-surface-container-low);
}

.booking-summary-status strong {
  display: block;
  margin-top: 4px;
  font-size: 0.94rem;
  overflow-wrap: anywhere;
}

.booking-summary .section-title {
  max-width: none;
  font-size: clamp(1.2rem, 2vw, 1.6rem);
  margin-bottom: 2px;
}

.booking-summary .summary-master-row {
  padding: 12px 14px;
}

.booking-summary .summary-master-row .list-title {
  line-height: 1.3;
}

.booking-summary .summary-item {
  padding: 12px 14px;
}

.booking-summary .service-chip {
  min-height: 34px;
  padding: 0 12px;
  font-size: 0.86rem;
}

.booking-summary .booking-summary-status,
.booking-summary .summary-master-row,
.booking-summary .summary-grid,
.booking-summary .service-chip-row,
.booking-summary .summary-note,
.booking-summary .booking-submit-wrap {
  margin-top: 10px;
}

.booking-summary .service-chip-row {
  align-items: flex-start;
}

.booking-bs-cover-card {
  display: grid;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 20px;
  background: var(--md-sys-color-surface-container-low);
  margin-top: 10px;
  min-width: 0;
}

.booking-bs-cover-toggle {
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
}

.booking-bs-cover-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.booking-bs-cover-head .field-label {
  display: block;
  margin-bottom: 3px;
  line-height: 1.15;
}

.booking-bs-cover-head .status-badge {
  min-width: 0;
  padding-inline: 10px;
  align-self: start;
}

.booking-bs-cover-head strong {
  display: block;
  margin: 0;
  font-size: 0.94rem;
  line-height: 1.2;
}

.booking-bs-cover-side {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.booking-bs-chevron {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  color: var(--muted);
}

.booking-bs-chevron svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  stroke-width: 2.2;
  fill: none;
}

.booking-bs-field,
.booking-bs-note {
  margin: 0;
}

.booking-bs-field .field-label {
  margin-bottom: 6px;
}

.booking-bs-field input {
  min-height: 48px;
  padding: 0 14px;
  border-radius: 16px;
  font-size: 1rem;
}

.booking-bs-note {
  line-height: 1.35;
}

.booking-bs-note strong {
  display: inline;
  white-space: nowrap;
}

.booking-bs-cover-card.is-collapsed {
  padding-bottom: 10px;
}

@media (min-width: 769px) {
  .referral-wallet-hero {
    grid-template-columns: minmax(0, 1.2fr) minmax(300px, 0.72fr);
    align-items: stretch;
  }

  .referral-page .referral-wallet-card + .referral-section-tabs {
    margin-top: 14px;
  }

  .referral-page .referral-section-tabs + .referral-section-panel {
    margin-top: 14px;
  }

  .referral-page .referral-wallet-hero + .referral-section-tabs {
    margin-top: 14px;
  }

  .home-map-contacts-row {
    grid-template-columns: minmax(0, 1.65fr) minmax(300px, 0.78fr);
    align-items: stretch;
  }

  .contacts-card {
    height: 100%;
    padding: 14px 16px 16px;
    grid-template-rows: auto 1fr;
  }

  .map-image {
    min-height: 360px;
  }

  .contacts-card .section-title {
    margin-bottom: 8px;
  }

  .contacts-card .contact-actions {
    display: grid;
    grid-template-columns: 1fr;
    align-content: start;
    gap: 10px;
  }

  .contacts-card .icon-btn {
    min-width: 100%;
    min-height: 58px;
    padding: 0 18px;
  }

  .booking-page {
    display: grid;
    grid-template-columns: minmax(0, 1.32fr) minmax(360px, 0.88fr);
    gap: 18px;
    align-items: start;
  }

  .booking-hero {
    grid-column: 1 / -1;
    padding: 8px 6px 0;
    z-index: 0;
  }

  .booking-hero-floating {
    margin-bottom: -28px;
  }

  .booking-grid,
  .booking-page > .booking-summary {
    position: relative;
    z-index: 1;
  }

  .booking-flow {
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
    align-items: start;
  }

  .booking-summary {
    padding: 22px 24px;
  }

  .booking-page > .booking-summary {
    position: sticky;
    top: 18px;
    z-index: 2;
  }

  .booking-grid {
    grid-column: 1;
  }

  .booking-step .barber-grid {
    grid-template-columns: 1fr;
  }

  .booking-step[data-booking-step="barber"] .barber-card {
    min-height: 292px;
  }

  .booking-step[data-booking-step="date"] .list,
  .booking-step[data-booking-step="time"] .list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .booking-summary .summary-grid {
    grid-template-columns: 1fr;
  }

  .booking-summary-status {
    align-items: start;
  }

  .booking-summary .step-badge {
    min-width: 78px;
  }
}

@media (max-width: 768px) {
  .referral-wallet-hero {
    grid-template-columns: 1fr;
  }

  .referral-page {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }

  .referral-page > *,
  .referral-page .hero-card,
  .referral-page .list-card,
  .referral-page .content-card,
  .referral-page .referral-wallet-card,
  .referral-page .referral-transfer-card,
  .referral-page .referral-transfer-history-card,
  .referral-page .referral-panel-card,
  .referral-page .referral-insights-card {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }

  .referral-page .section-head,
  .referral-page .referral-wallet-actions,
  .referral-page .filter-row,
  .referral-page .referral-inline-insights,
  .referral-page .referral-transfer-recipient-carousel,
  .referral-page .referral-transfer-recipient-strip {
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }

  .referral-page .referral-section-tabs {
    margin: 0;
  }

  .referral-page .referral-section-panel {
    margin: 0 0 10px;
  }

  .referral-page .referral-wallet-card + .referral-section-tabs {
    margin-top: 0;
  }

  .referral-page .referral-section-tabs + .referral-section-panel {
    margin-top: 0;
  }

  .referral-page .referral-wallet-hero + .referral-section-tabs {
    margin-top: 0;
  }

  .home-page,
  .home-mobile-layout {
    width: 100%;
    max-width: 100%;
    overflow-x: visible;
  }

  .booking-page {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }

  .referral-wallet-card {
    gap: 13px;
    padding: 15px;
    border-radius: 28px;
  }

  .referral-wallet-head,
  .referral-wallet-footer {
    display: grid;
    grid-template-columns: 1fr;
  }

  .referral-wallet-head {
    position: relative;
    padding-right: 62px;
  }

  .referral-wallet-mark {
    position: absolute;
    top: 0;
    right: 0;
    width: 46px;
    height: 46px;
  }

  .referral-wallet-balance-number {
    font-size: clamp(2.1rem, 10vw, 3.05rem);
  }

  .referral-wallet-progress-head {
    align-items: start;
  }

  .referral-wallet-progress {
    gap: 8px;
  }

  .referral-wallet-level {
    min-width: 0;
    flex: initial;
  }

  .referral-wallet-level strong {
    font-size: 0.98rem;
    line-height: 1.1;
  }

  .referral-wallet-footer {
    display: grid;
  }

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

  .referral-wallet-action {
    min-width: 0;
    min-height: 66px;
    padding: 10px 10px;
    border-radius: 18px;
    gap: 8px;
  }

  .referral-wallet-action-scan {
    display: inline-flex;
  }

  .referral-wallet-action svg {
    width: 20px;
    height: 20px;
  }

  .referral-wallet-action span:last-child {
    font-size: 0.9rem;
    line-height: 1.15;
    max-width: 10ch;
  }

  .referral-wallet-balance,
  .referral-wallet-footer {
    gap: 12px;
  }

  .referral-transfer-card,
  .referral-transfer-history-card,
  .referral-panel-card,
  .referral-insights-card {
    padding: 16px;
    border-radius: 24px;
  }

  .referral-transfer-card .section-head {
    flex-wrap: wrap;
  }

  .referral-transfer-card .section-head,
  .referral-transfer-history-card .section-head,
  .referral-insights-card .section-head,
  .referral-spotlight-card .section-head,
  .referral-panel-card .section-head {
    padding-bottom: 10px;
  }

  .referral-transfer-history-card .section-head {
    padding-bottom: 0;
  }

  .referral-transfer-hub {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 16px;
  }

  .referral-transfer-hub-arrow {
    width: 48px;
    height: 48px;
  }

  .referral-transfer-hub .list-title {
    line-height: 1.2;
  }

  .referral-transfer-hub .subtitle {
    font-size: 0.92rem;
  }

  .referral-transfer-recipient-strip {
    scroll-snap-type: x proximity;
  }

  .referral-transfer-recipient-carousel {
    position: static;
  }

  .referral-transfer-scroll-btn {
    display: none;
  }

  .referral-transfer-recipient {
    flex-basis: 148px;
    padding: 12px;
    border-radius: 20px;
  }

  .referral-transfer-onboarding {
    grid-template-columns: 1fr;
    align-items: start;
    min-height: 0;
    padding: 18px;
  }

  .referral-transfer-onboarding-cta {
    width: 100%;
    min-width: 0;
  }

  .referral-insights-grid {
    grid-template-columns: 1fr;
  }

  .referral-inline-insights {
    grid-template-columns: 1fr;
  }

  .referral-quick-amount {
    min-height: 38px;
    padding: 0 14px;
  }

  .referral-referral-metrics {
    grid-template-columns: 1fr;
  }

  .referral-spotlight-card {
    padding: 16px;
    border-radius: 24px;
  }

  .referral-spotlight-body {
    grid-template-columns: 1fr;
    align-items: start;
  }

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

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

  .referral-activity-meta {
    grid-column: 3;
    justify-items: end;
    align-self: start;
    min-width: 84px;
  }

  .referral-quick-transfer-amounts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .referral-action-row {
    display: grid;
    grid-template-columns: 1fr;
  }

  .referral-action-row .primary-btn,
  .referral-action-row .tonal-btn,
  .referral-action-row .ghost-btn {
    width: 100%;
  }

  .referral-panel-card .section-head {
    align-items: start;
  }

  .booking-hero {
    padding: 2px 14px 0;
  }

  .booking-hero-floating {
    margin-bottom: -14px;
  }

  .booking-hero-title {
    width: 100%;
    min-width: 0;
    overflow: hidden;
    font-size: clamp(1.72rem, 7.2vw, 2.4rem);
    white-space: nowrap;
    text-overflow: clip;
  }

  .booking-grid {
    padding-top: 2px;
  }

  .booking-step[data-booking-step="barber"] .barber-card {
    overflow: hidden;
  }

  .booking-barber-surface {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr) minmax(138px, 0.94fr);
    gap: 10px;
    overflow: visible;
    padding: 14px 16px 12px;
  }

  .booking-barber-surface::before {
    top: 14px;
    right: 14px;
    width: 72px;
    opacity: 0.54;
  }

  .booking-barber-copy {
    gap: 12px;
    padding: 6px 0 0;
  }

  .booking-step[data-booking-step="barber"] .barber-card .subtitle {
    max-width: 18ch;
  }

  .booking-barber-meta {
    gap: 8px;
  }

  .booking-barber-visual {
    min-height: 206px;
    align-items: end;
    justify-content: center;
    overflow: visible;
  }

  .booking-barber-visual::before {
    inset: 64px 0 0 10px;
    border-radius: 24px 24px 0 20px;
  }

  .booking-barber-visual::after {
    left: 0;
    right: 10px;
    bottom: 0;
    height: 30%;
    border-radius: 24px 24px 0 20px;
  }

  .booking-barber-visual-frame {
    align-items: end;
    justify-content: center;
    overflow: visible;
    padding-top: 0;
  }

  .booking-barber-photo {
    width: clamp(176px, 50vw, 196px);
    min-width: 176px;
    max-width: 196px;
    height: auto;
    max-height: 216px;
    margin-bottom: 0;
    transform: translateX(5px);
  }

  .booking-step[data-booking-step="barber"] .barber-card .booking-barber-visual .profile-avatar {
    width: 116px !important;
    height: 116px !important;
    margin: auto 0 10px auto;
  }

  .home-barber-card .booking-barber-surface {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr) minmax(102px, 0.78fr);
    grid-template-areas:
      "head head"
      "description visual"
      "bottom visual";
    row-gap: 8px;
    column-gap: 8px;
    padding: 14px 14px 12px;
  }

  .home-barber-card .booking-barber-surface::before {
    inset: 15px 14px auto auto;
  }

  .home-barber-head {
    min-height: 28px;
    padding-right: 86px;
    align-items: start;
  }

  .home-barber-card .home-barber-description {
    max-width: none;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    line-height: 1.3;
    padding-right: 0;
    margin-top: 2px;
  }

  .home-barber-bottom {
    align-self: end;
    margin-top: 0;
    max-width: none;
    padding: 4px 0 6px;
  }

  .home-barber-card .barber-name {
    font-size: clamp(1.12rem, 5vw, 1.42rem);
    line-height: 1.06;
  }

  .home-barber-bottom {
    margin-top: 4px;
  }

  .home-barber-card .subtitle {
    max-width: none;
    font-size: 0.77rem;
    line-height: 1.28;
  }

  .home-barber-card .booking-barber-pill {
    min-height: 32px;
    padding: 0 10px;
    font-size: 0.78rem;
  }

  .home-barber-card .booking-barber-visual {
    min-height: 146px;
    align-self: end;
  }

  .home-barber-card .booking-barber-visual::before {
    inset: 4px 0 0 18px;
    border-radius: 32px 32px 0 0;
  }

  .home-barber-card .booking-barber-visual::after {
    left: 4px;
    right: 16px;
    height: 36%;
    border-radius: 24px 24px 0 0;
  }

  .home-barber-card .booking-barber-visual-frame {
    align-items: end;
    justify-content: end;
  }

  .home-barber-card .booking-barber-photo {
    width: clamp(136px, 41vw, 160px);
    min-width: 136px;
    max-width: 160px;
    max-height: 176px;
    object-position: center bottom;
    transform: translateX(2px) translateY(2px);
  }

}

@media (max-width: 768px) {
  .booking-summary.is-preview {
    display: none;
  }
}

.summary-master-row {
  align-items: center;
  padding: 14px;
  border-radius: 18px;
  border: 1px solid transparent;
  background: var(--md-sys-color-surface-container-low);
  min-width: 0;
}

.summary-master-row > div {
  min-width: 0;
}

.summary-item {
  padding: 14px 16px;
  border-radius: 18px;
  border: 1px solid transparent;
  background: var(--md-sys-color-surface-container-low);
}

.summary-item strong {
  display: block;
  margin-top: 6px;
  font-size: 1rem;
}

.bank-row {
  border-radius: 20px;
}

.service-chip-row {
  flex-wrap: wrap;
  gap: 8px;
}

.service-chip {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0 14px;
  border-radius: 999px;
  background: var(--md-sys-color-surface-container);
  border: 1px solid transparent;
  color: var(--text);
  font-size: 0.92rem;
  font-weight: 700;
}

.booking-submit-wrap .primary-btn {
  width: 100%;
}

@keyframes booking-step-in {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.profile-summary-strip {
  flex-wrap: nowrap;
  align-items: stretch;
  margin: 14px 0 2px;
  position: relative;
  z-index: 1;
}

.profile-edit-card,
.profile-history-card,
.profile-avatar-trigger {
  cursor: pointer;
}

.profile-hero {
  overflow: visible;
  position: relative;
  z-index: 8;
  padding-top: 0;
}

.profile-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background:
    radial-gradient(circle at 16% 16%, color-mix(in srgb, var(--md-sys-color-secondary-container) 22%, transparent), transparent 24%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.012), transparent 26%);
  pointer-events: none;
  z-index: 0;
}

.profile-cover {
  --profile-cover-accent: #0b6258;
  --profile-cover-base: #111919;
  --profile-cover-line: rgba(3, 7, 8, 0.96);
  --profile-cover-glow: rgba(71, 210, 193, 0.2);
  min-height: 176px;
  margin: -20px -20px 0;
  border-radius: 34px 34px 30px 30px;
  background: linear-gradient(
    90deg,
    color-mix(in srgb, var(--profile-cover-accent) 72%, var(--profile-cover-base) 28%) 0%,
    color-mix(in srgb, var(--profile-cover-accent) 44%, var(--profile-cover-base) 56%) 44%,
    var(--profile-cover-base) 100%
  );
  box-shadow:
    inset 0 -24px 48px rgba(3, 8, 8, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.06);
  position: relative;
  overflow: hidden;
}

.profile-cover::before,
.profile-cover::after {
  content: none;
}

.profile-social-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: end;
  gap: 18px;
  margin-top: -68px;
  padding: 0 4px 10px;
  position: relative;
  z-index: 4;
}

.profile-avatar-trigger {
  display: grid;
  justify-items: center;
  gap: 10px;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: center;
  color: var(--muted);
}

.profile-avatar-panel-shell {
  position: relative;
  display: grid;
  justify-items: center;
  align-self: start;
}

.profile-avatar-panel {
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  z-index: 24;
  display: grid;
  gap: 6px;
  width: max-content;
  min-width: 208px;
  max-width: min(248px, calc(100vw - 40px));
  padding: 12px;
  border-radius: 22px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0)),
    color-mix(in srgb, var(--md-sys-color-surface-container-high) 94%, rgba(8, 13, 14, 0.88));
  box-shadow:
    0 24px 40px rgba(0, 0, 0, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.04);
  backdrop-filter: blur(18px) saturate(1.08);
  transform-origin: top left;
  transform: translateY(-18px) scale(0.92);
  opacity: 0;
  pointer-events: none;
  transition: opacity 280ms ease, transform 320ms cubic-bezier(0.16, 1, 0.3, 1);
}

.profile-avatar-panel.is-open {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0) scale(1);
  animation: profile-avatar-panel-reveal 320ms cubic-bezier(0.16, 1, 0.3, 1);
}

.profile-avatar-panel.is-closing {
  opacity: 0;
  pointer-events: none;
  transform: translateY(-18px) scale(0.92);
}

.profile-avatar-panel-action {
  width: 100%;
  min-height: 44px;
  padding-inline: 16px;
  border: 0;
  border-radius: 16px;
  background: color-mix(in srgb, var(--md-sys-color-surface-container) 72%, transparent);
  justify-content: flex-start;
  text-align: left;
}

.profile-avatar-panel-action:hover,
.profile-avatar-panel-action:focus-visible {
  background: color-mix(in srgb, var(--md-sys-color-surface-container-highest) 62%, transparent);
}

.profile-avatar-panel-remove {
  color: var(--text);
}

@keyframes profile-avatar-panel-reveal {
  from {
    opacity: 0;
    transform: translateY(-22px) scale(0.88);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.profile-avatar-trigger .profile-avatar {
  border: 4px solid color-mix(in srgb, var(--md-sys-color-surface-container-highest) 88%, #061111);
  box-shadow:
    0 18px 34px rgba(0, 0, 0, 0.26),
    0 0 0 1px rgba(255, 255, 255, 0.05);
}

.profile-avatar-trigger span {
  font-size: 0.84rem;
  font-weight: 700;
}

.profile-social-copy {
  min-width: 0;
  padding: 10px 0 2px;
}

.profile-social-copy .hero-title {
  display: -webkit-box;
  max-width: min(100%, 12ch);
  overflow: hidden;
  text-wrap: pretty;
  word-break: break-word;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.profile-title-row {
  display: flex;
  align-items: start;
  gap: 14px;
}

.profile-edit-trigger {
  align-self: start;
  min-height: 42px;
  padding: 0 16px;
  white-space: nowrap;
}

.profile-cover-actions {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.profile-cover-action {
  width: 56px;
  min-width: 56px;
  min-height: 56px;
  border-radius: 18px;
  background: rgba(12, 15, 15, 0.86);
  backdrop-filter: blur(10px);
}

.profile-cover-settings {
  position: static;
}

.profile-cover-action svg {
  width: 26px;
  height: 26px;
}

.profile-bio {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.45;
}

.profile-hero-phone-line {
  margin-top: 12px;
  font-size: 1rem;
  font-weight: 800;
  color: var(--text);
}

.profile-hero-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 16px;
}

.profile-hero-meta-item {
  display: grid;
  gap: 6px;
  padding: 14px 16px;
  border-radius: 20px;
  background: var(--md-sys-color-surface-container);
  border: 1px solid transparent;
}

.profile-hero-phone {
  padding: 0;
  background: transparent;
  border: 0;
}

.profile-hero-phone strong {
  font-size: 1.05rem;
}

.profile-hero-meta-item strong {
  font-size: 0.98rem;
  line-height: 1.35;
  word-break: break-word;
}

.profile-progress-card {
  display: grid;
  gap: 12px;
  margin-top: 18px;
  padding: 18px;
  border-radius: 24px;
  background: var(--md-sys-color-surface-container);
  border: 1px solid transparent;
}

.profile-progress-trigger {
  width: 100%;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  appearance: none;
}

.profile-next-booking-card {
  display: grid;
  gap: 14px;
}

.profile-active-bookings-list {
  display: grid;
  gap: 12px;
}

.profile-next-booking-surface {
  display: grid;
  gap: 10px;
  width: 100%;
  padding: 16px 18px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 24px;
  background: color-mix(in srgb, var(--md-sys-color-surface-container-low) 82%, transparent);
  text-align: left;
  transition: background-color 180ms ease, transform 180ms ease;
}

.profile-next-booking-surface:hover,
.profile-next-booking-surface:focus-visible {
  background: color-mix(in srgb, var(--md-sys-color-surface-container-high) 58%, transparent);
}

.profile-next-booking-main {
  display: grid;
  gap: 6px;
}

.profile-next-booking-head {
  display: grid;
  gap: 2px;
}

.profile-next-booking-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  color: var(--muted);
}

.profile-next-booking-date,
.profile-next-booking-time {
  font-size: 0.95rem;
  color: var(--text);
}

.profile-next-booking-dot {
  width: 4px;
  height: 4px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.35);
}

.telegram-card {
  display: grid;
  gap: 14px;
}

.telegram-card-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
}

.telegram-link-btn {
  min-width: 132px;
}

.menu-action {
  width: 100%;
  text-align: left;
  background: var(--md-sys-color-surface-container);
}

.danger-surface {
  border-color: transparent;
  background: color-mix(in srgb, var(--md-sys-color-error) 20%, transparent 80%);
  color: var(--md-sys-color-on-error);
}

.telegram-sheet-card {
  display: grid;
  gap: 16px;
  padding: 16px;
  border-radius: 20px;
  background: var(--md-sys-color-surface-container-low);
  border: 1px solid transparent;
}

.profile-handle-row,
.filter-row,
.history-row-meta,
.profile-logout-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
}

.profile-handle-row,
.filter-row {
  flex-wrap: wrap;
}

.profile-handle-row {
  margin-top: 10px;
}

.profile-handle-row span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  background: var(--md-sys-color-surface-container-low);
  border: 1px solid transparent;
  color: var(--muted);
  font-size: 0.84rem;
  font-weight: 700;
}

.profile-summary-cell {
  flex: 1;
  min-width: 0;
  padding: 14px 16px;
  border-radius: 20px;
  background: var(--md-sys-color-surface-container-low);
  border: 1px solid transparent;
  box-shadow: none;
}

.profile-summary-cell .field-label,
.profile-summary-cell strong,
.metric-trigger {
  white-space: nowrap;
}

.profile-summary-cell strong {
  display: block;
  margin-top: 6px;
  font-size: 1rem;
}

.metric-trigger {
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.metric-trigger strong {
  display: block;
  margin-top: 6px;
  font-size: 1rem;
}

.booking-step-alert {
  display: grid;
  gap: 6px;
  margin-bottom: 14px;
  padding: 16px 18px;
  border-radius: 20px;
  border: 1px solid transparent;
}

.booking-step-alert.status-red {
  background: var(--md-sys-color-error-container);
  color: var(--md-sys-color-on-error-container);
}

.booking-step-alert .list-title,
.booking-step-alert .subtitle {
  margin: 0;
}

.profile-avatar-field input[type="file"] {
  min-height: 44px;
  padding: 10px 12px;
  border-radius: 14px;
}

.visually-hidden-input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

.profile-avatar-upload-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  padding: 18px;
  border-radius: 24px;
  background: var(--md-sys-color-surface-container-low);
  border: 1px dashed rgba(255, 255, 255, 0.08);
  min-height: 156px;
  position: relative;
  overflow: hidden;
  transform-origin: top center;
}

.sheet.profile-edit-sheet.is-entering .profile-avatar-upload-card,
.sheet.profile-edit-sheet.is-open .profile-avatar-upload-card {
  animation: profile-avatar-edit-card-enter 320ms cubic-bezier(0.16, 1, 0.3, 1);
}

.sheet.profile-edit-sheet.is-closing {
  transform: translateY(0) scale(1);
  opacity: 1;
}

.sheet.profile-edit-sheet.is-closing .profile-avatar-upload-card {
  animation: profile-avatar-edit-card-exit 260ms cubic-bezier(0.4, 0, 1, 1) forwards;
}

.profile-avatar-upload-card.is-dragover {
  border-color: color-mix(in srgb, var(--primary) 54%, transparent);
  background: color-mix(in srgb, var(--primary) 10%, var(--md-sys-color-surface-container-low));
}

.profile-avatar-upload-preview-shell {
  display: grid;
  justify-items: center;
  gap: 0;
}

.profile-avatar-upload-preview .profile-avatar {
  border: 3px solid var(--md-sys-color-surface-container);
}

.profile-avatar-upload-preview {
  position: relative;
}

.profile-avatar-upload-card.is-loading::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(19, 20, 22, 0.42);
}

.profile-avatar-upload-card.is-loading .profile-avatar-upload-preview::after {
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;
  width: 28px;
  height: 28px;
  margin: -14px 0 0 -14px;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.18);
  border-top-color: var(--primary);
  animation: avatar-spin 0.8s linear infinite;
  z-index: 2;
}

.profile-avatar-upload-copy {
  display: grid;
  gap: 6px;
  align-content: center;
}

.profile-avatar-upload-subtitle {
  margin: 0;
  max-width: 34ch;
  color: var(--muted);
  line-height: 1.35;
}

.profile-avatar-upload-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 4px;
}

.profile-avatar-upload-action-main {
  grid-column: 1 / -1;
}

.profile-avatar-upload-action-main,
.profile-avatar-upload-action-secondary {
  min-width: 0;
  min-height: 40px;
  padding-inline: 14px;
  justify-content: center;
}

@keyframes profile-avatar-edit-card-enter {
  from {
    opacity: 0;
    transform: translateY(16px) scale(0.97);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes profile-avatar-edit-card-exit {
  from {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
  to {
    opacity: 0;
    transform: translateY(-18px) scale(0.96);
  }
}

.avatar-preview-enter {
  opacity: 0;
  transform: scale(0.88);
  transition: opacity 0.24s ease, transform 0.24s ease;
}

.avatar-preview-ready .avatar-preview-enter {
  opacity: 1;
  transform: scale(1);
}

.profile-edit-form-layout {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  column-gap: 16px;
  row-gap: 16px;
}

.profile-edit-form-layout > * {
  min-width: 0;
}

.profile-edit-form-layout .field,
.profile-edit-form-layout .telegram-sheet-card {
  align-self: stretch;
}

.profile-edit-form-layout .profile-avatar-field,
.profile-edit-form-layout .profile-edit-telegram,
.profile-edit-form-layout .profile-edit-telegram-wrap,
.profile-edit-form-layout .profile-edit-submit {
  margin: 0;
}

.profile-avatar-field {
  display: grid;
  align-content: start;
}

.profile-edit-submit {
  grid-column: 1 / -1;
  justify-content: flex-start;
}

.file-select-btn {
  cursor: pointer;
}

.profile-edit-telegram {
  margin-top: 4px;
  min-height: 140px;
  align-content: center;
}

.security-password-toggle {
  padding-inline: 6px;
}

.security-password-trigger {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.profile-security-telegram {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  min-height: 0;
}

.profile-security-row-copy {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.profile-security-row-copy .list-title,
.profile-security-row-copy .subtitle {
  margin: 0;
}

.profile-security-telegram .inline-actions {
  justify-content: flex-start;
}

.security-password-trigger-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 132px;
  min-height: 48px;
  padding: 0 18px;
  border-radius: 999px;
  background: var(--md-sys-color-surface-container);
  color: #dbe2df;
  font-size: 0.96rem;
  font-weight: 600;
  white-space: nowrap;
  transition: background 0.18s ease, color 0.18s ease;
}

.security-password-trigger:hover .security-password-trigger-action,
.security-password-trigger:focus-visible .security-password-trigger-action {
  background: var(--md-sys-color-surface-container-high);
}

.profile-edit-telegram-wrap {
  display: grid;
  align-content: start;
}

.sheet .form-grid,
.sheet .list,
.sheet .timeline,
.sheet .filter-row,
.sheet .telegram-sheet-card,
.sheet .toggle-card {
  padding-inline: 6px;
}

.sheet .inline-actions {
  align-items: stretch;
  justify-content: flex-end;
}

.sheet .inline-actions > .ghost-btn,
.sheet .inline-actions > .primary-btn,
.sheet .inline-actions > .danger-btn {
  min-width: 132px;
}

.sheet .list-item {
  padding: 16px 18px;
  background: var(--md-sys-color-surface-container);
  box-shadow: none;
}

.sheet .list-title {
  color: #f1f4f3;
}

.sheet .subtitle,
.sheet .muted-text,
.sheet .field-label {
  color: #bcc4c2;
}

.sheet .menu-action:hover,
.sheet .menu-action:focus-visible {
  background: var(--md-sys-color-surface-container-high);
}

.sheet .danger-surface .list-title {
  color: var(--md-sys-color-error);
}

.sheet .danger-surface .subtitle {
  color: color-mix(in srgb, var(--md-sys-color-on-error) 72%, transparent 28%);
}

.sheet .danger-btn {
  background: var(--md-sys-color-error);
  color: var(--md-sys-color-on-error);
  box-shadow: var(--md-sys-elevation-2);
}

.toggle-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: start;
  padding: 16px;
  border-radius: 20px;
  background: var(--md-sys-color-surface-container-low);
  border: 1px solid transparent;
  transition: background 0.2s ease, transform 0.2s ease;
}

.toggle-card:hover {
  background: var(--md-sys-color-surface-container);
}

.toggle-card input[type="checkbox"] {
  appearance: none;
  position: relative;
  justify-self: end;
  width: 54px;
  height: 32px;
  border-radius: 999px;
  background: var(--md-sys-color-surface-container-high);
  border: 1px solid transparent;
  cursor: pointer;
  transition: background-color 0.18s ease;
}

.toggle-card input[type="checkbox"]::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #f6f7f8;
  transition: transform 0.18s ease;
}

.toggle-card input[type="checkbox"]:checked {
  background: rgba(0, 191, 175, 0.42);
  border-color: transparent;
}

.service-item.is-selected,
.slot-item.is-selected,
.list-item.is-selected,
.timeline-item.is-selected {
  background: var(--md-sys-color-secondary-container);
  color: var(--md-sys-color-on-secondary-container);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}

.toggle-card input[type="checkbox"]:checked::after {
  transform: translateX(22px);
}

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

.profile-edit-card .muted-text {
  margin-top: 8px;
}

.profile-edit-card:hover,
.profile-history-card:hover,
.profile-avatar-trigger:hover {
  transform: translateY(-1px);
}

.filter-row {
  margin: 16px 0 14px;
}

.filter-row .nav-pill {
  min-height: 40px;
  padding: 0 14px;
}

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

.history-row-main {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.history-row-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  width: 100%;
}

.history-row-meta {
  margin-bottom: 0;
  min-width: 0;
}

.history-row-amount {
  align-self: center;
  justify-self: end;
  margin-left: auto;
  text-align: right;
  white-space: nowrap;
}

.history-row .subtitle {
  margin-top: 6px;
}

.history-row-head .subtitle {
  margin-top: 0;
}

.sheet .history-row {
  padding: 16px 18px;
}

.sheet .history-row-head {
  gap: 14px;
}

.profile-history-card .section-head .ghost-btn {
  white-space: nowrap;
}

.profile-history-more {
  display: flex;
  justify-content: center;
  margin-top: 14px;
}

.profile-history-more .ghost-btn {
  width: 100%;
}

.sheet-filter-row {
  margin-bottom: 16px;
}

.sheet-filter-row.referral-history-filter-row {
  margin-bottom: 20px;
}

.clean-soon-card {
  min-height: calc(100vh - 180px);
}

.shop-coming-card {
  display: grid;
  place-items: center;
  padding: 24px;
}

.shop-coming-shell {
  width: min(100%, 720px);
  display: grid;
  justify-items: center;
  gap: 10px;
  text-align: center;
}

.shop-coming-shell .hero-title {
  max-width: none;
}

.shop-teaser-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: 100%;
  margin-top: 10px;
}

.teaser-block {
  min-height: 104px;
  border-radius: 22px;
  background: linear-gradient(180deg, var(--md-sys-color-surface-container-high), var(--md-sys-color-surface-container-low));
  border: 1px solid transparent;
}

@media (max-width: 768px) {
  .client-app {
    padding: 10px 12px calc(92px + env(safe-area-inset-bottom, 0px));
  }

  .history-row {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .history-row > div:last-child {
    display: grid;
    justify-items: start;
  }

  .profile-history-card .history-row {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
  }

  .profile-history-card .history-row-head {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    width: 100%;
  }

  .profile-history-card .history-row-amount {
    justify-self: end;
  }

  .home-page,
  .home-mobile-layout,
  .home-frame,
  .home-map-contacts-row,
  .home-about-card,
  .map-card,
  .contacts-card {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  .home-barber-rotating-wrap {
    width: calc(100% + 20px);
    max-width: calc(100% + 20px);
    margin-inline: -10px;
  }

  .home-barber-rotating-stage {
    width: 100%;
    margin-inline: 0;
    padding-inline: 10px;
  }

  .topbar {
    padding: 10px 12px;
    border-radius: 18px;
    align-items: center;
    gap: 12px;
  }

  .topbar-content {
    gap: 12px;
  }

  .topbar-announcement {
    padding-inline: 12px;
  }

  .topbar-announcement-label {
    font-size: 0.92rem;
  }

  .topbar-side {
    min-width: 0;
    justify-content: flex-end;
  }

  .chip {
    width: 48px;
    min-width: 48px;
    max-width: 48px;
    padding: 0;
    justify-content: center;
    border-radius: 999px;
  }

  .chip .profile-avatar {
    margin-left: 0;
  }

  .chip span {
    display: none;
  }

  .slide,
  .hero-card,
  .metric-card,
  .promo-card,
  .barber-card,
  .content-card,
  .list-card,
  .timeline-card,
  .booking-panel,
  .soon-card {
    padding: 14px;
  }

  .page {
    gap: 12px;
  }

  .home-page .barber-grid {
    grid-template-columns: 1fr;
  }

  .slide {
    min-height: auto;
  }

  .home-hero,
  .home-dashboard-grid,
  .compact-metrics {
    grid-template-columns: 1fr;
  }

  .home-page {
    gap: 12px;
    overflow-x: visible;
  }

  .home-page > *,
  .home-page .content-card,
  .home-page .barber-card,
  .home-page .booking-barber-surface,
  .home-page .booking-barber-visual,
  .home-page .booking-barber-visual-frame {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
  }

  .home-page [data-home-barber-rotation-root],
  .home-page .home-barber-rotating-wrap,
  .home-page .home-barber-rotating-stage,
  .home-page .home-barber-rotating-layer,
  .home-page .home-barber-rotating-card {
    max-width: none;
    overflow: visible;
  }

  .home-frame,
  .home-about-card,
  .map-card,
  .contacts-card {
    border-radius: 24px;
  }

  .home-frame {
    padding: 12px;
  }

  .home-about-card,
  .map-card,
  .contacts-card {
    padding: 14px;
  }

  .promo-strip {
    margin-bottom: 14px;
  }

  .promo-marquee {
    padding: 2px 0;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    mask-image: none;
    -webkit-mask-image: none;
  }

  .promo-marquee.is-animated {
    overflow: hidden;
    -webkit-overflow-scrolling: auto;
    touch-action: pan-y;
  }

  .promo-marquee::-webkit-scrollbar {
    display: none;
  }

  .promo-track {
    --promo-gap: 8px;
    gap: var(--promo-gap);
    width: auto;
    min-width: max-content;
    animation: none;
    padding-bottom: 2px;
  }

  .promo-marquee.is-animated .promo-track {
    width: max-content;
    min-width: max-content;
    animation: none;
  }

  .promo-lane {
    gap: var(--promo-gap);
  }

  .promo-thumb {
    flex-basis: clamp(136px, 40vw, 176px);
  }

  .promo-sheet-hero {
    min-height: 220px;
    padding: 18px 18px 16px;
  }

  .promo-sheet-body {
    padding: 16px 18px 18px;
  }

  .home-brand-row,
  .section-head {
    gap: 10px;
  }

  .home-page .section-head {
    flex-wrap: wrap;
  }

  .home-page .section-head .ghost-btn {
    min-width: 0;
    max-width: 100%;
  }

  .brand-mark {
    max-width: 62%;
    font-size: 1.02rem;
  }

  .home-brand-dots {
    gap: 7px;
  }

  .home-brand-dots span {
    width: 16px;
  }

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

  .appointment-card {
    gap: 12px;
    padding: 14px;
    border-radius: 22px;
  }

  .appointment-head {
    align-items: stretch;
    gap: 10px;
  }

  .appointment-head-eta {
    font-size: 0.84rem;
  }

  .appointment-meta {
    padding: 16px 16px 14px;
  }

  .appointment-card.has-booking .appointment-meta .field-label {
    gap: 10px;
    font-size: 0.9rem;
  }

  .appointment-meta strong {
    margin-top: 16px;
    font-size: 0.96rem;
  }

  .appointment-label-icon {
    width: 20px;
    height: 20px;
  }

  .appointment-card.has-booking .appointment-barber {
    padding: 6px 14px;
    border-radius: 18px;
  }

  .manage-booking-sheet {
    gap: 14px;
    padding-inline: 2px;
  }

  .manage-booking-card {
    padding: 14px;
  }

  .manage-booking-services {
    padding: 16px;
    border-radius: 20px;
  }

  .manage-booking-actions {
    grid-template-columns: 1fr;
    gap: 10px;
    padding-inline: 0;
  }

  .barber-profile-scene {
    min-height: 0;
    aspect-ratio: 1419 / 807;
    border-radius: 24px;
  }

  .barber-profile-hero {
    padding: 0 0 8px;
    margin: 0;
  }

  .home-barber-rotating-card {
    padding: 0;
  }

  .barber-profile-surface {
    transform: none;
  }

  .barber-profile-layout {
    grid-template-columns: 1fr;
    min-height: 100%;
    padding: 18px 18px 0;
    gap: 0;
  }

  .barber-profile-copy {
    position: relative;
    z-index: 2;
    gap: 7px;
    padding-bottom: 0;
    max-width: calc(100% - min(34vw, 8.5rem));
    width: calc(100% - min(34vw, 8.5rem));
    padding-top: 8px;
    padding-right: 8px;
    align-self: start;
  }

  .barber-profile-kicker,
  .barber-profile-meta-label {
    font-size: 0.68rem;
  }

  .barber-profile-kicker {
    display: none;
  }

  .barber-profile-title {
    max-width: none;
    font-size: clamp(1.55rem, 7.2vw, 2.1rem);
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
  }

  .barber-profile-subtitle {
    display: none;
  }

  .barber-profile-signature {
    display: block;
    font-size: 0.86rem;
    line-height: 1.34;
    max-width: none;
    overflow-wrap: anywhere;
  }

  .barber-profile-description {
    display: block;
    font-size: 0.74rem;
    line-height: 1.32;
    max-width: none;
    overflow-wrap: anywhere;
  }

  .barber-profile-services {
    display: none;
  }

  .barber-profile-meta {
    position: absolute;
    top: 18px;
    right: 18px;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    width: auto;
    margin-top: 0;
    z-index: 3;
  }

  .barber-profile-meta-item {
    display: grid;
    justify-items: end;
    gap: 5px;
    padding: 0;
    border-radius: 0;
    background: none;
    box-shadow: none;
    backdrop-filter: none;
  }

  .barber-profile-meta-item:last-child {
    display: none;
  }

  .barber-profile-page .barber-profile-meta-item .barber-profile-meta-label {
    display: block;
    font-size: 0.58rem;
    color: rgba(255, 255, 255, 0.48);
    letter-spacing: 0.1em;
    line-height: 1;
    width: 4.9rem;
    text-align: right;
  }

  .barber-profile-page .barber-profile-meta-item strong {
    display: none;
  }

  .barber-profile-meta-note {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 1px;
    font-size: 0.76rem;
    line-height: 1;
    letter-spacing: 0.06em;
    white-space: nowrap;
    width: 4.9rem;
  }

  .barber-profile-action-row {
    display: none;
  }

  .home-barber-rotating-card .barber-profile-description {
    display: none;
  }

  .home-barber-rotating-card .barber-profile-copy {
    position: relative;
    align-self: stretch;
    padding-bottom: 68px;
  }

  .home-barber-rotating-card .barber-profile-action-row {
    display: flex;
    position: absolute;
    left: 0;
    bottom: 16px;
    margin-top: 0;
    justify-content: flex-start;
    align-self: auto;
  }

  .home-barber-rotating-card .barber-profile-primary-btn {
    display: none;
  }

  .home-barber-rotating-card .barber-profile-secondary-btn {
    min-width: 0;
    padding-inline: 16px;
    background: rgba(255, 255, 255, 0.92);
    color: #121617;
    border-color: rgba(255, 255, 255, 0.16);
  }

  .barber-profile-art {
    position: absolute;
    right: 6px;
    bottom: 0;
    width: 36%;
    height: 84%;
    padding-top: 0;
    pointer-events: none;
  }

  .barber-profile-art-stack {
    width: 100%;
    height: 100%;
    min-height: 0;
  }

  .barber-profile-art-outline,
  .barber-profile-art-image {
    right: 0;
    bottom: -10px;
    width: auto;
    height: 100%;
    max-width: 100%;
    max-height: none;
  }

  .home-barber-rotating-card .barber-profile-art {
    width: 42%;
    height: 90%;
    right: 2px;
  }

  .barber-profile-backdrop-orb-a {
    display: none;
  }

  .barber-profile-backdrop-orb-b {
    display: none;
  }

  .barber-profile-backdrop-wave {
    top: -92%;
    right: -40%;
    left: auto;
    width: 110%;
    height: 176%;
    transform: none;
    opacity: 1;
  }

  .barber-profile-backdrop-name {
    top: auto;
    right: 12px;
    left: 12px;
    bottom: 10px;
    overflow: hidden;
    color: rgba(255, 255, 255, 0.08);
    font-size: clamp(2rem, 14vw, 3.1rem);
    text-align: left;
    z-index: 0;
  }

  .barber-profile-mobile-sheet {
    display: grid;
    gap: 10px;
    padding: 10px 6px 8px;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    border: 0;
  }

  .barber-profile-mobile-signature,
  .barber-profile-mobile-description {
    display: none;
  }

  .barber-profile-mobile-signature {
    font: 700 0.98rem/1.5 var(--barber-ui-font);
    max-width: none;
  }

  .barber-profile-mobile-description {
    font-size: 0.92rem;
    line-height: 1.58;
    max-width: none;
  }

  .barber-profile-mobile-actions {
    gap: 10px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .barber-profile-mobile-actions .primary-btn,
  .barber-profile-mobile-actions .ghost-btn {
    min-height: 44px;
    padding-inline: 14px;
    font-size: 0.88rem;
    border-radius: var(--md-sys-shape-corner-full);
    box-shadow: initial;
    border: initial;
  }

  .barber-profile-mobile-actions .barber-profile-primary-btn {
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0) 30%),
      var(--md-sys-color-primary);
    color: var(--md-sys-color-on-primary);
  }

  .barber-profile-mobile-actions .barber-profile-primary-btn::before,
  .barber-profile-mobile-actions .barber-profile-secondary-btn::before {
    display: none;
  }

  .barber-profile-mobile-actions .barber-profile-secondary-btn {
    background: rgba(18, 22, 22, 0.96);
    color: var(--text);
  }

  .barber-profile-mobile-meta {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
  }

  .barber-profile-mobile-meta .barber-profile-meta-item {
    gap: 4px;
    padding: 10px 8px 9px;
    border-radius: 14px;
  }

  .barber-profile-mobile-meta .barber-profile-meta-item:first-child {
    display: none;
  }

  .barber-profile-mobile-meta .barber-profile-meta-item strong {
    font-size: 1rem;
  }

  .barber-profile-mobile-meta .barber-profile-meta-note {
    font-size: 0.7rem;
  }

  .barber-profile-panel,
  .barber-reviews-card {
    padding: 16px;
  }

  .barber-review-head {
    display: grid;
    gap: 4px;
  }

  .appointment-overview {
    gap: 12px;
  }

  .appointment-cta-wrap::before,
  .appointment-cta-wrap::after {
    display: none;
  }

  .booking-cta {
    width: 100%;
    min-width: 0;
    justify-self: stretch;
  }

  .about-image-frame,
  .map-image {
    aspect-ratio: 16 / 8.6;
    border-radius: 18px;
  }

  .map-overlay-card {
    left: 10px;
    right: 10px;
    bottom: 10px;
    gap: 8px 10px;
    padding: 12px;
    border-radius: 20px;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
  }

  .map-overlay-action {
    display: none;
  }

  .map-overlay-icon {
    width: 44px;
    height: 44px;
    border-radius: 16px;
  }

  .map-overlay-copy strong {
    font-size: 0.94rem;
  }

  .map-overlay-copy span {
    font-size: 0.88rem;
    line-height: 1.24;
  }

  .booking-grid,
  .summary-grid,
  .shop-teaser-grid {
    grid-template-columns: 1fr;
  }

  .shop-coming-card {
    padding: 18px 14px;
  }

  .shop-coming-shell {
    gap: 8px;
  }

  .booking-page,
  .booking-grid,
  .booking-page > .page-hero,
  .booking-page > .booking-summary {
    width: 100%;
    max-width: none;
    margin-inline: 0;
  }

  .booking-step {
    padding: 14px;
    border-radius: 24px;
  }

  .booking-flow {
    gap: 12px;
  }

  .booking-page > .booking-summary {
    margin-top: 0;
  }

  .booking-progress-line,
  .summary-master-row {
    flex-wrap: wrap;
  }

  .profile-hero-meta {
    grid-template-columns: 1fr;
  }

  .profile-next-booking-meta {
    gap: 6px;
  }

  .profile-title-row {
    flex-direction: column;
    align-items: stretch;
  }

  .profile-edit-trigger {
    width: 48px;
    align-self: flex-start;
  }

  .profile-cover-actions {
    top: 12px;
    right: 12px;
  }

  .profile-cover {
    min-height: 142px;
    margin: -14px -14px 0;
    border-radius: 24px 24px 22px 22px;
    background:
      radial-gradient(circle at 18% 24%, color-mix(in srgb, var(--profile-cover-glow) 88%, transparent), transparent 30%),
      linear-gradient(
        90deg,
        color-mix(in srgb, var(--profile-cover-accent) 72%, var(--profile-cover-base) 28%) 0%,
        color-mix(in srgb, var(--profile-cover-accent) 44%, var(--profile-cover-base) 56%) 44%,
        var(--profile-cover-base) 100%
      );
  }

  .profile-social-head {
    margin-top: -40px;
    gap: 14px;
    padding: 0 0 8px;
  }

  .profile-avatar-panel {
    min-width: 184px;
    max-width: calc(100vw - 32px);
  }

  .profile-summary-strip {
    gap: 8px;
  }

  .profile-summary-cell {
    padding: 12px 12px;
  }

  .profile-summary-cell .field-label {
    font-size: 0.72rem;
  }

  .profile-summary-cell strong,
  .metric-trigger strong {
    font-size: 0.95rem;
  }

  .telegram-card-head {
    grid-template-columns: 1fr;
  }

  .profile-avatar-upload-card {
    grid-template-columns: 1fr;
    justify-items: start;
  }

  .profile-edit-form-layout {
    grid-template-columns: 1fr;
  }

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

  .profile-security-telegram,
  .security-password-trigger {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
  }

  .profile-security-telegram .inline-actions,
  .security-password-trigger-action,
  .toggle-card input[type="checkbox"] {
    justify-self: end;
  }

  .profile-history-card .section-head {
    flex-direction: column;
    align-items: stretch;
  }

  .profile-history-card .section-title {
    max-width: none;
    font-size: clamp(1.15rem, 7vw, 1.8rem);
  }

  .telegram-link-btn {
    width: 100%;
  }

  .booking-summary {
    position: static;
    bottom: auto;
    z-index: 1;
    gap: 12px;
    padding-bottom: 18px;
  }

  .map-title {
    font-size: 1.55rem;
  }

  .contacts-card .section-title {
    font-size: 1.55rem;
    margin-bottom: 8px;
  }

  .contacts-phone {
    width: 100%;
  }

  .contact-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .square-btn {
    width: 100%;
    min-width: 100%;
  }

  .icon-btn {
    justify-content: flex-start;
    min-width: 100%;
  }

  .sheet {
    width: 100%;
    height: 100%;
    max-height: 100%;
    padding: max(18px, env(safe-area-inset-top, 0px) + 10px) 16px calc(18px + env(safe-area-inset-bottom, 0px));
    border-radius: 0;
    transform: translateY(100%);
    transition: transform 0.32s cubic-bezier(.2,.8,.2,1), opacity 0.24s ease;
  }

  .sheet.sheet-wide {
    width: 100%;
    height: 100%;
    max-height: 100%;
  }

  .sheet.sheet-success {
    width: 100%;
    min-height: 100%;
    padding-top: max(56px, env(safe-area-inset-top, 0px) + 34px);
  }

  .sheet-backdrop {
    align-items: stretch;
    padding: 0;
  }

  .sheet.is-open {
    transform: translateY(0);
  }

  .sheet.is-entering {
    transform: translateY(100%);
  }

  .sheet.is-closing {
    transform: translateY(100%);
    opacity: 0.98;
  }

  .sheet-success-close {
    top: max(18px, env(safe-area-inset-top, 0px) + 8px);
    right: 16px;
  }

  .booking-status-sheet {
    min-height: 52vh;
  }

  .bottom-nav {
    gap: 6px;
    padding: 7px;
    --nav-booking-size: 60px;
    --nav-booking-cutout: 34px;
    --nav-booking-cutout-offset: 10px;
    --nav-booking-lift: 27px;
    border-radius: 20px;
  }

  .nav-pill {
    min-height: 48px;
  }

  .bottom-nav .nav-pill.nav-pill-booking,
  .bottom-nav .nav-pill.nav-pill-booking:hover,
  .bottom-nav .nav-pill.nav-pill-booking:active,
  .bottom-nav .nav-pill.nav-pill-booking.active {
    transform: translateY(calc(-1 * var(--nav-booking-lift)));
  }
}
