/* My Stay v80 (web-guest lane; DESIGN.md): /my-stay/ and /fr/mon-sejour/.
   Mobile first, app-like: large titles, inset grouped lists, a glass tab bar at the bottom that turns
   into a left rail from 1068px. Loaded after system-v80.5b526b0dd0.css; lane classes only (ms-*), system tokens only.
   Round 5 (CONTRACT D21): light everywhere (no dark appearance; the garage stage is the one dark surface),
   rounded rectangles for buttons, chips and steppers (no pills); the planners of §14.3 in the service sheet. */

.ms-body{
  --ms-tabbar-h:3.75rem;
  --ms-icon-home:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 10.5 12 3.5l8.5 7V19a1.5 1.5 0 0 1-1.5 1.5h-4.5v-6h-5v6H5A1.5 1.5 0 0 1 3.5 19z'/%3E%3C/svg%3E");
  --ms-icon-cart:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h14l-1.15 11.6a1.5 1.5 0 0 1-1.5 1.4H7.65a1.5 1.5 0 0 1-1.5-1.4z'/%3E%3Cpath d='M9 8V6.5a3 3 0 0 1 6 0V8'/%3E%3C/svg%3E");
  --ms-icon-orders:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4.5' y='3.5' width='15' height='17' rx='2.5'/%3E%3Cpath d='M8.5 8.5h7M8.5 12h7M8.5 15.5h4'/%3E%3C/svg%3E");
  --ms-icon-help:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.5 11.5a8.5 8.5 0 0 1-12.4 7.6L3.5 20.5l1.4-4.4A8.5 8.5 0 1 1 20.5 11.5z'/%3E%3C/svg%3E");
  --ms-icon-link:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 14a4.5 4.5 0 0 0 6.4 0l3-3a4.5 4.5 0 0 0-6.4-6.4l-1 1'/%3E%3Cpath d='M14 10a4.5 4.5 0 0 0-6.4 0l-3 3a4.5 4.5 0 0 0 6.4 6.4l1-1'/%3E%3C/svg%3E");
  --ms-icon-lock:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='10.5' width='14' height='10' rx='2'/%3E%3Cpath d='M8.5 10.5V7.5a3.5 3.5 0 0 1 7 0v3'/%3E%3C/svg%3E");
  padding-bottom:calc(var(--ms-tabbar-h) + env(safe-area-inset-bottom,0px));
}
/* The page toggles states with the hidden attribute; component display rules must not undo it. */
.ms-body [hidden]{display:none}

.ms{width:min(44rem,100% - 2 * var(--gutter));margin-inline:auto;padding-block:var(--space-6) var(--space-12)}
.ms-content:focus{outline:none}
.ms-stack{display:grid;gap:var(--space-8)}
.ms-stack>*{margin:0}

/* ---------- Large titles ---------- */
.ms-head{margin:0 0 var(--space-6)}
.ms-head__eyebrow{margin:0 0 var(--space-1);color:var(--accent-text);font-size:var(--fs-callout);font-weight:var(--fw-semibold);line-height:1.3}
.ms-head__eyebrow:empty{display:none}
.ms-head__title{margin:0;font-size:clamp(2rem,1.55rem + 1.9vw,2.75rem);line-height:1.08;letter-spacing:-.026em;text-wrap:balance}
.ms-head__title:focus{outline:none}
.ms-head__meta{margin:var(--space-2) 0 0;color:var(--text-secondary);font-size:var(--fs-callout);line-height:var(--lh-callout)}
.ms-head__meta:empty{display:none}

.ms-section{display:grid;gap:var(--space-3)}
.ms-section__title{margin:0;font-size:var(--fs-title-3);line-height:var(--lh-title-3);letter-spacing:var(--ls-title-3)}

/* ---------- Cards and grouped lists ---------- */
.ms-card{display:grid;gap:var(--space-3);margin:0;padding:var(--space-5);border-radius:var(--r-lg);background:var(--color-surface);box-shadow:var(--elevation-1)}
.ms-card--flush{display:block;padding:0;overflow:hidden}
.ms-card__title{margin:0;font-size:var(--fs-body);font-weight:var(--fw-semibold);line-height:1.3;letter-spacing:var(--ls-body)}
.ms-card__eyebrow{margin:0;color:var(--text-secondary);font-family:var(--font-text);font-size:var(--fs-footnote);font-weight:var(--fw-semibold);line-height:1.3;letter-spacing:0}
.ms-card__text{margin:0;color:var(--text-body);font-size:var(--fs-callout);line-height:var(--lh-callout)}
.ms-card .ui-button{justify-self:start}
.ms-card .ui-button--block{justify-self:stretch}
.ms-list{margin:0;padding:0;list-style:none}
.ms-list>li{margin:0}
.ms-card--flush>li+li{box-shadow:inset 0 1px 0 var(--separator)}
.ms-list>li+li .ms-action-row{margin-top:var(--space-2)}

/* ---------- Home ---------- */
.ms-hero{position:relative;margin:0;aspect-ratio:3 / 2;overflow:hidden;border-radius:var(--r-xl);background:var(--fill-tertiary);box-shadow:var(--elevation-2)}
.ms-hero__media,.ms-hero__media img{display:block;width:100%;height:100%;object-fit:cover}
@media (min-width:734px){.ms-hero{aspect-ratio:21 / 9}}
.ms-hero__caption{position:absolute;left:var(--space-4);bottom:var(--space-4);margin:0}

.ms-action-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-4);width:100%;min-height:4rem;margin:0;padding:var(--space-4) var(--space-5);border:0;border-radius:var(--r-lg);background:var(--accent-tint);color:var(--text-primary);font:inherit;text-align:left;cursor:pointer}
.ms-action-row__icon{width:2.25rem;height:2.25rem;border-radius:50%;background:var(--color-surface);position:relative}
.ms-action-row__icon::before{content:"";position:absolute;inset:.5rem;background:var(--accent-text);-webkit-mask:var(--icon-card) center/contain no-repeat;mask:var(--icon-card) center/contain no-repeat}
.ms-action-row__icon[data-kind="alternative"]::before{-webkit-mask-image:var(--icon-swap);mask-image:var(--icon-swap)}
.ms-action-row__icon[data-kind="confirm"]::before{-webkit-mask-image:var(--icon-calendar);mask-image:var(--icon-calendar)}
.ms-action-row__text{display:grid;gap:2px;min-width:0}
.ms-action-row__title{font-size:var(--fs-callout);font-weight:var(--fw-semibold);line-height:1.3}
.ms-action-row__meta{color:var(--text-body);font-size:var(--fs-footnote);line-height:1.3}
.ms-action-row__cta{display:inline-flex;align-items:center;gap:.25em;color:var(--text-primary);font-size:var(--fs-callout);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums;white-space:nowrap}
.ms-action-row__cta::after{content:"";width:.7em;height:.7em;background:currentColor;-webkit-mask:var(--icon-chevron) center/contain no-repeat;mask:var(--icon-chevron) center/contain no-repeat}

