:root{
  --surface:#ffffff;
  --surface-soft:#f5f8ff;
  --surface-muted:#ecf3ff;
  --ink:#0f172a;
  --muted:#5b6b83;
  --line:#dbe6f6;
  --line-strong:#bfd3ef;
  --brand:#2864dc;
  --brand-deep:#1744a7;
  --brand-soft:#edf4ff;
  --accent:#18b6c9;
  --success:#0f9d7a;
  --danger:#d6455d;
  --shadow:0 24px 60px -36px rgba(17,24,39,.32);
}

body.site-body{
  font-family:"Plus Jakarta Sans",ui-sans-serif,system-ui,sans-serif;
  background:linear-gradient(180deg,#eef5ff 0%,#f8fbff 30%,#f8fafc 100%);
  color:var(--ink);
}

body.has-drawer-open,
body.has-auth-modal-open{
  overflow:hidden;
}

.site-body h1,
.site-body h2,
.site-body h3{
  font-family:"Sora","Plus Jakarta Sans",ui-sans-serif,system-ui,sans-serif;
  letter-spacing:-.04em;
}

.site-backdrop{
  position:fixed;
  inset:0;
  z-index:-1;
  background:
    radial-gradient(circle at top left, rgba(40,100,220,.16), transparent 34%),
    radial-gradient(circle at 90% 10%, rgba(24,182,201,.14), transparent 28%),
    linear-gradient(180deg, rgba(255,255,255,.68), rgba(255,255,255,0));
}

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

.site-header-shell{
  padding:20px 0 0;
}

body.is-patient-surface .site-header-shell{
  padding-top:12px;
}

body.is-admin-surface .site-header-shell{
  padding-top:12px;
}

.site-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:18px 20px;
  border:1px solid rgba(255,255,255,.78);
  border-radius:28px;
  background:rgba(255,255,255,.8);
  backdrop-filter:blur(18px);
  box-shadow:var(--shadow);
}

.site-brand{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}

.site-brand__mark{
  display:flex;
  align-items:center;
  justify-content:center;
  width:52px;
  height:52px;
  border-radius:18px;
  background:linear-gradient(145deg,var(--brand),var(--accent));
  color:#fff;
  font-weight:800;
  font-size:1.2rem;
  flex-shrink:0;
  box-shadow:0 16px 32px -20px rgba(40,100,220,.58);
}

.site-brand__logo{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:inherit;
}

.site-brand__mark--drawer{
  width:56px;
  height:56px;
  border-radius:20px;
}

.site-brand__copy{
  display:flex;
  flex-direction:column;
  min-width:0;
}

.site-brand__eyebrow{
  font-size:.68rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.22em;
  color:#6f84a8;
}

.site-brand__name{
  font-size:1.05rem;
  font-weight:700;
  color:var(--ink);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.site-nav{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
}

.site-mobile-only{
  display:none;
}

.site-mobile-topbar.site-mobile-only,
.site-scoped-drawer.site-mobile-only{
  display:none;
}

.site-mobile-only[hidden],
.site-scoped-drawer[hidden]{
  display:none !important;
}

.site-mobile-topbar{
  display:grid;
  grid-template-columns:44px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  padding:10px;
  border:1px solid rgba(255,255,255,.82);
  border-radius:18px;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(18px);
  box-shadow:var(--shadow);
  position:sticky;
  top:10px;
  z-index:45;
}

.site-mobile-topbar__menu{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  padding:0;
  border-radius:14px;
  border:1px solid var(--line);
  background:#fff;
  box-shadow:0 14px 28px -24px rgba(40,100,220,.42);
}

.site-mobile-topbar__menu-bars{
  display:grid;
  gap:4px;
}

.site-mobile-topbar__menu-bars span{
  display:block;
  width:16px;
  height:2px;
  border-radius:999px;
  background:#27405e;
}

.site-mobile-topbar__brand{
  display:flex;
  flex-direction:column;
  min-width:0;
  flex:1 1 auto;
  gap:2px;
}

.site-mobile-topbar__eyebrow{
  font-size:.58rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:#7a8eaf;
  line-height:1.1;
}

.site-mobile-topbar__brand strong{
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:1rem;
  line-height:1.15;
  color:var(--ink);
}

.site-mobile-topbar__action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:0 11px;
  border-radius:999px;
  background:#edf4ff;
  color:var(--brand-deep);
  font-size:.78rem;
  font-weight:800;
  flex-shrink:0;
}

.site-mobile-topbar__action--profile{
  width:40px;
  min-width:40px;
  min-height:40px;
  padding:0;
  border-radius:16px;
  background:transparent;
}

