/* Desktop uses the existing actions and data; phone layouts stay in styles.css. */
.somi-desktop-only { display: none; }
@media (min-width: 900px) and (hover: hover) and (pointer: fine) {
  :root {
    --somi-desktop-width: 1280px;
    --somi-desktop-nav-width: 216px;
    --somi-desktop-nav-height: 0px;
    --somi-desktop-background: linear-gradient(120deg, #f7f4ef 0%, #f1eae0 55%, #e9e5dc 100%);
  }

  body:is(.customer-pilates-active, .customer-book-active, .customer-credits-active, .customer-availability-active, .customer-trial-active, .customer-auth-active, .trial-active) {
    background: var(--somi-desktop-background) !important;
    color: #343b35;
  }
  body:is(.customer-pilates-active, .customer-book-active, .customer-credits-active, .customer-availability-active, .customer-trial-active, .customer-auth-active, .trial-active) { min-height: 100dvh; }
  .somi-desktop-only { display: block; }

  body .app-shell.customer-shell-active {
    width: calc(100% - var(--somi-desktop-nav-width)) !important;
    max-width: none !important;
    height: 100dvh !important;
    margin: 0 0 0 var(--somi-desktop-nav-width) !important;
    padding: 0 !important;
    background: var(--somi-desktop-background) !important;
    box-shadow: none;
  }

  .app-shell.customer-shell-active > .workspace,
  .app-shell .customer-portal,
  .app-shell .customer-credits-page,
  .app-shell .customer-book-wizard {
    height: 100% !important;
    min-height: 0 !important;
    max-width: none;
  }

  body .app-shell.customer-shell-active .customer-bottom-nav {
    position: fixed;
    inset: 0 auto 0 0 !important;
    z-index: 50;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    width: var(--somi-desktop-nav-width) !important;
    max-width: none !important;
    height: 100dvh;
    min-height: 0 !important;
    margin: 0;
    border: 0 !important;
    border-right: 1px solid #dedbd2 !important;
    border-radius: 0 !important;
    background: #fbfaf7 !important;
    padding: 132px 16px 24px !important;
    box-shadow: none !important;
    transform: none !important;
  }

  body .app-shell.customer-shell-active .customer-bottom-nav::before { display: none; }
  body .app-shell.customer-shell-active .customer-bottom-nav::after {
    content: "Somi Pilates";
    position: absolute;
    top: 30px;
    left: 24px;
    width: 170px;
    height: 58px;
    background: url("/assets/somi-home-icon-180.png") left center / 42px 42px no-repeat;
    padding-left: 52px;
    color: #333d30;
    font: 600 23px/58px var(--somi-display-font);
    letter-spacing: 0;
  }

  body .app-shell.customer-shell-active .customer-bottom-nav button {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
    flex: 0 0 auto;
    width: 100%;
    min-width: 112px;
    min-height: 48px !important;
    height: 48px;
    border-radius: 6px !important;
    padding: 0 16px;
    font-size: 14px !important;
    color: #626d5d;
  }
  body .app-shell.customer-shell-active .customer-bottom-nav button.active { background: #53664b !important; color: #fff !important; }
  body .app-shell.customer-shell-active .customer-bottom-nav button:hover:not(.active) { background: #f1f4ed; }
  body .app-shell.customer-shell-active .customer-bottom-nav button span { min-height: 0; background: transparent; color: inherit; font-size: inherit; }
  body .app-shell.customer-shell-active .customer-bottom-nav button .customer-desktop-nav-icon { display: flex; flex: 0 0 20px; width: 20px; height: 20px; }
  .customer-desktop-nav-icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
  .customer-shell-active button:focus-visible, .customer-shell-active a:focus-visible { outline: 2px solid #657957; outline-offset: 3px; }

  body .app-shell .customer-wizard-header,
  body .app-shell .customer-credits-header,
  body .app-shell .customer-tab-title-header {
    position: sticky;
    inset: 0 auto auto;
    width: 100%;
    max-width: none;
    min-height: 76px;
    padding: 18px 28px;
  }
  body .app-shell :is(.customer-tab-book, .customer-tab-credits) { padding-top: 0; }

  body .app-shell .customer-portal { width: 100% !important; max-width: none !important; margin: 0 !important; background: transparent; }
  .app-shell .customer-desktop-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 64px;
    height: 64px;
    padding: 0 32px;
    border-bottom: 1px solid #dedbd2;
  }
  .customer-desktop-header > span { display: flex; align-items: center; gap: 6px; color: #75766c; font-size: 12px; }
  .customer-desktop-header svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.6; }
  .app-shell .customer-desktop-header .customer-profile-bubble { position: relative; inset: auto; width: 38px; height: 38px; min-height: 38px; min-width: 38px; background: #fffaf1; color: #495642; box-shadow: none; font-size: 15px; }
  body .app-shell .customer-portal.customer-tab-pilates {
    width: min(1200px, 100%) !important;
    margin-inline: auto !important;
    overflow-y: auto;
    padding: 0 36px 32px;
    background: transparent;
  }
  body .app-shell .customer-tab-pilates .customer-portal-header.customer-pilates-hero {
    position: relative;
    inset: auto;
    width: 100%;
    height: 160px;
    margin: 0;
    border-bottom: 1px solid #d8d5ca;
    background: none;
    transform: none;
  }
  .customer-pilates-engraving { display: none; }
  .app-shell .customer-pilates-branch { top: 28px; left: 0; font-size: 12px; }
  .app-shell .customer-tab-pilates .customer-profile-bubble { top: 20px; right: 0; box-shadow: none; width: 38px; min-width: 38px; height: 38px; min-height: 38px; font-size: 15px; }
  .app-shell .customer-desktop-home-title { position: absolute; top: 72px; left: 0; margin: 0; font: 600 32px/1.1 var(--somi-display-font); color: #3b4639; }
  .app-shell .customer-pilates-greeting { top: 117px; left: 0; right: auto; width: calc(100% - 70px); max-width: none; font: 400 15px/1.4 var(--somi-font); text-align: left; color: #707267; }
  .app-shell .customer-pilates-greeting strong { font: inherit; color: #3b4639; }
  body .app-shell .customer-pilates-shell-active { overflow: auto; }
  body .customer-pilates-shell-active .customer-tab-page {
    position: relative;
    inset: auto;
    height: auto;
    overflow: visible;
    padding: 28px 0 0;
    -webkit-mask-image: none;
    mask-image: none;
  }
  body .customer-pilates-shell-active .customer-agenda {
    grid-template-columns: minmax(0, .85fr) minmax(0, 1.3fr);
    align-items: start;
    gap: 32px;
  }
  .customer-pilates-shell-active .customer-agenda::after { display: none; }
  body .app-shell .customer-agenda > .customer-calendar-section { margin-top: 0; }
  .customer-pilates-shell-active .customer-history-shortcuts { grid-column: 1 / -1; margin-top: 4px; }
  .app-shell .customer-pilates-booking-card { border-radius: 6px; box-shadow: none; background: #ffffffb8; border-color: #d6d6cb; }
  .app-shell .customer-pilates-booking-card,
  .app-shell .customer-pilates-booking-card:active,
  .app-shell .customer-group-session-card:active,
  .app-shell .customer-package-card:active { animation: none !important; transform: none; transition: background-color 120ms ease, border-color 120ms ease; }
  .app-shell .customer-section-header h2 { font-size: 25px; }
  .app-shell .customer-account-menu-layer { width: 100%; }
  .app-shell .customer-account-menu-card { position: absolute; top: 70px; right: 32px; width: 340px; margin: 0; border-radius: 8px; box-shadow: 0 14px 42px #333d3020; }
  .app-shell .customer-account-menu-layer[hidden] { display: none !important; }
  .app-shell .customer-account-menu-card { max-height: calc(100dvh - 120px); }

  body .app-shell .customer-tab-book { height: 100%; overflow: hidden; }
  .app-shell :is(.customer-tab-book, .customer-tab-credits) > .customer-tab-page { height: calc(100% - 64px); padding: 0; background: transparent; }
  body .app-shell .customer-book-wizard { display: grid; grid-template-rows: auto minmax(0, 1fr); overflow: hidden; }
  body .app-shell :is(.customer-book-wizard, .customer-book-step, .customer-credits-page, .customer-group-booking-layout) { background: transparent; }
  body .app-shell .customer-calendar-section :is(.customer-section-header h3, .customer-section-date-title) { font: 600 25px/1.2 var(--somi-display-font); }
  body .app-shell .customer-history-shortcuts { display: flex; gap: 28px; padding-top: 4px; border-top: 1px solid #d8d5ca; }
  body .app-shell .customer-history-shortcuts > section { flex: 1; min-height: 0; padding: 16px 0; border: 0; border-radius: 0; box-shadow: none; background: transparent; }
  body .app-shell .customer-history-shortcuts h3 { font: 600 14px/1.4 var(--somi-font); }
  body .app-shell .customer-group-wizard-active > .owner-bottom-nav { display: flex !important; }
  body .app-shell .customer-book-wizard:is(.customer-book-wizard-group-detail, .customer-book-wizard-review) { grid-template-rows: minmax(0, 1fr); }
  body .app-shell .customer-book-wizard .customer-book-step {
    height: auto !important;
    max-height: none !important;
    min-height: 0;
    overflow-y: auto !important;
    padding: 28px 32px 36px;
    scroll-padding-bottom: 36px;
    touch-action: pan-y !important;
  }
  body .app-shell .customer-book-wizard:is(.customer-book-wizard-group-detail, .customer-book-wizard-review) > .customer-book-step {
    padding: 0;
    overflow: hidden !important;
  }
  .app-shell .customer-book-wizard-service .customer-book-card-list {
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(0, 3fr);
    align-items: start;
    gap: 14px 24px;
  }
  .app-shell .customer-book-wizard-service .customer-book-card-list { max-width: 1060px; margin-inline: auto; }
  .app-shell .customer-book-session-list { grid-column: 1; grid-row: 2; grid-template-columns: 1fr; gap: 14px; }
  .app-shell .customer-book-wizard-service .customer-book-credit-summary { display: none; }
  .app-shell .customer-book-credit-details-heading { grid-column: 2; grid-row: 1; margin: 4px 0; font: 600 25px/1.2 var(--somi-display-font); }
  .app-shell .customer-book-credit-details { grid-column: 2; grid-row: 2; align-self: start; min-width: 0; padding: 12px 14px; background: #ffffffb8; border: 1px solid #d4d8ca; border-radius: 6px; }
  .customer-book-credit-details .customer-credit-balance-groups { margin-top: 0; border: 0; border-radius: 0; background: transparent; overflow: visible; }
  .customer-book-credit-details .customer-credit-balance-group { padding-inline: 0; }
  .customer-book-credit-details .customer-credit-balance-group + .customer-credit-balance-group { margin-top: 8px; }
  .customer-book-credit-details .customer-credit-balance-group header { gap: 8px; min-height: 34px; }
  .customer-book-credit-details .customer-credit-balance-group header strong { font-size: 13px; }
  .customer-book-credit-details .customer-credit-balance-group header > span { font-size: 12px; }
  .customer-book-credit-details .customer-credit-balance-lot { grid-template-columns: minmax(60px, .8fr) minmax(0, 1.2fr); min-height: 36px; padding-block: 7px; gap: 8px; }
  .customer-book-credit-details .customer-credit-balance-lot > strong { font-size: 13px; }
  .customer-book-credit-details .customer-credit-balance-lot > span { font-size: 12px; }
  .customer-book-credit-details .customer-credit-balance-lot.is-expired { margin-inline: -12px; padding-inline: 12px; }
  .customer-book-credit-details :is(.customer-credit-balance-empty, .customer-credit-balance-loading) { margin: 0; padding: 12px 0; font-size: 14px; line-height: 1.5; }
  .app-shell .customer-book-service-card { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; align-items: center; gap: 12px; min-width: 0; min-height: 100px; padding: 16px; border: 1px solid #d7d7cc; border-radius: 6px; background: #ffffffb8; }
  .app-shell .customer-book-service-card:hover:not(.disabled) { background: #fff; border-color: #8d9c7e; }
  .app-shell .customer-book-service-card.selected { background: #f8faf2; border-color: #889b78; box-shadow: inset 3px 0 #7b9169; }
  .app-shell .customer-book-service-card .customer-book-service-copy strong { font: 600 21px/1.25 var(--somi-display-font); white-space: normal; overflow: visible; }
  .app-shell .customer-book-service-card.compact .customer-book-service-rail { display: none; }
  .app-shell .customer-book-service-card.compact .customer-book-service-ratio { position: static; grid-column: 1; grid-row: 1; display: grid; place-items: center; width: 48px; height: 60px; transform: none; font: 500 25px/1 var(--somi-font); }
  .app-shell .customer-book-service-card.compact .customer-book-service-logo { position: static; grid-column: 1; grid-row: 1; width: 48px; height: 48px; transform: none; }
  .app-shell .customer-book-service-card.compact .customer-book-service-copy { grid-column: 2; grid-row: 1; display: grid; justify-items: start; align-items: start; text-align: left; }
  .app-shell .customer-book-service-card.compact::after { content: ""; grid-column: 3; grid-row: 1; width: 20px; height: 20px; background: #7c8671; mask: url('/assets/icons/lucide-chevron-right.svg') center / contain no-repeat; }
  .app-shell .customer-book-service-card.compact .customer-book-service-end { grid-column: 2; }
  .app-shell .customer-book-service-art { width: 100%; max-width: 260px; margin-inline: auto; }
  .app-shell .customer-book-session-heading { grid-column: 1; grid-row: 1; margin: 4px 0; font: 600 25px/1.2 var(--somi-display-font); text-align: left; }
  .app-shell .customer-book-low-credit-packages { grid-column: 1 / -1; }
  .app-shell .customer-book-trainer-layout { max-width: 1000px; margin-inline: auto; }
  .app-shell .customer-trainer-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
  .app-shell .customer-trainer-choice { border: 1px solid #d7d7cc; border-radius: 6px; background: #ffffffb8; }
  .app-shell .customer-book-wizard-date .customer-book-date-layout { width: 100%; max-width: 1080px; margin-inline: auto; grid-template-columns: minmax(280px, .9fr) minmax(0, 1.1fr); align-items: start; gap: 28px 32px; }
  .app-shell .customer-book-selection-anchor { grid-column: 1 / -1; min-height: 64px; border-radius: 6px; box-shadow: none; }
  .app-shell .customer-book-selection-track { position: static; display: flex; align-items: center; flex-wrap: wrap; }
  .app-shell .customer-book-selection-slide { position: static; flex: 1 1 240px; opacity: 1; transform: none; min-height: 64px; }
  .app-shell .customer-book-selection-trainer { display: none; }
  .app-shell .customer-book-selection-anchor.rotates .customer-book-selection-trainer { display: grid; }
  .app-shell .customer-book-week-toolbar,
  .app-shell .customer-book-week-strip { width: 100%; max-width: none; }
  .app-shell .customer-book-month-grid,
  .app-shell .customer-month-grid { gap: 8px; }
  .app-shell .customer-month-grid .date-button { min-height: 52px; }
  .app-shell .customer-book-times-panel { align-content: start; }
  .app-shell .customer-desktop-book-action { display: grid; gap: 18px; margin-top: 24px; }
  .app-shell .customer-desktop-book-action > .button { width: 100%; min-height: 48px; border-radius: 6px; font-size: 15px; }
  .app-shell .customer-desktop-book-action .customer-review-partner { width: 100%; }
  .customer-desktop-book-action .customer-partner-actions { display: grid; grid-template-columns: minmax(0, 1fr); align-items: stretch; gap: 8px; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; }
  .customer-desktop-book-action .customer-partner-label { color: #575950; font-size: 14px; line-height: 1.3; }
  .customer-desktop-book-action .customer-partner-action { display: grid; grid-template-columns: 34px minmax(0, 1fr) 20px; align-items: center; gap: 12px; width: 100%; min-width: 0; min-height: 64px; padding: 12px 14px; border: 1px solid #d3d7ca; border-radius: 6px; background: #ffffffb8; color: #24231f; text-align: left; box-shadow: none; }
  .customer-desktop-book-action .customer-partner-action:hover { border-color: #8d9c7e; background: #fff; }
  .customer-desktop-book-action .customer-partner-action:focus-visible { outline: 2px solid #53664b; outline-offset: 3px; }
  .customer-desktop-book-action .customer-partner-action-icon { background: #edf1e7; color: #53664b; }
  .customer-desktop-book-action .customer-partner-action-copy { text-align: left; }
  .customer-desktop-book-action .customer-partner-action-copy strong { overflow: visible; white-space: normal; overflow-wrap: anywhere; line-height: 1.4; }
  .customer-desktop-book-action .customer-partner-action-copy small { color: #697363; line-height: 1.4; }
  .customer-desktop-book-action .customer-partner-action-chevron { color: #697363; }
  .app-shell .customer-book-wizard-date .customer-timeslot-grid .slot-button.selected { background: #53664b; border-color: #53664b; color: #fff; }
  .app-shell .customer-tab-book .customer-book-wizard,
  .app-shell .customer-tab-book .customer-book-wizard *,
  .app-shell .customer-tab-book .customer-book-wizard *::before,
  .app-shell .customer-tab-book .customer-book-wizard *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
  .app-shell .customer-tab-book .customer-book-shared-source,
  .app-shell .customer-tab-book .customer-book-shared-target { view-transition-name: none !important; }
  .app-shell :is(.customer-wizard-header, .customer-credits-header, .customer-tab-title-header) { background: transparent; border-bottom: 1px solid #dedbd2; box-shadow: none; }
  .app-shell :is(.customer-wizard-header, .customer-credits-header, .customer-tab-title-header) h1 { font: 600 28px/1.1 var(--somi-display-font); }
  .app-shell .customer-timeslot-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
  .app-shell .customer-group-week-panel { grid-column: 1; grid-row: 1; min-width: 0; max-width: none; width: 100%; margin: 0 0 24px; }
  .app-shell .customer-group-booking-layout { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 3fr); align-content: start; align-items: start; column-gap: 24px; width: 100%; max-width: 1100px; height: auto; padding: 0 0 24px; overflow: visible; }
  .app-shell .customer-group-session-section { grid-column: 1; grid-row: 2; min-width: 0; width: 100%; }
  .app-shell .customer-group-desktop-credits { display: grid; grid-column: 2; grid-row: 1 / span 2; grid-template-rows: 48px auto; align-items: center; align-self: start; min-width: 0; padding-top: 8px; }
  .app-shell .customer-group-desktop-credits > .customer-book-credit-details-heading { grid-column: 1; grid-row: 1; margin: 0; }
  .app-shell .customer-group-desktop-credits > .customer-book-credit-details { grid-column: 1; grid-row: 2; width: 100%; }
  .app-shell .customer-book-wizard-group .customer-group-week-picker { grid-template-columns: 46px minmax(0, 1fr) 46px; min-height: 48px; margin-bottom: 12px; }
  .app-shell .customer-book-wizard-group .customer-group-week-picker > .button { width: 44px; min-width: 44px; height: 44px; min-height: 44px; font-size: 25px; }
  .app-shell .customer-book-wizard-group .customer-group-month-toggle { width: 100%; min-height: 48px; }
  .app-shell .customer-book-wizard-group .customer-group-month-toggle strong { font: 600 24px/1.2 var(--somi-display-font); }
  .app-shell .customer-group-wizard-heading { width: 100%; height: auto; overflow: visible; }
  .app-shell .customer-group-header-rotator { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px 20px; }
  .app-shell .customer-group-header-slide { position: static; width: auto; animation: none; opacity: 1; transform: none; }
  .app-shell .customer-group-header-title { font-size: 24px; }
  .app-shell .customer-group-header-expiry { color: #697363; }
  .app-shell .customer-group-wizard-header :is(.customer-group-header-credit, .customer-group-header-expiry) { display: none !important; }
  .app-shell .customer-group-session-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 16px; }
  .app-shell .customer-group-session-card { background: #ffffffb8; border: 1px solid #d6d7cc; border-radius: 6px; }
  .app-shell .customer-group-card-schedule, .app-shell .customer-group-card-meta { flex-wrap: wrap; overflow: visible; white-space: normal; }
  .app-shell .customer-group-card-meta > span { overflow: visible; white-space: normal; }
  .app-shell .customer-group-detail-page { max-width: 1060px; width: 100%; margin: 0 auto; background: transparent; }
  .app-shell .customer-group-detail-scroll { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: start; overflow-y: auto; }
  .app-shell .customer-group-detail-hero-shell { position: sticky; top: 0; height: 360px; min-height: 0; }
  .app-shell .customer-group-detail-sheet { position: static; inset: auto; width: 100%; height: auto; min-height: 100%; max-height: none; overflow: visible; border-radius: 0; transform: none !important; background: #fffdf9; }
  .app-shell .customer-group-detail-difficulty { position: static; inset: auto; display: inline-flex; transform: none; margin: 24px 24px 0; }
  .app-shell .customer-group-detail-content { border-radius: 0; }
  .app-shell .customer-group-detail-heading h2 { font-size: 30px; line-height: 1.15; }
  .app-shell .customer-group-detail-copy { font-size: 14px; line-height: 1.6; }
  .app-shell .customer-group-detail-section h3 { font-size: 24px; }
  .app-shell .customer-group-detail-actions { width: 100%; max-width: 1060px; margin-inline: auto; background: #fffdf9; }
  .app-shell .customer-book-wizard-group-detail .customer-group-detail-page { max-width: 760px; grid-template-rows: minmax(0, 1fr) auto; }
  .app-shell .customer-book-wizard-group-detail .customer-group-detail-scroll { display: block; overflow-y: auto; padding: 24px 0; }
  .app-shell .customer-book-wizard-group-detail .customer-group-detail-hero-shell { position: relative; top: auto; width: 100%; height: auto; min-height: 0; max-height: 320px; aspect-ratio: 2.15; }
  .app-shell .customer-book-wizard-group-detail .customer-group-detail-sheet { display: block; min-height: 0; max-height: none; }
  .app-shell .customer-book-wizard-group-detail .customer-group-detail-content { max-height: none; overflow: visible; }
  .app-shell .customer-book-wizard-group-detail .customer-group-detail-sheet > .customer-group-detail-difficulty { display: none; }
  .app-shell .customer-book-wizard-group-detail .customer-group-detail-hero-difficulty { position: absolute; top: auto; right: 18px; bottom: 16px; display: inline-flex; width: auto; height: auto; max-width: calc(100% - 36px); min-height: 0; margin: 0; transform: none; }
  .app-shell .customer-book-wizard-group-detail .customer-group-detail-inline-actions { display: block; margin-top: 24px; }
  .app-shell .customer-book-wizard-group-detail .customer-group-detail-inline-actions .customer-group-detail-book { min-height: 48px !important; border-radius: 6px; font-size: 15px; }
  .app-shell .customer-book-wizard-group-detail .customer-group-detail-mobile-actions { display: none; }
  .app-shell .customer-fast-shortcut { right: max(32px, calc((100% - var(--somi-desktop-width)) / 2 + 24px)); bottom: 24px; }

  body .app-shell .customer-credits-body { width: 100%; max-width: 1200px; margin-inline: auto; padding: 28px 32px 36px; background: transparent; }
  .app-shell .customer-package-carousel {
    display: grid;
    width: 100%;
    min-width: 0;
    margin: 0;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-flow: row;
    grid-auto-columns: auto;
    gap: 14px;
    padding: 4px 2px 18px;
    overflow: visible;
    scroll-snap-type: none;
  }
  .app-shell .customer-package-carousel > * { width: 100%; min-width: 0; }
  .app-shell .customer-package-carousel > .customer-purchase-package-card { min-height: 140px; border-radius: 6px; }
  .app-shell .customer-package-carousel > .customer-purchase-package-card > strong { overflow-wrap: anywhere; }
  .app-shell .customer-package-carousel > [data-trial-carousel-clone] { display: none; }
  .app-shell .customer-purchase-activity-section { max-width: 900px; }
  .app-shell .customer-fast-availability-page { width: 100%; max-width: none; min-height: 100%; box-shadow: none; }
  .app-shell .customer-fast-availability-hero { min-height: 180px; }
  .app-shell .customer-fast-content { grid-template-columns: 360px minmax(0, 1fr); align-items: start; gap: 32px; padding: 24px 32px 36px; }
  .app-shell .customer-fast-time-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .app-shell .customer-fast-branch { max-width: 300px; }

  #modal-root.somi-desktop-modal-open .modal-backdrop { place-items: center; padding: 32px; }
  #modal-root.somi-desktop-modal-open [data-modal]:is(.modal,
    .customer-detail-sheet, .customer-cancel-sheet, .customer-reschedule-sheet, .customer-action-modal, .customer-settings-modal) {
    align-self: center;
    width: min(600px, calc(100% - 32px));
    max-width: 100%;
    max-height: calc(100dvh - 64px);
    border-radius: 8px;
  }
  #modal-root.somi-desktop-modal-open .customer-history-list-modal { width: min(820px, calc(100% - 32px)); }
  #modal-root.somi-desktop-modal-open .customer-confirm-modal { width: min(460px, calc(100% - 32px)); }
  #modal-root.somi-desktop-modal-open { animation: somiDesktopModalOpen 140ms ease-out both; }
  #modal-root.somi-desktop-modal-open .modal-backdrop:not(.customer-popup-ad-backdrop):not(.customer-credit-notice-backdrop):not(.customer-purchase-approved-backdrop),
  #modal-root.somi-desktop-modal-open .modal-backdrop > [data-modal]:not(.customer-popup-ad-modal):not(.customer-credit-notice-modal):not(.customer-purchase-approved-modal) { animation: none !important; transition: none !important; }
  #modal-root :is(.customer-detail-sheet, .customer-reschedule-sheet, .customer-reschedule-review-sheet) * { animation: none !important; }
  @keyframes somiDesktopModalOpen { from { opacity: .88; } to { opacity: 1; } }
  .app-shell.customer-auth-active { max-width: 760px; }
  .app-shell .customer-auth-page { min-height: 100dvh; }
  .app-shell .trial-layout { max-width: 900px; margin-inline: auto; }
  .app-shell .trial-account-form { max-width: 640px; margin-inline: auto; }

  [data-customer-week-swipe] { cursor: grab; touch-action: pan-y; user-select: none; }
  .somi-week-dragging, .somi-week-dragging * { cursor: grabbing !important; user-select: none !important; }
}

@media (min-width: 900px) and (max-width: 1199px) and (hover: hover) and (pointer: fine) {
  .app-shell .customer-book-wizard-date .customer-book-date-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; }
  .app-shell .customer-book-wizard-date .customer-timeslot-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
}

@media (max-width: 899px), (hover: none), (pointer: coarse) {
  .somi-desktop-only { display: none !important; }
}

@media (min-width: 900px) and (hover: hover) and (pointer: fine) and (prefers-reduced-motion: reduce) {
  #modal-root.somi-desktop-modal-open { animation: none; }
}