.ms-upcoming{display:grid;grid-template-columns:3rem minmax(0,1fr);align-items:center;gap:var(--space-1) var(--space-4);width:100%;min-height:4.25rem;margin:0;padding:var(--space-3) var(--space-5);border:0;background:transparent;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer}
.ms-upcoming>.ui-chip{grid-column:2;justify-self:start}
@media (min-width:480px){.ms-upcoming{grid-template-columns:3rem minmax(0,1fr) auto}.ms-upcoming>.ui-chip{grid-column:auto}.ms-upcoming__when{grid-row:auto}}
.ms-upcoming__when{grid-row:span 2;display:grid;justify-items:center;align-content:center;width:3rem;height:3rem;border-radius:var(--r-md);background:var(--accent-tint)}
.ms-upcoming__day{color:var(--accent-text);font-size:.625rem;font-weight:var(--fw-bold);line-height:1.1;text-transform:uppercase;letter-spacing:.06em}
.ms-upcoming__date{color:var(--text-primary);font-size:var(--fs-title-3);font-weight:var(--fw-semibold);line-height:1.1;font-variant-numeric:tabular-nums}
.ms-upcoming__body{display:grid;gap:2px;min-width:0}
.ms-upcoming__name{font-size:var(--fs-callout);font-weight:var(--fw-semibold);line-height:1.3}
.ms-upcoming__time{color:var(--text-secondary);font-size:var(--fs-footnote);font-variant-numeric:tabular-nums}

.ms-empty-card{justify-items:start}
.ms-empty-card__title{margin:0;font-size:var(--fs-body);font-weight:var(--fw-semibold)}
.ms-empty-card__actions{display:flex;flex-wrap:wrap;justify-self:stretch;gap:var(--space-2) var(--space-3)}
.ms-empty-card__actions .ui-button{flex:0 1 auto;min-width:10rem}
@media (max-width:479.98px){.ms-empty-card__actions .ui-button{flex:1 1 0;min-width:0}}

.ms-categories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--grid-gap);margin:0;padding:0;list-style:none}
@media (min-width:734px){.ms-categories{grid-template-columns:repeat(3,minmax(0,1fr))}}
.ms-categories>li{margin:0}
.ms-category{position:relative;isolation:isolate;display:flex;align-items:flex-end;width:100%;aspect-ratio:4 / 3;margin:0;padding:var(--space-3) var(--space-4);overflow:hidden;border:0;border-radius:var(--r-lg);background:var(--c-charcoal);color:var(--c-linen);font:inherit;text-align:left;cursor:pointer}
.ms-category__media{position:absolute;inset:0;z-index:-2}
.ms-category__media img{display:block;width:100%;height:100%;object-fit:cover}
.ms-category::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgb(18 15 12 / 0) 35%,rgb(18 15 12 / .72) 100%)}
.ms-category__name{font-size:var(--fs-callout);font-weight:var(--fw-semibold);line-height:1.25;text-wrap:balance}

.ms-balance__amount{margin:0;font-size:var(--fs-title-1);font-weight:var(--fw-semibold);line-height:1.1;letter-spacing:-.02em}
.ms-balance__note{margin:0;color:var(--text-secondary);font-size:var(--fs-footnote)}

/* ---------- Notices and banners ---------- */
.ms-notice{display:grid;gap:var(--space-1);margin:0;padding:var(--space-4) var(--space-5);border-radius:var(--r-md);background:var(--status-neutral-tint);color:var(--status-neutral-text);font-size:var(--fs-callout);line-height:var(--lh-callout)}
.ms-notice--warning{background:var(--status-warning-tint);color:var(--status-warning-text)}
.ms-notice--info{background:var(--status-info-tint);color:var(--status-info-text)}
.ms-notice--danger{background:var(--status-danger-tint);color:var(--status-danger-text)}
.ms-notice .ui-button{justify-self:start;margin-top:var(--space-2)}
.ms-notice__title{margin:0;font-weight:var(--fw-semibold)}
.ms-notice__text{margin:0}
.ms-banner{position:sticky;top:calc(var(--nav-h) + var(--space-2));z-index:var(--z-raised);margin:0 0 var(--space-5);padding:var(--space-3) var(--space-4);border-radius:var(--r-lg);background:var(--color-ink);color:var(--color-on-ink);font-size:var(--fs-footnote);font-weight:var(--fw-medium);text-align:center;box-shadow:var(--elevation-2)}

/* ---------- Loading and blocked states ---------- */
.ms-loading{display:grid;gap:var(--space-3)}
.ms-loading__eyebrow{width:30%}
.ms-loading__title{width:70%;height:2.4rem}
.ms-loading__meta{width:55%}
.ms-loading__media{margin-top:var(--space-4);aspect-ratio:16 / 10;border-radius:var(--r-xl)}
.ms-loading__card{height:5.5rem;margin-top:var(--space-3);border-radius:var(--r-lg)}

.ms-blocked{display:grid;place-items:center;min-height:min(70vh,36rem)}
.ms-blocked__card{display:grid;justify-items:center;gap:var(--space-4);width:min(100%,30rem);padding:var(--space-9) var(--space-6);border-radius:var(--r-xl);background:var(--color-surface);box-shadow:var(--elevation-2);text-align:center}
.ms-blocked__icon{width:3.5rem;height:3.5rem;border-radius:50%;background:var(--accent-tint);position:relative}
.ms-blocked__icon::before{content:"";position:absolute;inset:.9rem;background:var(--accent-text);-webkit-mask:var(--ms-icon-link) center/contain no-repeat;mask:var(--ms-icon-link) center/contain no-repeat}
.ms-blocked[data-kind="LINK_EXPIRED"] .ms-blocked__icon::before{-webkit-mask-image:var(--icon-clock);mask-image:var(--icon-clock)}
.ms-blocked[data-kind="ENDED"] .ms-blocked__icon::before,.ms-blocked[data-kind="FORGOTTEN"] .ms-blocked__icon::before{-webkit-mask-image:var(--icon-check-circle);mask-image:var(--icon-check-circle)}
.ms-blocked[data-kind="DISABLED"] .ms-blocked__icon::before{-webkit-mask-image:var(--icon-sparkle);mask-image:var(--icon-sparkle)}
.ms-blocked[data-kind="NETWORK"] .ms-blocked__icon::before,.ms-blocked[data-kind="RATE"] .ms-blocked__icon::before,.ms-blocked[data-kind="ERROR"] .ms-blocked__icon::before{-webkit-mask-image:var(--icon-alert);mask-image:var(--icon-alert)}
.ms-blocked__title{margin:0;font-size:var(--fs-title-2);line-height:var(--lh-title-2);letter-spacing:var(--ls-title-2)}
.ms-blocked__title:focus{outline:none}
.ms-blocked__text{margin:0;color:var(--text-body);font-size:var(--fs-callout);line-height:var(--lh-callout)}
.ms-blocked__actions{display:grid;justify-items:center;gap:var(--space-3);width:100%;margin-top:var(--space-2)}
.ms-blocked__actions .ui-button{width:min(100%,20rem)}