.site-mobile-topbar__avatar{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  border-radius:14px;
  background:linear-gradient(135deg,#1c4eca 0%,#169bb0 100%);
  color:#fff;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.06em;
  box-shadow:0 14px 24px -20px rgba(28,78,202,.72);
}

.site-scoped-drawer{
  position:fixed;
  inset:0;
  z-index:70;
}

.site-scoped-drawer__backdrop{
  position:absolute;
  inset:0;
  background:rgba(15,23,42,.36);
}

.site-scoped-drawer__panel{
  position:relative;
  width:min(86vw, 340px);
  height:100%;
  padding:24px 18px;
  border-radius:0 28px 28px 0;
  background:#ffffff;
  box-shadow:0 20px 70px -28px rgba(15,23,42,.46);
  display:flex;
  flex-direction:column;
  gap:20px;
  transform:translateX(-24px);
  opacity:0;
  transition:transform .2s ease, opacity .2s ease;
}

.site-scoped-drawer.is-open .site-scoped-drawer__panel{
  transform:translateX(0);
  opacity:1;
}

.site-scoped-drawer__head{
  display:flex;
  align-items:flex-start;
  gap:14px;
}

.site-scoped-drawer__contact{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:4px;
}

.site-scoped-drawer__phone-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#edf4ff;
  color:var(--brand-deep);
  flex-shrink:0;
}

.site-scoped-drawer__phone-link svg{
  width:14px;
  height:14px;
}

.site-scoped-drawer__nav{
  display:grid;
  gap:8px;
}

.site-scoped-drawer__nav form{
  display:flex;
}

.site-scoped-drawer__nav a,
.site-scoped-drawer__nav button{
  display:flex;
  align-items:center;
  width:100%;
  min-height:46px;
  padding:0 14px;
  border-radius:18px;
  background:#f8fbff;
  border:1px solid var(--line);
  color:#29415f;
  font-size:.92rem;
  font-weight:700;
  text-align:left;
}

.site-scoped-drawer__nav a[aria-current="page"]{
  background:linear-gradient(135deg,var(--brand),var(--brand-deep));
  border-color:transparent;
  color:#fff;
  box-shadow:0 18px 32px -24px rgba(40,100,220,.68);
}

.site-scoped-drawer__footer{
  margin-top:auto;
  display:grid;
  gap:6px;
  font-size:.82rem;
  color:#7184a0;
}

.site-nav__link,
.site-nav__button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:0 16px;
  border-radius:999px;
  font-size:.92rem;
  font-weight:700;
  transition:all .18s ease;
}

.site-nav__link{
  color:#375179;
  background:rgba(239,245,255,.66);
}

.site-nav__link:hover{
  background:#e7efff;
}

.site-nav__button{
  color:#fff;
  background:linear-gradient(135deg,var(--brand),var(--brand-deep));
  box-shadow:0 16px 32px -22px rgba(40,100,220,.72);
}

.site-nav__button:hover,
.btn-primary:hover{
  transform:translateY(-1px);
}

.site-subheader{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:14px 8px 0;
}

.site-subheader--compact{
  align-items:center;
}

.site-subheader__title{
  font-size:.98rem;
  font-weight:700;
  color:#223250;
}

.site-subheader__meta{
  font-size:.86rem;
  color:var(--muted);
}

.site-subheader__badges{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.site-pill,
.eyebrow-pill,
.section-badge,
.history-card__status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 12px;
  border-radius:999px;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.03em;
}

.site-pill,
.section-badge{
  background:#e8f1ff;
  color:var(--brand-deep);
}

.site-pill--soft,
.section-badge--soft{
  background:#f3fbff;
  color:#12798c;
}

.site-main{
  padding:26px 0 42px;
}

body.is-patient-surface .site-main{
  padding:12px 0 30px;
}

.site-footer{
  border-top:1px solid rgba(191,211,239,.7);
  background:rgba(255,255,255,.72);
  backdrop-filter:blur(14px);
}

.site-footer__inner{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:18px 0 28px;
  font-size:.82rem;
  color:#70829d;
}

.notice{
  margin-bottom:18px;
  padding:14px 16px;
  border-radius:20px;
  font-size:.92rem;
  font-weight:600;
  border:1px solid transparent;
  box-shadow:var(--shadow);
}

body.is-patient-surface .notice{
  margin-bottom:14px;
  padding:12px 14px;
  border-radius:18px;
}

.notice--success{
  background:#effdf7;
  border-color:#a7f3d0;
  color:#0a6c52;
}

.notice--error{
  background:#fff1f4;
  border-color:#fecdd6;
  color:#a52745;
}

.btn-primary,
.btn-secondary{
  min-height:48px;
  border-radius:18px;
  font-weight:700;
}

.btn-primary{
  background:linear-gradient(135deg,var(--brand),var(--brand-deep));
  box-shadow:0 18px 36px -24px rgba(40,100,220,.65);
}

.btn-primary:disabled{
  opacity:.58;
  cursor:not-allowed;
  transform:none;
  box-shadow:none;
}

.btn-secondary{
  border-color:var(--line);
  color:#29415f;
  background:rgba(255,255,255,.9);
}

body.is-patient-surface .btn-primary,
body.is-patient-surface .btn-secondary,
body.is-patient-surface .danger-button{
  min-height:44px;
  border-radius:16px;
  font-size:.88rem;
}

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