/* ---------- Tab bar (bottom on phones, left rail from 1068px) ---------- */
.ms-tabbar{position:fixed;inset:auto 0 0;z-index:var(--z-summary);isolation:isolate;padding:0 var(--space-2) env(safe-area-inset-bottom,0px)}
.ms-tabbar::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--glass-bg-strong);-webkit-backdrop-filter:var(--glass-filter);backdrop-filter:var(--glass-filter);box-shadow:inset 0 1px 0 var(--glass-border)}
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.ms-tabbar::before{background:var(--glass-bg-fallback)}}
.ms-tabbar__stay{display:none}
.ms-tabbar__list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));max-width:36rem;margin:0 auto;padding:0;list-style:none}
.ms-tabbar__list>li{margin:0}
.ms-tab{position:relative;display:grid;justify-items:center;align-content:center;gap:3px;width:100%;min-height:var(--ms-tabbar-h);margin:0;padding:.375rem .125rem .25rem;border:0;border-radius:var(--r-md);background:none;color:var(--text-secondary);font-family:var(--font-text);font-size:.6875rem;font-weight:var(--fw-medium);line-height:1.15;letter-spacing:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
.ms-tab::before{content:"";width:1.5rem;height:1.5rem;background:currentColor;-webkit-mask:var(--ms-tab-icon) center/contain no-repeat;mask:var(--ms-tab-icon) center/contain no-repeat}
.ms-tab[data-icon="home"]{--ms-tab-icon:var(--ms-icon-home)}
.ms-tab[data-icon="services"]{--ms-tab-icon:var(--icon-sparkle)}
.ms-tab[data-icon="cart"]{--ms-tab-icon:var(--ms-icon-cart)}
.ms-tab[data-icon="orders"]{--ms-tab-icon:var(--ms-icon-orders)}
.ms-tab[data-icon="help"]{--ms-tab-icon:var(--ms-icon-help)}
.ms-tab[aria-current="page"]{color:var(--accent-text)}
.ms-tab__label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ms-tab__badge{position:absolute;top:.3rem;left:calc(50% + .35rem)}
.ms-tab:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-3px}
@media (hover:hover){.ms-tab:hover{color:var(--text-primary)}}

.ms-cart-pill{position:fixed;left:50%;bottom:calc(var(--ms-tabbar-h) + env(safe-area-inset-bottom,0px) + var(--space-3));z-index:var(--z-summary);display:inline-flex;align-items:center;gap:var(--space-2);min-height:3rem;margin:0;padding:.5rem 1.25rem .5rem 1rem;border:0;border-radius:var(--r-button);background:var(--color-ink);color:var(--color-on-ink);box-shadow:var(--elevation-3);font-family:var(--font-text);font-size:var(--fs-callout);font-weight:var(--fw-semibold);line-height:1;font-variant-numeric:tabular-nums;white-space:nowrap;cursor:pointer;transform:translateX(-50%)}
.ms-cart-pill::before{content:"";width:1.25rem;height:1.25rem;background:currentColor;-webkit-mask:var(--ms-icon-cart) center/contain no-repeat;mask:var(--ms-icon-cart) center/contain no-repeat}
.ms-cart-pill:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}
.ms-toasts{--toast-offset:calc(var(--ms-tabbar-h) + var(--space-2))}

/* ---------- Services ---------- */
.ms-filter{display:flex;gap:var(--space-2);margin:0 calc(var(--gutter) * -1) var(--space-6);padding:2px var(--gutter) var(--space-1);overflow-x:auto;overscroll-behavior-x:contain;scroll-padding-inline:var(--gutter);scrollbar-width:none}
.ms-filter::-webkit-scrollbar{display:none}
.ms-filter__chip{flex:none;display:inline-flex;align-items:center;min-height:2.25rem;margin:0;padding:0 .875rem;border:1px solid var(--separator-strong);border-radius:var(--r-control);background:var(--color-surface);color:var(--text-body);font-family:var(--font-text);font-size:var(--fs-footnote);font-weight:var(--fw-semibold);line-height:1.2;white-space:nowrap;cursor:pointer}
.ms-filter__chip[aria-pressed="true"]{border-color:var(--color-ink);background:var(--color-ink);color:var(--color-on-ink)}
.ms-filter__chip:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
@media (pointer:coarse){.ms-filter__chip{min-height:var(--tap-min)}}
@media (hover:hover){.ms-filter__chip:not([aria-pressed="true"]):hover{border-color:var(--text-secondary);color:var(--text-primary)}}

.ms-product{display:grid;grid-template-columns:5rem minmax(0,1fr);align-items:start;gap:var(--space-4);width:100%;min-height:6.5rem;margin:0;padding:var(--space-4) var(--space-5) var(--space-4) var(--space-4);border:0;background:transparent;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer}
.ms-product__media{display:block;width:5rem;height:5rem;overflow:hidden;border-radius:var(--r-md);background:var(--fill-tertiary)}
.ms-product__media img{display:block;width:100%;height:100%;object-fit:cover}
.ms-product__body{display:grid;gap:3px;min-width:0}
.ms-product__name{font-size:var(--fs-body);font-weight:var(--fw-semibold);line-height:1.3;letter-spacing:var(--ls-body)}
.ms-product__summary{display:-webkit-box;overflow:hidden;color:var(--text-body);font-size:var(--fs-footnote);line-height:var(--lh-footnote);-webkit-box-orient:vertical;-webkit-line-clamp:2}
.ms-product__price{margin-top:2px;color:var(--text-secondary);font-size:var(--fs-footnote);font-variant-numeric:tabular-nums}
.ms-product__price strong{color:var(--text-primary);font-weight:var(--fw-semibold)}
.ms-product__reason{justify-self:start;margin-top:var(--space-1);padding:.1875rem .5rem;border-radius:var(--r-badge);background:var(--status-neutral-tint);color:var(--status-neutral-text);font-size:var(--fs-caption);font-weight:var(--fw-semibold);line-height:1.3}
.ms-product.is-unavailable .ms-product__media img{opacity:.72}
/* Vehicle photos share one framing (model left, villa right): the square thumbnail crops in on the model. */
.ms-product--vehicle .ms-product__media img{object-position:var(--ui-thumb-focus,16% 72%);transform:scale(1.18);transform-origin:var(--ui-thumb-focus,16% 72%)}
.ms-product--scooter .ms-product__media img{--ui-thumb-focus:13% 92%;transform:scale(1.5)}
.ms-product:focus-visible,.ms-upcoming:focus-visible,.ms-action-row:focus-visible,.ms-category:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px;border-radius:var(--r-lg)}
@media (hover:hover){.ms-product:hover,.ms-upcoming:hover{background:var(--fill-tertiary)}}

/* ---------- Service sheet: the planners (CONTRACT §14.3) ----------
   One column of blocks, each a label and its control; the footer says what is chosen and what it costs
   (before tax, D1), with one primary action. The garage stage is the sheet's only dark surface (D21). */
.ms-sheet .ui-sheet__title,.ms-cart .ui-sheet__title,.ms-manage .ui-sheet__title{font-size:var(--fs-title-3)}
.ms-config{display:grid;align-content:start;gap:var(--space-6);padding-bottom:var(--space-7)}
.ms-config>*{min-width:0;margin:0}
.ms-config fieldset{min-width:0;margin:0;padding:0;border:0}
.ms-config__summary{color:var(--text-body);font-size:var(--fs-callout);line-height:var(--lh-callout)}
.ms-config__closed{margin-top:calc(var(--space-2) * -1)}
.ms-config__date-note{margin-top:calc(var(--space-4) * -1)}
.ms-media{display:grid;gap:var(--space-2);margin:0}
.ms-media__img{display:block;aspect-ratio:16 / 9;overflow:hidden;border-radius:var(--r-lg);background:var(--fill-tertiary)}
.ms-media__img img{display:block;width:100%;height:100%;object-fit:cover}
.ms-media__note{padding-inline:2px}

.ms-block{display:grid;gap:var(--space-3);min-width:0}
.ms-block__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:2rem}
.ms-block__label{margin:0;color:var(--text-primary);font-size:var(--fs-callout);font-weight:var(--fw-semibold);line-height:1.3}
.ms-block__hint{margin:0;color:var(--text-secondary);font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
.ms-block__note{margin-top:calc(var(--space-1) * -1)}
.ms-block__error{margin:0}
.ms-block__body{min-width:0}
.ms-block--strip{gap:var(--space-2)}
.ms-block--strip .ms-block__head{min-height:var(--btn-h-sm)}
.ms-block__action{flex:none}
.ms-garage{min-width:0}
.ms-optional{color:var(--text-secondary);font-weight:var(--fw-regular)}
.ms-textarea{min-height:5rem}
.ms-stepper-row{gap:var(--space-4)}
.ms-check-field{gap:var(--space-1)}
.ms-check-field .ui-check{font-size:var(--fs-callout);line-height:var(--lh-callout);color:var(--text-primary)}
.ms-check-field__hint{margin-left:calc(1.25rem + var(--space-3))}
.ms-segmented-field{display:grid;gap:var(--space-3)}
.ms-segmented{margin:0}

/* Option cards (laundry speeds, chef lunch or dinner...) and the single-option summary. */
.ms-options{display:grid;gap:var(--space-2)}
.ms-options>legend{margin-bottom:var(--space-3)}
.ms-config .ui-choice{padding:var(--space-4)}
.ms-options__unit{display:block;margin-top:2px;color:var(--text-secondary);font-size:var(--fs-caption);font-weight:var(--fw-regular)}
.ms-choice--menu{grid-template-columns:minmax(0,1fr)}
.ms-allergens{color:var(--text-secondary)}
.ms-single{display:grid;gap:var(--space-1);padding:var(--space-4) var(--space-5);border-radius:var(--r-lg);background:var(--color-canvas);box-shadow:inset 0 0 0 1px var(--separator)}
.ms-single__name{margin:0;font-weight:var(--fw-semibold)}
.ms-single__desc{margin:0;color:var(--text-body);font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
.ms-single__price{margin:0;font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums}
.ms-single__price span{color:var(--text-secondary);font-size:var(--fs-footnote);font-weight:var(--fw-regular)}
.ms-planner__dynamic{display:grid;gap:var(--space-6);min-width:0}
.ms-menu{padding:0 var(--space-4);border-radius:var(--r-md);background:var(--fill-tertiary);font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
.ms-menu[open]{padding-bottom:var(--space-3)}
.ms-menu>summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:var(--tap-min);font-weight:var(--fw-semibold);list-style:none;cursor:pointer}
.ms-menu>summary::-webkit-details-marker{display:none}
.ms-menu>summary::after{content:"";flex:none;width:.75rem;height:.75rem;background:var(--text-secondary);-webkit-mask:var(--icon-chevron) center/contain no-repeat;mask:var(--icon-chevron) center/contain no-repeat;transform:rotate(90deg)}
.ms-menu[open]>summary::after{transform:rotate(-90deg)}
.ms-menu>p{margin:var(--space-1) 0 0;color:var(--text-body)}
.ms-menu>summary:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--r-xs)}

/* Optional details, folded away (nothing is mandatory, round 5). */
.ms-more{border-radius:var(--r-lg);background:var(--color-canvas);box-shadow:inset 0 0 0 1px var(--separator)}
.ms-more__summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px var(--space-3);min-height:3.5rem;padding:var(--space-3) var(--space-4);list-style:none;cursor:pointer;border-radius:inherit}
.ms-more__summary::-webkit-details-marker{display:none}
.ms-more__summary::after{content:"";grid-column:2;grid-row:1 / span 2;width:.8rem;height:.8rem;background:var(--text-secondary);-webkit-mask:var(--icon-chevron) center/contain no-repeat;mask:var(--icon-chevron) center/contain no-repeat;transform:rotate(90deg)}
.ms-more[open]>.ms-more__summary::after{transform:rotate(-90deg)}
.ms-more__title{color:var(--text-primary);font-size:var(--fs-callout);font-weight:var(--fw-semibold);line-height:1.3}
.ms-more__hint{grid-column:1;color:var(--text-secondary);font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
.ms-more__summary:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.ms-more__body{display:grid;gap:var(--space-4);padding:var(--space-1) var(--space-4) var(--space-5)}

/* Transfers: the flight details of the active leg. */
.ms-leg{display:grid;gap:var(--space-5);min-width:0}
.ms-leg__flight{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));gap:var(--space-4)}
.ms-block--flight{padding:var(--space-4);border-radius:var(--r-lg);background:var(--color-canvas);box-shadow:inset 0 0 0 1px var(--separator)}
.ms-block--flight .ms-block__body{display:grid;gap:var(--space-4)}

/* Meals: two menus that add up. */
.ms-block--menus{gap:var(--space-4)}
.ms-block--menus:empty{display:none}
.ms-split{display:grid;gap:var(--space-3)}
.ms-split__row{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-3);min-width:0}
.ms-split__row>.ui-field{flex:1 1 auto;min-width:0}
.ms-split__menu{flex:1 1 auto;min-width:0;margin:0;padding-bottom:.6875rem;color:var(--text-primary);font-size:var(--fs-callout);font-weight:var(--fw-semibold)}
.ms-split__stepper{flex:none}
.ms-split__status{margin:0}

/* Wellness: one card per session. */
.ms-session__single{margin:0;color:var(--text-body);font-size:var(--fs-callout)}
.ms-session__single strong{color:var(--text-primary);font-weight:var(--fw-semibold)}