.eyebrow-pill{
  background:rgba(24,182,201,.12);
  color:#0f7c90;
  width:max-content;
}

.section-headline{
  display:flex;
  flex-direction:column;
  gap:14px;
  margin-bottom:22px;
}

body.is-patient-surface .section-headline{
  gap:10px;
  margin-bottom:14px;
}

.section-headline--compact{
  margin-bottom:14px;
}

body.is-patient-surface .section-headline--compact{
  margin-bottom:10px;
}

.section-headline h1,
.section-headline h2{
  font-size:clamp(2rem, 4vw, 2.8rem);
  line-height:1.04;
}

.section-headline h2{
  font-size:clamp(1.45rem, 3vw, 2.1rem);
}

body.is-patient-surface .section-headline h1{
  font-size:clamp(1.55rem, 6vw, 2.05rem);
  line-height:1.07;
}

body.is-patient-surface .section-headline h2{
  font-size:clamp(1.2rem, 4.8vw, 1.5rem);
  line-height:1.12;
}

.section-kicker{
  margin-bottom:8px;
  font-size:.76rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.24em;
  color:#6d7ea0;
}

body.is-patient-surface .section-kicker{
  margin-bottom:4px;
  font-size:.72rem;
}

.section-copy{
  max-width:52rem;
  color:var(--muted);
  line-height:1.75;
}

body.is-patient-surface .section-copy{
  font-size:.94rem;
  line-height:1.58;
}

.directory-shell,
.clinic-list-shell,
.clinic-landing,
.doctor-section,
.doctor-profile-shell,
.booking-shell,
.dashboard-shell{
  display:grid;
  gap:22px;
}

body.is-patient-surface .directory-shell,
body.is-patient-surface .clinic-list-shell,
body.is-patient-surface .clinic-landing,
body.is-patient-surface .doctor-section,
body.is-patient-surface .doctor-profile-shell,
body.is-patient-surface .booking-shell,
body.is-patient-surface .dashboard-shell{
  gap:16px;
}

.directory-hero,
.clinic-hero,
.doctor-profile-card,
.booking-grid,
.auth-shell{
  display:grid;
  gap:20px;
}

.directory-hero{
  align-items:center;
}

.directory-hero__copy,
.clinic-hero__copy,
.preview-phone,
.clinic-badge-card,
.doctor-card,
.doctor-profile-card,
.booking-doctor-card,
.booking-status-card,
.booking-panel,
.auth-aside,
.auth-card,
.appointment-card,
.history-card,
.clinic-tile,
.feature-band__item{
  border:1px solid rgba(255,255,255,.85);
  border-radius:32px;
  background:rgba(255,255,255,.9);
  box-shadow:var(--shadow);
}

.directory-hero__copy,
.clinic-hero__copy,
.doctor-profile-card__content,
.booking-panel,
.auth-aside,
.auth-card,
.appointment-card,
.history-card,
.clinic-tile,
.feature-band__item{
  padding:24px;
}

body.is-patient-surface .directory-hero__copy,
body.is-patient-surface .clinic-hero__copy,
body.is-patient-surface .doctor-profile-card__content,
body.is-patient-surface .booking-panel,
body.is-patient-surface .auth-aside,
body.is-patient-surface .auth-card,
body.is-patient-surface .appointment-card,
body.is-patient-surface .history-card,
body.is-patient-surface .clinic-tile,
body.is-patient-surface .feature-band__item{
  padding:18px;
  border-radius:24px;
}

.directory-hero__copy h1,
.clinic-hero__copy h1{
  font-size:clamp(2.2rem, 5vw, 4.2rem);
  line-height:.98;
  margin:12px 0 14px;
}

.directory-hero__copy p,
.clinic-hero__lead{
  max-width:44rem;
  font-size:1rem;
  line-height:1.8;
  color:var(--muted);
}