/* Footer: what is chosen, the amount before tax, one primary action. */
.ms-config__footer{gap:var(--space-3)}
.ms-config__total{display:grid;gap:2px;min-height:2.75rem;align-content:center}
.ms-config__total-main{margin:0;color:var(--text-primary);font-size:var(--fs-callout);font-weight:var(--fw-semibold);line-height:1.3;font-variant-numeric:tabular-nums lining-nums}
.ms-config__total-amount{margin:0;color:var(--text-body);font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
.ms-config__total-amount strong{color:var(--text-primary);font-size:var(--fs-callout);font-weight:var(--fw-semibold)}
.ms-config__total-note{color:var(--text-secondary)}
.ms-sheet .ui-sheet__footer [aria-disabled="true"],.ms-manage .ui-sheet__footer [aria-disabled="true"]{opacity:.55}

/* Vehicles: the day (or leg) strip stays in view while the guest shops the garage below it. */
.ms-sheet[data-planner="fleet-day"] .ms-block--strip{position:sticky;top:0;z-index:4;margin-inline:calc(var(--space-5) * -1);padding:var(--space-1) var(--space-5) 0;background:var(--color-surface);box-shadow:0 1px 0 var(--separator)}
.ms-sheet[data-planner="fleet-day"] .ms-block--strip .ms-block__head{position:absolute;width:1px;height:1px;min-height:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.ms-sheet[data-planner="fleet-day"] .ms-config{padding-top:0}

/* Sheets with a planner: wider on desktop, the footer on one row. */
@media (min-width:1068px){
  .ms-sheet--wide.ui-sheet--center{width:min(46rem,100% - 2 * var(--gutter));max-height:min(92dvh,62rem)}
  /* The garage needs 54rem to lay its readout over a wide stage (DESIGN.md §5.2). */
  .ms-sheet[data-planner^="fleet"].ui-sheet--center{width:min(60rem,100% - 2 * var(--gutter))}
  .ms-sheet .ms-config__footer{grid-template-columns:minmax(0,1fr) minmax(0,18rem);align-items:center}
}

/* ---------- The breakfast menu picker and galleries in the sheet (CONTRACT §12) ---------- */
.ms-picker,.ms-gallery{margin:0}
.ms-picker .ui-model-picker__media,.ms-gallery .ui-gallery__viewport,.ms-gallery .ui-gallery__slide{border-radius:var(--r-lg)}

/* ---------- Suggestions (ui-rec, CONTRACT §12) ---------- */
.ms-recs{margin:0}
.ms-recs .ui-rec-rail__list{padding-bottom:var(--space-3)}
.ms-rec__open{display:inline;margin:0;padding:0;border:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;text-align:left;cursor:pointer}
/* The chevron sits on the amount line, however many lines the unit under it takes ("per vehicle, up to
   10 hours" wraps in a narrow card): centred on that line (the amount: callout size, the price's 1.35
   line height), not on the whole price block. Rows keep their own placement. */
.ms-rec:not(.ui-rec--row) .ui-rec__price+.ui-rec__go{align-self:flex-start;margin-top:calc((var(--fs-callout) * 1.35 - 2rem) / 2)}
.ms-cart__cross{margin:var(--space-4) 0 0}
.ms-rec__minimum{margin:var(--space-1) 0 0;color:var(--text-secondary);font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
/* In a one-line row the minimum follows the price. */
.ui-rec--row .ms-rec__minimum{order:1;grid-column:1;margin:0;font-size:var(--fs-caption);line-height:var(--lh-caption)}
.ms-cross__meta{margin:2px 0 0;color:var(--text-body);font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
.ms-cart__status{margin:0 0 var(--space-3);padding:var(--space-2) var(--space-4);border-radius:var(--r-md);background:var(--status-success-tint);color:var(--status-success-text);font-size:var(--fs-footnote);font-weight:var(--fw-semibold)}
.ms-cart__status:focus{outline:none}
.ms-sent+.ms-recs{margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--separator)}
.ms-recs--rows{display:grid;gap:var(--space-4)}
.ms-recs__rows{display:grid;gap:var(--space-3);margin:0;padding:0;list-style:none}
.ms-recs__rows>li{margin:0}

/* ---------- Cart ---------- */
.ms-cart__body{padding-bottom:var(--space-6)}
.ms-cart__undo{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin:0 0 var(--space-3);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);border-radius:var(--r-md);background:var(--fill-tertiary);color:var(--text-body);font-size:var(--fs-footnote)}
.ms-cart__lines{margin:0;padding:0;list-style:none;border-top:1px solid var(--separator)}
.ms-line{display:grid;grid-template-columns:3.5rem minmax(0,1fr) auto;align-items:start;gap:var(--space-3);margin:0;padding:var(--space-4) 0;border-bottom:1px solid var(--separator)}
.ms-line__media{display:block;width:3.5rem;height:3.5rem;overflow:hidden;border-radius:var(--r-sm);background:var(--fill-tertiary)}
.ms-line__media img{display:block;width:100%;height:100%;object-fit:cover}
.ms-line__body{display:grid;gap:3px;min-width:0}
.ms-line__title{margin:0;font-size:var(--fs-callout);font-weight:var(--fw-semibold);line-height:1.3}
.ms-line__meta{margin:0;color:var(--text-secondary);font-size:var(--fs-footnote);line-height:var(--lh-footnote);font-variant-numeric:tabular-nums lining-nums}
.ms-line__free{margin:2px 0 0;color:var(--text-secondary);font-size:var(--fs-caption);line-height:var(--lh-caption)}
.ms-line__free.is-rule{color:var(--status-warning-text)}
.ms-line__flag{justify-self:start;margin:2px 0 0;padding:.125rem .5rem;border-radius:var(--r-badge);background:var(--status-info-tint);color:var(--status-info-text);font-size:var(--fs-caption);font-weight:var(--fw-semibold)}
.ms-line__actions{display:flex;flex-wrap:wrap;gap:0 var(--space-4);margin-top:2px}
.ms-line__price{margin:0;font-size:var(--fs-callout);font-weight:var(--fw-semibold);text-align:right;white-space:nowrap}
.ms-line.has-error .ms-line__title{color:var(--status-danger-text)}
.ms-text-button{display:inline-flex;align-items:center;min-height:2rem;margin:0;padding:0;border:0;background:none;color:var(--text-link);font-family:var(--font-text);font-size:var(--fs-footnote);font-weight:var(--fw-semibold);cursor:pointer}
.ms-text-button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--r-xs)}
@media (pointer:coarse){.ms-text-button{min-height:var(--tap-min)}}
@media (hover:hover){.ms-text-button:hover{color:var(--text-link-hover);text-decoration:underline;text-underline-offset:.2em}}
.ms-cart__totals{display:grid;gap:var(--space-3);margin-top:var(--space-5)}
.ms-cart__totals[aria-busy="true"] .ui-skeleton{width:100%}
.ms-cart__group-title{margin:0;color:var(--text-primary);font-size:var(--fs-footnote);font-weight:var(--fw-semibold);letter-spacing:.04em;text-transform:uppercase}
.ms-cart__later{display:grid;gap:var(--space-1);margin-top:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--r-md);background:var(--status-info-tint)}
.ms-cart__later .ms-cart__tax-note{color:var(--status-info-text)}
.ms-cart__pricing,.ms-cart__tax-note{margin:0;color:var(--text-secondary);font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
.ms-cart__form{display:grid;gap:var(--space-5);margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--separator)}
.ms-cart__footer{gap:var(--space-3)}
.ms-cart__footer:empty{display:none}
.ms-cart__terms{margin:0;color:var(--text-secondary);font-size:var(--fs-caption);line-height:var(--lh-caption);text-align:center;text-wrap:balance}
.ms-cart__terms-link{display:inline;min-height:0;font-size:inherit}
@media (pointer:coarse){.ms-cart__terms-link{min-height:0;padding-block:.5rem}}
.ms-cart__notice{padding:var(--space-3) var(--space-4);font-size:var(--fs-footnote)}
.ms-cart__notice .ui-button{margin-top:var(--space-1)}
.ms-cart__empty{padding-block:var(--space-9)}
.ms-empty-icon{width:3.5rem;height:3.5rem;border-radius:50%;background:var(--fill-tertiary);position:relative}
.ms-empty-icon::before{content:"";position:absolute;inset:.9rem;background:var(--text-secondary);-webkit-mask:var(--ms-icon-cart) center/contain no-repeat;mask:var(--ms-icon-cart) center/contain no-repeat}

.ms-cart.is-sent .ui-sheet__header{justify-content:flex-end}
.ms-sent{display:grid;justify-items:center;gap:var(--space-3);padding:var(--space-8) 0 var(--space-4);text-align:center}
.ms-sent__icon{width:4rem;height:4rem;border-radius:50%;background:var(--status-success-tint);position:relative}
.ms-sent__icon::before{content:"";position:absolute;inset:1rem;background:var(--status-success-text);-webkit-mask:var(--icon-check) center/contain no-repeat;mask:var(--icon-check) center/contain no-repeat}
.ms-sent--saved .ms-sent__icon{background:var(--status-warning-tint)}
.ms-sent--saved .ms-sent__icon::before{background:var(--status-warning-text);-webkit-mask-image:var(--icon-card);mask-image:var(--icon-card)}
.ms-sent__title{margin:var(--space-2) 0 0;font-size:var(--fs-title-2);line-height:var(--lh-title-2);letter-spacing:var(--ls-title-2)}
.ms-sent__title:focus{outline:none}
.ms-sent__text{max-width:24rem;margin:0;color:var(--text-body);font-size:var(--fs-callout);line-height:var(--lh-callout)}
.ms-sent__ref{margin:0;color:var(--text-secondary);font-size:var(--fs-footnote)}
.ms-sent__actions{display:grid;gap:var(--space-2);width:100%;margin-top:var(--space-5)}

/* ---------- My bookings ---------- */
.ms-flash-slot:empty{display:none}
.ms-flash-slot{margin:0 0 var(--space-6)}
.ms-flash{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-3);margin:0;padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);border-radius:var(--r-lg);background:var(--status-info-tint);color:var(--status-info-text)}
.ms-flash::before{content:"";width:1.25rem;height:1.25rem;background:currentColor;-webkit-mask:var(--icon-info) center/contain no-repeat;mask:var(--icon-info) center/contain no-repeat}
.ms-flash--success{background:var(--status-success-tint);color:var(--status-success-text)}
.ms-flash--success::before{-webkit-mask-image:var(--icon-check-circle);mask-image:var(--icon-check-circle)}
.ms-flash--warning{background:var(--status-warning-tint);color:var(--status-warning-text)}
.ms-flash--warning::before{-webkit-mask-image:var(--icon-alert);mask-image:var(--icon-alert)}
.ms-flash[aria-busy="true"]::before{-webkit-mask-image:var(--icon-clock);mask-image:var(--icon-clock)}
.ms-flash__text{margin:0;font-size:var(--fs-callout);font-weight:var(--fw-medium);line-height:var(--lh-callout)}
.ms-flash__close{--icon:var(--icon-x);color:inherit}

.ms-order{gap:var(--space-4);scroll-margin-top:calc(var(--nav-h) + var(--space-4))}
.ms-order:focus{outline:none}
.ms-order:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}
.ms-order.is-attention{box-shadow:inset 0 0 0 1.5px var(--color-accent),var(--elevation-2)}
.ms-order__head{display:grid;justify-items:start;gap:var(--space-2)}
.ms-order__title{margin:0;font-size:var(--fs-title-3);line-height:var(--lh-title-3);letter-spacing:var(--ls-title-3)}
.ms-order__ref{margin:0;color:var(--text-secondary);font-size:var(--fs-footnote)}
.ms-order__explain{margin:0;color:var(--text-body);font-size:var(--fs-callout);line-height:var(--lh-callout)}
.ms-order__lines{margin:0;padding:0;list-style:none;border-top:1px solid var(--separator)}
.ms-order-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-3);margin:0;padding:var(--space-3) 0;border-bottom:1px solid var(--separator)}
.ms-order-line__body{display:grid;justify-items:start;gap:3px;min-width:0}
.ms-order-line__name{margin:0;font-size:var(--fs-callout);font-weight:var(--fw-semibold);line-height:1.3}
.ms-order-line__meta{margin:0;color:var(--text-secondary);font-size:var(--fs-footnote);line-height:var(--lh-footnote);font-variant-numeric:tabular-nums lining-nums}
.ms-order-line__price{margin:0;font-size:var(--fs-callout);font-weight:var(--fw-semibold);white-space:nowrap}
/* What happens next for one service (D17): an icon and a short state. */
.ms-order-line__state{display:flex;align-items:center;gap:.375rem;margin:2px 0 0;color:var(--text-body);font-size:var(--fs-footnote);font-weight:var(--fw-semibold);line-height:1.3}
.ms-order-line__state::before{content:"";flex:none;width:.95rem;height:.95rem;background:currentColor;-webkit-mask:var(--icon-clock) center/contain no-repeat;mask:var(--icon-clock) center/contain no-repeat}
.ms-order-line__state[data-state="booked"],.ms-order-line__state[data-state="confirmed"]{color:var(--status-success-text)}
.ms-order-line__state[data-state="booked"]::before{-webkit-mask-image:var(--icon-check);mask-image:var(--icon-check)}
.ms-order-line__state[data-state="confirmed"]::before{-webkit-mask-image:var(--icon-check-circle);mask-image:var(--icon-check-circle)}
.ms-order-line__state[data-state="to-confirm"]{color:var(--status-warning-text)}
.ms-order-line__state[data-state="to-confirm"]::before{-webkit-mask-image:var(--icon-calendar);mask-image:var(--icon-calendar)}
.ms-order-line__state[data-state="canceled"],.ms-order-line__state[data-state="declined"]{color:var(--text-secondary)}
.ms-order-line__state[data-state="canceled"]::before,.ms-order-line__state[data-state="declined"]::before{-webkit-mask-image:var(--icon-x);mask-image:var(--icon-x)}
.ms-order-line__free{margin:0;color:var(--text-secondary);font-size:var(--fs-caption);line-height:var(--lh-caption)}
.ms-order-line__note{margin:var(--space-1) 0 0;padding:var(--space-2) var(--space-3);border-radius:var(--r-sm);background:var(--accent-tint);color:var(--text-body);font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
.ms-order-line__private{display:flex;align-items:center;gap:.375rem;margin:0;color:var(--text-secondary);font-size:var(--fs-caption)}
.ms-order-line__private::before{content:"";flex:none;width:.9rem;height:.9rem;background:currentColor;-webkit-mask:var(--ms-icon-lock) center/contain no-repeat;mask:var(--ms-icon-lock) center/contain no-repeat}
.ms-order-line.is-struck .ms-order-line__name,.ms-order-line.is-struck .ms-order-line__price{color:var(--text-secondary);text-decoration:line-through}
.ms-order__totals{display:grid;gap:var(--space-2)}
.ms-totals__adjustment dd{color:var(--status-success-text)}
.ms-refunds{padding:var(--space-3) var(--space-4);border-radius:var(--r-md);background:var(--fill-tertiary)}
.ms-change{display:grid;gap:var(--space-1);margin:0;padding:var(--space-3) var(--space-4);border-radius:var(--r-md);background:var(--status-info-tint);color:var(--status-info-text);font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
.ms-change--applied{background:var(--status-success-tint);color:var(--status-success-text)}
.ms-change--declined{background:var(--status-neutral-tint);color:var(--status-neutral-text)}
.ms-change__text,.ms-change__message{margin:0}
.ms-change__text{font-weight:var(--fw-semibold)}
.ms-order__pay-note{margin-bottom:calc(var(--space-2) * -1)}
.ms-order__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}
.ms-order__actions .ui-button--large{flex:1 1 14rem}
.ms-order__actions .ui-button--secondary,.ms-order__actions .ui-button--tertiary{flex:1 1 10rem}
/* A wrapped link keeps its arrow after the last word instead of at the far edge. */
.ms-order__actions .ui-link{flex:1 1 100%;display:inline;min-height:0;padding-block:var(--space-2);line-height:1.4}
.ms-order__actions .ui-link::after{display:inline-block;margin-left:.25em;vertical-align:-.05em}
.ms-proposal{display:grid;gap:var(--space-3);margin:0;padding:var(--space-5);border-radius:var(--r-md);background:var(--status-info-tint)}
.ms-proposal__eyebrow{margin:0;color:var(--status-info-text);font-size:var(--fs-footnote);font-weight:var(--fw-semibold)}
.ms-proposal__message{margin:0;padding-left:var(--space-4);border-left:3px solid var(--status-info);color:var(--text-primary);font-size:var(--fs-callout);line-height:var(--lh-callout)}
.ms-proposal__message p{margin:0}
.ms-proposal .ms-order__lines{border-top-color:rgb(43 92 138 / .2)}
.ms-proposal .ms-order-line{border-bottom-color:rgb(43 92 138 / .2)}
.ms-proposal[data-tone="success"]{background:var(--status-success-tint)}
.ms-proposal[data-tone="success"] .ms-proposal__eyebrow{color:var(--status-success-text)}
.ms-proposal[data-tone="success"] .ms-order__lines,.ms-proposal[data-tone="success"] .ms-order-line{border-color:var(--separator)}
.ms-proposal[data-tone="neutral"]{background:var(--fill-tertiary)}
.ms-proposal[data-tone="neutral"] .ms-proposal__eyebrow{color:var(--text-secondary)}
.ms-proposal[data-tone="warning"]{background:var(--status-warning-tint)}
.ms-proposal[data-tone="warning"] .ms-proposal__eyebrow{color:var(--status-warning-text)}
/* Keep the credit sign with its amount; let the descriptive label wrap on mobile. */
.ms-proposal [data-ms-request-funding] .ui-totals dt{min-width:0;overflow-wrap:anywhere}
.ms-proposal [data-ms-request-funding] .ui-totals dd{flex-shrink:0;white-space:nowrap}
[data-ms-standard-review] .ui-totals dt{min-width:0;overflow-wrap:anywhere}
[data-ms-standard-review] .ui-totals dd{flex-shrink:0;white-space:nowrap}
[data-ms-standard-review]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}
.ms-order__history{border-top:1px solid var(--separator)}
.ms-order__history>summary{display:flex;align-items:center;justify-content:space-between;min-height:var(--tap-min);color:var(--text-secondary);font-size:var(--fs-footnote);font-weight:var(--fw-semibold);list-style:none;cursor:pointer}
.ms-order__history>summary::-webkit-details-marker{display:none}
.ms-order__history>summary::after{content:"";width:.75em;height:.75em;background:currentColor;-webkit-mask:var(--icon-chevron) center/contain no-repeat;mask:var(--icon-chevron) center/contain no-repeat;transform:rotate(90deg)}
.ms-order__history[open]>summary::after{transform:rotate(-90deg)}
.ms-order__history>summary:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--r-xs)}
.ms-timeline{position:relative;display:grid;gap:var(--space-3);margin:0 0 var(--space-2);padding:0 0 0 1.5rem;list-style:none}
.ms-timeline::before{content:"";position:absolute;left:.3125rem;top:.4rem;bottom:.4rem;width:2px;border-radius:2px;background:var(--fill-primary)}
.ms-timeline>li{position:relative;display:flex;flex-wrap:wrap;justify-content:space-between;gap:0 var(--space-3);margin:0;font-size:var(--fs-footnote)}
.ms-timeline>li::before{content:"";position:absolute;left:-1.5rem;top:.3rem;width:.75rem;height:.75rem;border-radius:50%;background:var(--color-surface);box-shadow:inset 0 0 0 2px var(--fill-primary)}
.ms-timeline>li.is-done::before{background:var(--status-success);box-shadow:none}
.ms-timeline>li.is-current::before{background:var(--color-accent);box-shadow:0 0 0 4px var(--accent-tint)}
.ms-timeline__status{font-weight:var(--fw-semibold)}
.ms-timeline__time{color:var(--text-secondary);font-variant-numeric:tabular-nums}