.preview-phone{
  padding:18px;
  background:linear-gradient(180deg,#f8fbff 0%,#eef5ff 100%);
}

.preview-phone__top,
.clinic-badge-card__footer,
.doctor-card__meta,
.booking-summary-list div,
.appointment-card__meta,
.history-card__meta{
  display:flex;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}

.preview-phone__top{
  margin-bottom:16px;
  font-size:.82rem;
  font-weight:700;
  color:#70829d;
}

.preview-phone__card{
  padding:18px;
  border-radius:26px;
  background:#fff;
  border:1px solid var(--line);
}

.preview-phone__card--brand{
  background:linear-gradient(135deg,#1c4eca,#169bb0);
  color:#fff;
  box-shadow:0 28px 42px -30px rgba(28,78,202,.8);
}

.preview-phone__label{
  margin-bottom:8px;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(255,255,255,.7);
}

.preview-phone__card h2{
  font-size:1.45rem;
  line-height:1.15;
  color:inherit;
}

.preview-phone__card p,
.preview-phone__card span{
  margin-top:8px;
  font-size:.92rem;
  line-height:1.65;
  color:inherit;
}

.preview-phone__grid{
  display:grid;
  gap:14px;
  margin-top:14px;
}

.feature-band,
.clinic-list-grid,
.doctor-grid,
.history-grid{
  display:grid;
  gap:16px;
}

.feature-band__number{
  display:inline-flex;
  width:42px;
  height:42px;
  align-items:center;
  justify-content:center;
  margin-bottom:16px;
  border-radius:14px;
  background:#e9f2ff;
  color:var(--brand-deep);
  font-size:.9rem;
  font-weight:800;
}

.feature-band__item h3,
.doctor-card__identity h3,
.doctor-profile-card__summary h2,
.clinic-tile h2,
.clinic-tile h3,
.appointment-card h3,
.history-card h3{
  font-size:1.2rem;
  color:var(--ink);
}

.feature-band__item p,
.clinic-tile p,
.doctor-card__bio,
.doctor-profile-card__about p,
.doctor-empty-state p,
.auth-aside p,
.booking-status-card p{
  margin-top:10px;
  line-height:1.75;
  color:var(--muted);
}

.clinic-tile__top,
.doctor-card__top,
.clinic-badge-card__brand,
.appointment-card__top,
.history-card__top{
  display:flex;
  align-items:flex-start;
  gap:14px;
}

.appointment-card__schedule{
  display:grid;
  justify-items:end;
  gap:8px;
  text-align:right;
}

.appointment-card__time{
  font-size:1rem;
  line-height:1.1;
  color:var(--ink);
}

.dashboard-shell--patient{
  gap:14px;
}

.dashboard-shell__heading{
  margin-bottom:0;
}

.dashboard-shell__heading h1{
  font-size:clamp(1.45rem, 5.6vw, 1.9rem);
  line-height:1.06;
}

.dashboard-shell__cta{
  margin-top:2px;
}

.clinic-tile__logo,
.doctor-card__avatar,
.clinic-badge-card__logo,
.doctor-profile-card__portrait{
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  flex-shrink:0;
  color:var(--brand-deep);
  background:var(--brand-soft);
}

.clinic-tile__logo,
.clinic-badge-card__logo{
  width:60px;
  height:60px;
  border-radius:20px;
}

.doctor-card__avatar{
  width:66px;
  height:66px;
  border-radius:22px;
  font-size:1.15rem;
  font-weight:800;
}

.doctor-card__avatar-image,
.clinic-tile__logo-image,
.doctor-profile-card__portrait-image{
  width:100%;
  height:100%;
  object-fit:cover;
}

.clinic-tile__meta,
.doctor-card__meta,
.appointment-card__meta,
.history-card__meta{
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid var(--line);
  font-size:.88rem;
  color:#69809f;
}

body.is-patient-surface .appointment-card__meta,
body.is-patient-surface .history-card__meta{
  margin-top:12px;
  padding-top:12px;
  gap:8px;
  font-size:.84rem;
}

.clinic-tile__actions,
.doctor-card__actions,
.doctor-profile-card__actions,
.booking-status-card__actions,
.auth-card__footer{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}

.clinic-tile__actions,
.doctor-card__actions{
  margin-top:18px;
}

.clinic-hero{
  align-items:stretch;
}

.clinic-hero__stats{
  display:grid;
  gap:12px;
  margin:20px 0 22px;
}

.clinic-stat-card{
  padding:16px 18px;
  border-radius:24px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.7);
}

.clinic-stat-card strong{
  display:block;
  font-size:1rem;
  font-weight:800;
  color:var(--ink);
}

.clinic-stat-card span{
  display:block;
  margin-top:6px;
  font-size:.84rem;
  color:#6f84a8;
}

.clinic-badge-card{
  padding:22px;
  background:linear-gradient(180deg,#fbfdff 0%,#eef5ff 100%);
}

.clinic-badge-card__label{
  margin-bottom:6px;
  font-size:.76rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.2em;
  color:#6f84a8;
}

.clinic-badge-card__details{
  display:grid;
  gap:10px;
  margin:18px 0;
  font-size:.92rem;
  color:#314866;
}

.clinic-badge-card__footer{
  padding-top:16px;
  border-top:1px solid var(--line);
  font-size:.82rem;
  color:#6a7e9d;
}

.trust-strip{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  padding:16px 18px;
  border-radius:24px;
  background:rgba(237,244,255,.84);
  color:#35547b;
  font-size:.9rem;
  font-weight:700;
}

.doctor-empty-state{
  padding:28px 24px;
  border:1px dashed var(--line-strong);
  border-radius:28px;
  background:rgba(255,255,255,.72);
}

.doctor-empty-state h3{
  font-size:1.2rem;
}

.doctor-card__identity{
  flex:1 1 auto;
  min-width:0;
}

.doctor-card__identity p,
.doctor-profile-card__summary p,
.appointment-card__top p,
.history-card__top p{
  margin-top:5px;
  color:#4c6a92;
  font-weight:600;
}

.doctor-card__fee{
  padding:10px 12px;
  border-radius:16px;
  background:#edf4ff;
  color:var(--brand-deep);
  font-size:.83rem;
  font-weight:800;
}

.doctor-card__bio{
  margin-top:16px;
}

.doctor-profile-card{
  overflow:hidden;
  padding:0;
}

.doctor-profile-card__media{
  padding:22px;
  background:linear-gradient(180deg,#f6fbff 0%,#eaf3ff 100%);
}

.doctor-profile-card__portrait{
  width:100%;
  max-width:300px;
  aspect-ratio:1/1;
  margin:0 auto;
  border-radius:34px;
  font-size:4rem;
  font-weight:800;
}

.doctor-profile-card__chips{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}

.doctor-profile-card__chips span{
  display:inline-flex;
  padding:10px 14px;
  border-radius:999px;
  background:#fff;
  border:1px solid var(--line);
  color:#35547b;
  font-size:.84rem;
  font-weight:700;
}

.doctor-profile-card__summary,
.doctor-profile-card__about{
  margin-bottom:20px;
}

.doctor-profile-card__clinic,
.booking-summary-list{
  display:grid;
  gap:14px;
}

.doctor-profile-card__clinic div,
.booking-summary-list div{
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:20px;
  background:#fbfdff;
}

.doctor-profile-card__clinic strong,
.booking-summary-list strong{
  display:block;
  margin-bottom:4px;
  color:#304560;
  font-size:.82rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.doctor-profile-card__clinic span,
.booking-summary-list span{
  color:#5f738e;
  font-size:.92rem;
}

.booking-grid{
  align-items:start;
}

.booking-surface{
  display:grid;
  gap:12px;
}

.booking-surface__hero,
.booking-surface__panel{
  border:1px solid rgba(255,255,255,.86);
  border-radius:24px;
  background:rgba(255,255,255,.92);
  box-shadow:var(--shadow);
}

.booking-surface__hero{
  display:grid;
  gap:12px;
  padding:16px;
}

.booking-surface__identity{
  display:flex;
  align-items:flex-start;
  gap:12px;
}

.booking-surface__avatar{
  width:56px;
  height:56px;
  border-radius:18px;
  flex-shrink:0;
}

.booking-surface__copy{
  min-width:0;
  flex:1 1 auto;
}

.booking-surface__copy h1{
  margin:2px 0 4px;
  font-size:clamp(1.32rem,4vw,1.9rem);
  line-height:1.02;
}

.booking-surface__copy p,
.booking-surface__helper p{
  color:var(--muted);
  line-height:1.75;
}

.booking-surface__meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.booking-surface__meta span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  padding:0 10px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#f7faff;
  color:#526884;
  font-size:.76rem;
  font-weight:700;
}

.booking-surface__form{
  display:grid;
  gap:12px;
}

.booking-surface__panel{
  display:grid;
  gap:14px;
  padding:16px;
}

.booking-surface__panel--soft{
  background:linear-gradient(180deg,#fbfdff 0%,#f4f8ff 100%);
}

.booking-surface__section-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}

.booking-surface__section-badges{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}

.booking-date-pager{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
}

.booking-date-pager__viewport{
  min-width:0;
  overflow:hidden;
}

.booking-date-pager__nav{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  border-radius:12px;
  border:1px solid var(--line);
  background:#fff;
  color:#27405e;
  font-size:1.2rem;
  font-weight:700;
  box-shadow:0 10px 22px -18px rgba(40,100,220,.4);
}

.quick-date-grid.booking-surface__dates{
  display:flex;
  flex-wrap:nowrap;
  gap:8px;
  overflow-x:auto;
  padding:2px 2px 4px;
  scrollbar-width:none;
  scroll-snap-type:x proximity;
  grid-template-columns:none;
}

.quick-date-grid.booking-surface__dates::-webkit-scrollbar{
  display:none;
}

.booking-surface__slot-block{
  display:grid;
  gap:10px;
  padding-top:4px;
}

.booking-surface__notes{
  min-height:88px;
}

.booking-surface__details{
  display:grid;
  gap:10px;
}

.booking-surface__details summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  cursor:pointer;
  list-style:none;
  font-size:.95rem;
  font-weight:700;
  color:#203252;
}

.booking-surface__details summary::-webkit-details-marker{
  display:none;
}

.booking-surface__details-body{
  padding-top:4px;
}

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

.booking-sticky-bar--sheet{
  bottom:10px;
  padding:14px 16px;
}

.booking-auth-modal{
  position:fixed;
  inset:0;
  z-index:80;
}

.booking-auth-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(15,23,42,.42);
}

.booking-auth-modal__dialog{
  position:relative;
  width:min(100% - 24px, 480px);
  max-height:calc(100vh - 24px);
  margin:12px auto 0;
  overflow:auto;
  padding:22px;
  border-radius:30px;
  background:#fff;
  box-shadow:0 28px 80px -36px rgba(15,23,42,.48);
}

.booking-auth-modal__close{
  position:absolute;
  top:14px;
  right:14px;
  width:38px;
  height:38px;
  border-radius:14px;
  border:1px solid var(--line);
  background:#fff;
  color:#3a5478;
  font-size:1.4rem;
  line-height:1;
}

.booking-auth-modal__head{
  margin-bottom:16px;
  padding-right:38px;
}

.booking-auth-modal__head h3{
  margin:6px 0 8px;
  font-size:1.55rem;
}

.booking-auth-modal__head p{
  color:var(--muted);
  line-height:1.7;
}

.booking-auth-modal__tabs{
  margin-bottom:14px;
}

.booking-auth-modal__message{
  margin-bottom:14px;
  padding:12px 14px;
  border-radius:18px;
  background:#eef4ff;
  color:#274d8f;
  font-size:.9rem;
  font-weight:700;
}

.booking-auth-modal__message.is-error{
  background:#fff1f4;
  color:#b83a57;
}

.booking-auth-modal__message.is-success{
  background:#effdf7;
  color:#0a6c52;
}

.booking-auth-modal__panel{
  display:none;
}

.booking-auth-modal__panel.is-active{
  display:grid;
}

.auth-google--modal{
  margin-bottom:0;
}

.booking-doctor-card,
.booking-status-card{
  padding:22px;
}

.booking-status-card{
  background:linear-gradient(180deg,#fbfdff 0%,#eff7ff 100%);
}

.booking-status-card__label{
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:#6d7ea0;
}

.booking-status-card h3{
  margin:10px 0 8px;
  font-size:1.26rem;
}

.booking-panel__header{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin-bottom:16px;
}

.booking-form{
  display:grid;
  gap:18px;
}

.quick-date-grid{
  display:grid;
  grid-template-columns:repeat(5, minmax(0,1fr));
  gap:10px;
}

.quick-date-pill,
.slot-chip{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:50px;
  padding:10px 8px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  color:#334c6d;
  font-size:.82rem;
  font-weight:700;
  text-align:center;
  transition:all .18s ease;
}

.quick-date-pill{
  flex-direction:column;
  flex:0 0 76px;
  min-height:72px;
  padding:10px 6px;
  border-radius:14px;
  scroll-snap-align:center;
}

.quick-date-pill strong{
  font-size:.78rem;
}

.quick-date-pill span{
  font-size:.72rem;
}

.quick-date-pill.is-active,
.slot-chip.is-active{
  border-color:#97baf1;
  background:var(--brand-soft);
  color:var(--brand-deep);
  box-shadow:inset 0 0 0 1px rgba(40,100,220,.08);
}

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

.slot-group{
  grid-column:1/-1;
  display:grid;
  gap:10px;
}

.slot-group__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.slot-group__label{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:0 12px;
  border-radius:999px;
  background:#eef4ff;
  color:var(--brand-deep);
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}

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

.slot-feedback{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  border-radius:18px;
  background:#f7fbff;
  border:1px dashed var(--line-strong);
  color:#667a95;
  font-size:.88rem;
}

.slot-feedback p{
  margin:0;
}

.slot-feedback--error{
  background:#fff2f5;
  border-color:#f9bec9;
  color:#b63857;
}

.slot-feedback__link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
  padding:0 12px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--brand-deep);
  font-size:.78rem;
  font-weight:800;
  white-space:nowrap;
}