/* ---------- Manage sheet: request a change, cancel services, confirm tomorrow ---------- */
.ms-manage__body{display:grid;align-content:start;gap:var(--space-5);padding-bottom:var(--space-6)}
.ms-manage__body>*{margin:0;min-width:0}
.ms-manage__intro{color:var(--text-body);font-size:var(--fs-callout);line-height:var(--lh-callout)}
/* One folded row per service: its name and when; open it to change the day, the time or the people. */
.ms-manage__line{min-width:0;margin:0;border-radius:var(--r-lg);background:var(--color-canvas);box-shadow:inset 0 0 0 1px var(--separator)}
.ms-manage__line[open]{box-shadow:inset 0 0 0 1.5px var(--color-ink)}
.ms-manage__legend{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px var(--space-3);min-height:3.5rem;padding:var(--space-3) var(--space-4);list-style:none;cursor:pointer;border-radius:inherit}
.ms-manage__legend::-webkit-details-marker{display:none}
.ms-manage__legend::after{content:"";grid-column:2;grid-row:1 / span 2;width:.8rem;height:.8rem;background:var(--text-secondary);-webkit-mask:var(--icon-chevron) center/contain no-repeat;mask:var(--icon-chevron) center/contain no-repeat;transform:rotate(90deg)}
.ms-manage__line[open]>.ms-manage__legend::after{transform:rotate(-90deg)}
.ms-manage__legend:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.ms-manage__legend .ms-manage__name,.ms-manage__legend .ms-manage__meta{grid-column:1}
.ms-manage__fields{display:grid;gap:var(--space-4);padding:var(--space-1) var(--space-4) var(--space-4)}
.ms-manage__name{color:var(--text-primary);font-size:var(--fs-callout);font-weight:var(--fw-semibold);line-height:1.3}
.ms-manage__meta{color:var(--text-secondary);font-size:var(--fs-footnote);line-height:var(--lh-footnote);font-weight:var(--fw-regular)}
.ms-manage__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));gap:var(--space-4)}
.ms-manage__time:empty{display:none}
.ms-manage__choices{display:grid;gap:var(--space-2);margin:0;padding:0;list-style:none}
.ms-manage__choice{margin:0}
.ms-manage__check{padding:var(--space-4);border-radius:var(--r-lg);background:var(--color-canvas);box-shadow:inset 0 0 0 1px var(--separator)}
.ms-manage__check:has(input:checked){box-shadow:inset 0 0 0 1.5px var(--color-ink)}
.ms-manage__choice-text{display:grid;gap:2px}
.ms-manage__free{color:var(--status-success-text);font-size:var(--fs-footnote);font-weight:var(--fw-semibold)}
.ms-manage__free.is-rule{color:var(--status-warning-text)}
.ms-manage__order{display:grid;gap:var(--space-2)}
.ms-manage__footer{gap:var(--space-3)}
.ms-manage__footer:empty{display:none}
.ms-manage__error{padding:var(--space-3) var(--space-4);font-size:var(--fs-footnote)}
.ms-manage__link{justify-self:center}