.booking-form__field textarea{
  min-height:120px;
}

.booking-sticky-bar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  border-radius:22px;
  background:linear-gradient(180deg,#f8fbff 0%,#ecf3ff 100%);
  border:1px solid var(--line);
  position:sticky;
  bottom:14px;
}

.booking-sticky-bar__summary span{
  display:block;
  font-size:.8rem;
  font-weight:700;
  color:#6f84a8;
  text-transform:uppercase;
  letter-spacing:.12em;
}

.booking-sticky-bar__summary strong{
  display:block;
  margin-top:6px;
  font-size:.98rem;
  color:var(--ink);
}

.booking-sticky-bar__button{
  min-width:190px;
}

.slot-chip{
  flex-direction:column;
  gap:2px;
}

.slot-chip__time{
  font-size:.88rem;
  line-height:1.1;
}

.slot-chip__range{
  font-size:.68rem;
  line-height:1.2;
  color:#7387a5;
}

.slot-chip.is-active .slot-chip__range{
  color:var(--brand-deep);
}

.section-badge[data-tone="success"]{
  background:#effdf7;
  color:#0a6c52;
}

.section-badge[data-tone="warning"]{
  background:#fff7e7;
  color:#9a5d00;
}

.section-badge[data-tone="error"]{
  background:#fff1f4;
  color:#b83a57;
}

.auth-shell{
  align-items:stretch;
}

.auth-aside{
  background:linear-gradient(180deg,#163f9b 0%,#2864dc 58%,#18b6c9 100%);
  color:#fff;
}

.auth-aside h1{
  margin:14px 0 14px;
  font-size:clamp(2rem,4vw,3rem);
  line-height:1.02;
  color:#fff;
}

.auth-aside p{
  color:rgba(255,255,255,.82);
}

.auth-clinic-card{
  display:grid;
  gap:8px;
  margin-top:22px;
  padding:18px;
  border-radius:24px;
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(6px);
  color:#fff;
  font-size:.95rem;
}

.auth-card{
  padding:24px;
}

.auth-card h2{
  margin-bottom:18px;
  font-size:1.8rem;
}

.auth-card--wide{
  max-width:none;
}

.auth-form{
  display:grid;
  gap:16px;
}

.auth-card__footer{
  margin-top:16px;
}

.auth-card__footer a{
  font-size:.9rem;
  font-weight:700;
  color:var(--brand-deep);
}

.auth-method-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:18px;
}

.auth-method-tab{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:0 16px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  color:#3a5478;
  font-size:.9rem;
  font-weight:700;
}

.auth-method-tab.is-active{
  border-color:#97baf1;
  background:var(--brand-soft);
  color:var(--brand-deep);
}