/* ---------- Find my booking (D19) ---------- */
.ms-find{display:grid;width:100%;margin-top:var(--space-1);text-align:left}
.ms-find__form{display:grid;gap:var(--space-4)}
.ms-find__check:empty{display:none}
.ms-find__error{padding:var(--space-3) var(--space-4);font-size:var(--fs-footnote)}
.ms-find__done{display:grid;justify-items:center;gap:var(--space-3);padding:var(--space-3) 0;text-align:center}
.ms-find__done-icon{position:relative;width:3rem;height:3rem;border-radius:50%;background:var(--status-success-tint)}
.ms-find__done-icon::before{content:"";position:absolute;inset:.8rem;background:var(--status-success-text);-webkit-mask:var(--icon-check) center/contain no-repeat;mask:var(--icon-check) center/contain no-repeat}
.ms-find__done-title{margin:0;font-size:var(--fs-title-3);line-height:var(--lh-title-3)}
.ms-find__done-title:focus{outline:none}
.ms-find__done-text{margin:0;color:var(--text-body);font-size:var(--fs-callout);line-height:var(--lh-callout)}
.ms-blocked[data-kind="NO_TOKEN"] .ms-blocked__icon::before,.ms-blocked[data-kind="FORGOTTEN"] .ms-blocked__icon::before{-webkit-mask-image:var(--icon-calendar);mask-image:var(--icon-calendar)}

/* ---------- Help ---------- */
.ms-help-contact__number{margin:0;font-size:var(--fs-title-2);font-weight:var(--fw-semibold);letter-spacing:-.01em}
.ms-help-reference{margin:0;font-size:var(--fs-title-3);font-weight:var(--fw-medium);overflow-wrap:anywhere}
.ms-steps{display:grid;gap:var(--space-3);margin:0;padding:0;list-style:none;counter-reset:ms-step}
.ms-steps>li{position:relative;margin:0;padding-left:2.25rem;color:var(--text-body);font-size:var(--fs-callout);line-height:var(--lh-callout);counter-increment:ms-step}
.ms-steps>li::before{content:counter(ms-step);position:absolute;left:0;top:0;display:grid;place-items:center;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--accent-tint);color:var(--accent-text);font-size:var(--fs-caption);font-weight:var(--fw-bold)}

/* ---------- Dialog bits ---------- */
.ms-confirm__body{padding-top:var(--space-6)}
.ms-confirm__title{margin:0 0 var(--space-2);font-size:var(--fs-title-3);line-height:var(--lh-title-3)}
.ms-confirm__text{margin:0;color:var(--text-body);font-size:var(--fs-callout)}
.ms-confirm__actions{grid-template-columns:repeat(2,minmax(0,1fr))}
.ms-terms__section+.ms-terms__section{margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--separator)}
.ms-terms__title{margin:0 0 var(--space-3);font-size:var(--fs-body);line-height:1.3}
.ms-terms__body p{margin:0 0 var(--space-3);color:var(--text-body);font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
.ms-img-empty{background:var(--fill-tertiary)}

/* ---------- Wide screens: left rail, content column ---------- */
@media (min-width:1068px){
  .ms-body{padding-bottom:0}
  .ms{width:min(var(--w-wide),100% - 2 * var(--gutter));padding-block:var(--space-9) var(--space-12)}
  .ms-shell{display:grid;grid-template-columns:15rem minmax(0,46rem);justify-content:center;align-items:start;gap:var(--space-11)}
  .ms-tabbar{position:sticky;inset:auto;top:calc(var(--nav-h) + var(--space-9));z-index:auto;padding:0}
  .ms-tabbar::before{display:none}
  .ms-tabbar__stay{display:grid;gap:var(--space-1);margin:0 0 var(--space-5);padding:0 var(--space-3) var(--space-5);border-bottom:1px solid var(--separator)}
  .ms-rail__villa{margin:0;font-size:var(--fs-body);font-weight:var(--fw-semibold);line-height:1.3}
  .ms-rail__dates{margin:0;color:var(--text-secondary);font-size:var(--fs-footnote)}
  .ms-tabbar__list{grid-template-columns:minmax(0,1fr);gap:2px;max-width:none}
  .ms-tab{display:flex;justify-content:flex-start;align-items:center;gap:var(--space-3);min-height:2.75rem;padding:0 var(--space-3);font-size:var(--fs-callout);text-align:left}
  .ms-tab::before{flex:none;width:1.25rem;height:1.25rem}
  .ms-tab[aria-current="page"]{background:var(--color-surface);color:var(--text-primary);box-shadow:var(--elevation-1)}
  .ms-tab[aria-current="page"]::before{background:var(--accent-text)}
  .ms-tab__badge{position:static;margin-left:auto}
  .ms-filter{margin-inline:0;padding-inline:0;flex-wrap:wrap;overflow:visible}
  .ms-cart-pill{left:auto;right:max(var(--gutter),(100% - var(--w-wide)) / 2);bottom:var(--space-7);transform:none}
  .ms-toasts{--toast-offset:0px}
  .ms-blocked{grid-column:1 / -1}
  .ms-shell:has(.ms-tabbar[hidden]){grid-template-columns:minmax(0,46rem)}
}

/* ---------- Motion (only when welcome) ---------- */
@media (prefers-reduced-motion:no-preference){
  .ms-panel:not([hidden]){animation:ms-panel-in var(--dur-3) var(--ease-out) both}
  .ms-tab,.ms-filter__chip,.ms-product,.ms-upcoming,.ms-action-row,.ms-manage__check{transition:background-color var(--dur-2) var(--ease-standard),color var(--dur-2) var(--ease-standard),border-color var(--dur-2) var(--ease-standard),box-shadow var(--dur-2) var(--ease-standard)}
  .ms-category__media img{transition:transform var(--dur-4) var(--ease-out)}
  .ms-cart-pill{animation:ms-pill-in var(--dur-3) var(--ease-out) both}
  .ms-order__history>summary::after,.ms-more__summary::after{transition:transform var(--dur-2) var(--ease-standard)}
  @media (hover:hover){.ms-category:hover .ms-category__media img{transform:scale(1.04)}}
}
@keyframes ms-panel-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes ms-pill-in{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}

@media (forced-colors:active){
  .ms-tabbar::before{background:Canvas}
  .ms-tab::before,.ms-cart-pill::before,.ms-blocked__icon::before,.ms-sent__icon::before,.ms-empty-icon::before,.ms-action-row__icon::before,.ms-order-line__private::before,.ms-order-line__state::before,.ms-flash::before,.ms-more__summary::after,.ms-menu>summary::after,.ms-find__done-icon::before{forced-color-adjust:none;background:CanvasText}
  .ms-tab[aria-current="page"],.ms-filter__chip[aria-pressed="true"],.ms-manage__check:has(input:checked){outline:2px solid CanvasText}
  .ms-flash,.ms-change,.ms-cart__later,.ms-more,.ms-manage__line,.ms-manage__check,.ms-block--flight{border:1px solid CanvasText}
}
@media print{.ms-tabbar,.ms-cart-pill{display:none}}

/* Transfers: the departure's pickup, told as the guest types the take-off time; an early flight in amber. */
.ms-pickup-hint[data-tone="warning"]{color:var(--status-warning-text)}
.ms-chef__menu:empty{display:none}