.auth-otp-card,
.auth-google{
  display:grid;
  gap:14px;
  margin-bottom:18px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:24px;
  background:#f8fbff;
}

.auth-otp-card h3{
  font-size:1.22rem;
}

.auth-inline-note,
.auth-google__label{
  font-size:.88rem;
  line-height:1.7;
  color:#5b6b83;
}

.auth-google__label{
  font-weight:700;
}

.auth-google .g_id_signin{
  width:100%;
}

.auth-google iframe{
  width:100% !important;
}

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

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

.appointment-card__actions{
  display:grid;
  gap:12px;
  margin-top:18px;
}

.appointment-card__actions--compact{
  gap:10px;
  margin-top:14px;
}

.appointment-card__form{
  display:grid;
  gap:12px;
}

.appointment-card__form--compact{
  padding-top:8px;
}

.appointment-card__reschedule{
  display:grid;
  gap:0;
}

.appointment-card__reschedule summary{
  list-style:none;
}

.appointment-card__reschedule summary::-webkit-details-marker{
  display:none;
}

.appointment-card__summary-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:0 16px;
  border:1px solid var(--line);
  border-radius:16px;
  background:rgba(255,255,255,.9);
  color:#29415f;
  font-size:.88rem;
  font-weight:700;
  cursor:pointer;
}

.appointment-card__reschedule[open] .appointment-card__summary-button{
  border-color:#97baf1;
  background:var(--brand-soft);
  color:var(--brand-deep);
}

.danger-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:0 18px;
  border-radius:18px;
  border:1px solid #f6c2cc;
  background:#fff2f5;
  color:#b83a57;
  font-size:.9rem;
  font-weight:700;
}

.danger-button--compact{
  min-height:44px;
}

.history-card__status{
  background:#edf4ff;
  color:var(--brand-deep);
}

.slot-chip:hover,
.quick-date-pill:hover,
.booking-date-pager__nav:hover,
.btn-secondary:hover,
.auth-method-tab:hover,
.site-mobile-topbar__action:hover,
.site-scoped-drawer__nav a:hover,
.site-scoped-drawer__nav button:hover,
.site-nav__link:hover,
.danger-button:hover{
  transform:translateY(-1px);
}

.slot-chip:focus-visible,
.quick-date-pill:focus-visible,
.booking-date-pager__nav:focus-visible,
.btn-primary:focus-visible,
.btn-secondary:focus-visible,
.auth-method-tab:focus-visible,
.site-mobile-topbar__menu:focus-visible,
.site-mobile-topbar__action:focus-visible,
.site-scoped-drawer__nav a:focus-visible,
.site-scoped-drawer__nav button:focus-visible,
.site-nav__button:focus-visible,
.site-nav__link:focus-visible,
.danger-button:focus-visible{
  outline:3px solid rgba(40,100,220,.18);
  outline-offset:2px;
}

@media (min-width:768px){
  .site-mobile-topbar{
    grid-template-columns:48px minmax(0,1fr) auto;
    padding:12px 14px;
  }

  .booking-surface__hero{
    grid-template-columns:minmax(0,1.1fr) minmax(260px,.9fr);
    align-items:center;
  }

  .slot-grid--booking{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }

  .slot-group__grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }

  .directory-hero,
  .clinic-hero,
  .booking-grid,
  .auth-shell{
    grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);
  }

  .feature-band,
  .clinic-list-grid,
  .doctor-grid,
  .history-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

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

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

  .appointment-card__actions--compact{
    grid-template-columns:1fr;
  }
}

@media (min-width:992px){
  .doctor-profile-card{
    grid-template-columns:360px minmax(0,1fr);
  }

  .feature-band,
  .clinic-list-grid,
  .doctor-grid,
  .history-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media (max-width:767px){
  .site-header-shell,
  .site-main,
  .site-footer__inner{
    width:min(100% - 24px, 1180px);
  }

  body.is-patient-surface .site-header-shell,
  body.is-patient-surface .site-main,
  body.is-patient-surface .site-footer__inner{
    width:min(100% - 20px, 1180px);
  }

  .site-header{
    flex-direction:column;
    align-items:stretch;
  }

  .site-mobile-topbar.site-mobile-only{
    display:grid;
  }

  .site-scoped-drawer.site-mobile-only:not([hidden]){
    display:block;
  }

  .site-desktop-only{
    display:none;
  }

  .site-header-shell{
    padding-top:14px;
  }

  .site-main{
    margin-top:4px;
  }

  .site-nav{
    justify-content:flex-start;
  }

  .directory-shell,
  .clinic-list-shell,
  .clinic-landing,
  .doctor-section,
  .doctor-profile-shell,
  .booking-shell,
  .dashboard-shell{
    gap:14px;
  }

  .directory-hero,
  .clinic-hero,
  .doctor-profile-card,
  .booking-grid,
  .auth-shell{
    gap:14px;
  }

  .directory-hero__copy,
  .clinic-hero__copy,
  .doctor-profile-card__content,
  .booking-panel,
  .auth-aside,
  .auth-card,
  .appointment-card,
  .history-card,
  .clinic-tile,
  .feature-band__item{
    padding:18px;
    border-radius:24px;
  }

  .directory-hero__copy h1,
  .clinic-hero__copy h1{
    font-size:clamp(1.9rem, 8.8vw, 2.6rem);
    line-height:1.02;
    margin:10px 0 12px;
  }

  .directory-hero__copy p,
  .clinic-hero__lead{
    font-size:.93rem;
    line-height:1.62;
  }

  .hero-actions{
    gap:10px;
  }

  .hero-actions .btn-primary,
  .hero-actions .btn-secondary{
    width:100%;
    min-height:46px;
    font-size:.96rem;
  }

  .preview-phone{
    padding:14px;
    border-radius:24px;
  }

  .preview-phone__top{
    margin-bottom:12px;
    font-size:.76rem;
  }

  .preview-phone__card{
    padding:14px;
    border-radius:22px;
  }

  .preview-phone__card h2{
    font-size:1.16rem;
    line-height:1.18;
  }

  .preview-phone__card p,
  .preview-phone__card span{
    margin-top:6px;
    font-size:.84rem;
    line-height:1.5;
  }

  .feature-band,
  .clinic-list-grid,
  .doctor-grid,
  .history-grid{
    gap:12px;
  }

  .feature-band__number{
    width:36px;
    height:36px;
    margin-bottom:12px;
    border-radius:12px;
    font-size:.82rem;
  }

  .feature-band__item h3,
  .doctor-card__identity h3,
  .doctor-profile-card__summary h2,
  .clinic-tile h2,
  .clinic-tile h3,
  .appointment-card h3,
  .history-card h3{
    font-size:1.02rem;
  }

  .feature-band__item p,
  .clinic-tile p,
  .doctor-card__bio,
  .doctor-profile-card__about p,
  .doctor-empty-state p,
  .auth-aside p,
  .booking-status-card p{
    margin-top:8px;
    font-size:.9rem;
    line-height:1.58;
  }

  .clinic-tile__top,
  .doctor-card__top,
  .clinic-badge-card__brand,
  .appointment-card__top,
  .history-card__top{
    gap:12px;
  }

  .clinic-tile__logo,
  .clinic-badge-card__logo{
    width:52px;
    height:52px;
    border-radius:16px;
  }

  .doctor-card__avatar{
    width:58px;
    height:58px;
    border-radius:18px;
    font-size:1rem;
  }

  .clinic-tile__meta,
  .doctor-card__meta,
  .appointment-card__meta,
  .history-card__meta{
    margin-top:12px;
    padding-top:12px;
    font-size:.82rem;
  }

  .site-subheader{
    flex-direction:column;
  }

  .booking-surface__section-head,
  .booking-surface__details summary{
    flex-direction:column;
    align-items:flex-start;
  }

  .booking-surface__section-badges{
    justify-content:flex-start;
  }

  .booking-date-pager{
    grid-template-columns:34px minmax(0,1fr) 34px;
    gap:6px;
  }

  .booking-date-pager__nav{
    width:34px;
    height:34px;
    font-size:1rem;
  }

  .site-mobile-topbar__eyebrow{
    display:none;
  }

  body.is-patient-surface .site-mobile-topbar{
    gap:8px;
    padding:8px;
    border-radius:16px;
  }

  body.is-patient-surface .site-mobile-topbar__menu{
    width:40px;
    height:40px;
    border-radius:13px;
  }

  body.is-patient-surface .site-mobile-topbar__brand strong{
    font-size:.96rem;
  }

  .appointment-card__top,
  .history-card__top{
    flex-direction:column;
  }

  .appointment-card__schedule{
    justify-items:start;
    text-align:left;
  }

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

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

  .slot-feedback{
    flex-direction:column;
    align-items:flex-start;
  }

  .booking-sticky-bar__button{
    width:100%;
    min-width:0;
  }

  .clinic-tile__actions,
  .doctor-card__actions,
  .doctor-profile-card__actions,
  .auth-card__footer,
  .hero-actions{
    flex-direction:column;
  }
}
