/* Shared consumer mobile primitives; Home is the sole approved consumer. */
.mobile-home,.mh-dialog {
  --mh-white:#fff; --mh-ink:#292c30; --mh-muted:#64686d; --mh-line:#e9e9e7;
  --mh-gold:#956e24; --mh-gold-soft:#f7f1e5; --mh-surface:#f7f7f6;
  --mh-radius:20px; --mh-gap:16px; --mh-ease:cubic-bezier(.23,1,.32,1);
  --mh-sheet-ease:cubic-bezier(.32,.72,0,1); --mh-press:140ms; --mh-enter:260ms;
  color:var(--mh-ink); font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:16px; line-height:1.45; -webkit-tap-highlight-color:transparent;
}
.mobile-home {display:none}
.mh-navigation-close {display:none}
.mobile-home svg,.mh-dialog svg {width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.mobile-home button,.mh-dialog button {font:inherit;color:inherit;border:0;cursor:pointer;touch-action:manipulation}
.mobile-home button:disabled,.mh-dialog button:disabled {cursor:default;opacity:.3}
.mobile-home :is(a,button):focus-visible,.mh-dialog :is(a,button,[tabindex]):focus-visible {outline:3px solid var(--mh-gold);outline-offset:3px}
.mobile-home :is(button,a),.mh-dialog :is(button,a) {transition:transform var(--mh-press) var(--mh-ease),background-color var(--mh-press) ease}
body:not([data-mh-input=keyboard]) .mobile-home :is(button,a):active,body:not([data-mh-input=keyboard]) .mh-dialog :is(button,a):active {transform:scale(.97)}
.mobile-home h1,.mobile-home h2,.mobile-home h3,.mh-dialog h2,.mh-dialog h3 {font-weight:650;letter-spacing:-.035em;text-wrap:balance}
.mobile-home h2 {font-size:20px;line-height:1.2;margin:0}
.mobile-home p {margin:0}
.mh-header {display:flex;align-items:center;gap:12px;min-height:72px;padding:10px 20px;background:#fff}
.mh-header>div {flex:1}
.mh-header>div>span {display:block;font-size:17px;line-height:1.3;font-weight:650;letter-spacing:-.02em}
.mh-header small {display:block;color:var(--mh-muted);font-size:12px;margin-top:2px}
.mh-avatar,.mh-menu {display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:50%;background:var(--mh-surface)}
.mh-avatar {border:1px solid #e0ded9!important;background:linear-gradient(145deg,#eeece5,#f9f9f7);box-shadow:inset 0 0 0 3px white;color:#77736a!important}
.mh-avatar svg {width:25px;height:25px}
.mh-menu {background:transparent}
.mh-hero {position:relative;isolation:isolate;height:290px;overflow:hidden;background:#656d5f;color:#fff}
.mh-hero>.mh-image {position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto}
.mh-hero:after {content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,rgba(0,0,0,.13),transparent 36%,rgba(16,24,17,.16) 50%,rgba(16,24,17,.83));pointer-events:none}
.mh-image {position:relative;background:#edeee9;overflow:hidden;aspect-ratio:4/3}
.mh-image>img {display:block;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 180ms ease}
.mh-image.is-loaded>img {opacity:1}
.mh-image-error:not([hidden]) {position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#292c30;background:#edeee9;font-size:14px;z-index:2}
.mh-image-error button {min-height:44px;border:1px solid #ccc!important;background:white;border-radius:12px;padding:8px 18px}
.mh-hero .mh-image>img {object-position:50% 43%}
.mh-photo-date {position:absolute;z-index:1;top:14px;right:16px;background:rgba(22,28,21,.58);padding:5px 9px;border:1px solid rgba(255,255,255,.2);border-radius:20px;font-size:10px;letter-spacing:.015em;backdrop-filter:blur(8px)}
.mh-hero-copy {position:absolute;z-index:1;left:24px;bottom:23px;right:108px}
.mh-hero-copy>span {font-size:10px;letter-spacing:.18em;font-weight:600;color:#f1f0e9}
.mh-hero-copy h1 {font-size:29px;line-height:1.08;margin:7px 0 6px;letter-spacing:-.045em}
.mh-hero-copy p {font-size:14px;color:#f0f1ed}
.mh-gallery-open {display:flex;align-items:center;justify-content:center;gap:6px;position:absolute;z-index:1;right:16px;bottom:25px;min-height:44px;padding:8px 10px;background:rgba(255,255,255,.92);border:1px solid rgba(255,255,255,.7)!important;border-radius:13px;color:#292c30!important;font-size:12px!important;backdrop-filter:blur(12px)}
.mh-gallery-open svg {width:17px;height:17px}
.mh-facts {display:flex;align-items:center;justify-content:center;gap:27px;padding:18px 12px;border-bottom:1px solid var(--mh-line);font-size:13px;color:#52565a}
.mh-facts span {display:flex;align-items:center;gap:7px}
.mh-facts svg {width:20px;height:20px;color:#777b7e;stroke-width:1.4}
.mh-actions {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:17px 14px 19px;gap:8px}
.mh-actions>a,.mh-actions>button {display:flex;flex-direction:column;align-items:center;gap:8px;background:transparent;text-align:center;padding:0;min-height:76px;font-size:12px;font-weight:550}
.mh-action-icon {display:grid;place-items:center;width:49px;height:49px;border-radius:17px}
.mh-action-icon svg {width:27px;height:27px}
.mh-amber {color:#8c6b30;background:#f7f1e5}
.mh-sage {color:#546f5f;background:#eef3ef}
.mh-slate {color:#597080;background:#eff3f6}
.mh-rose {color:#90695e;background:#f8f0ed}
.mh-content {padding:0 18px 24px;display:flex;flex-direction:column;gap:26px}
.mh-card {border:1px solid var(--mh-line);border-radius:var(--mh-radius);background:var(--mh-white);overflow:hidden;box-shadow:0 3px 10px rgba(32,35,28,.025)}
.mh-journey {background:linear-gradient(140deg,#faf8f3 0%,#fff 65%)}
.mh-journey-head {display:flex;align-items:center;justify-content:space-between;gap:10px;padding:21px 18px 18px}
.mh-eyebrow {display:block;color:var(--mh-gold);font-size:9px;letter-spacing:.15em;font-weight:650;margin-bottom:9px}
.mh-journey-head h2 {font-size:20px;max-width:225px}
.mh-journey-head p {font-size:12px;color:var(--mh-muted);margin-top:8px}
.mh-ring {position:relative;flex:none;width:67px;height:67px;display:grid;place-items:center}
.mh-ring>svg {position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);stroke:#e8e5dd;stroke-width:3;fill:none}
.mh-ring .mh-ring-fill {stroke:var(--mh-gold);stroke-dasharray:100;stroke-dashoffset:100;transition:stroke-dashoffset 480ms var(--mh-ease);stroke-linecap:round}
.mh-ring>strong {font-size:19px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.04em}
.mh-steps {padding:0 18px}
.mh-step {width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) 24px;align-items:center;gap:11px;min-height:71px;padding:11px 0;border-top:1px solid var(--mh-line)!important;background:transparent;text-align:left}
.mh-step-icon {display:grid;place-items:center;width:34px;height:34px;color:#70746c}
.mh-step-icon svg {width:23px;height:23px}
.mh-step strong {display:block;font-size:16px;font-weight:570}
.mh-step small {display:block;font-size:12px;color:var(--mh-muted);margin-top:2px}
.mh-step-status {display:grid;place-items:center;color:#979a9b}
.mh-step-status>svg {width:17px;height:17px}
.mh-step.is-complete .mh-step-status {width:24px;height:24px;background:var(--mh-gold-soft);color:var(--mh-gold);border-radius:50%}
.mh-progress-note {font-size:10px;color:var(--mh-muted);padding:8px 18px 17px}
.mh-section-title {display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}
.mh-section-title h2 {font-size:20px}
.mh-badge {display:inline-flex;padding:4px 8px;border-radius:6px;background:#f0f0ee;color:#666966;font-size:10px;font-weight:550;white-space:nowrap}
.mh-row {display:grid;grid-template-columns:38px minmax(0,1fr) 18px;gap:11px;align-items:center;width:100%;padding:18px 16px;background:#fff;text-align:left;min-height:80px}
.mh-row+.mh-row {border-top:1px solid var(--mh-line)!important}
.mh-row strong {display:block;font-size:16px;font-weight:570}
.mh-row small {display:block;color:var(--mh-muted);font-size:12px;line-height:1.4;margin-top:4px}
.mh-row>svg {width:16px;height:16px;color:#979a9b}
.mh-icon {display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#f6f5f1;color:#817455}
.mh-icon svg {width:22px;height:22px}
.mh-offer {display:flex;align-items:center;position:relative;isolation:isolate;overflow:hidden;width:100%;padding:23px 20px;text-align:left;border-radius:var(--mh-radius);background:#f5f5f1}
.mh-offer>div:first-child {flex:1;z-index:1}
.mh-offer .mh-badge {background:#fff;color:#707269}
.mh-offer h3 {font-size:19px;line-height:1.2;margin:14px 0 8px}
.mh-offer p {max-width:190px;font-size:12px;color:var(--mh-muted)}
.mh-offer-link {display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;margin-top:20px;color:#665329}
.mh-offer-link svg {width:15px;height:15px}
.mh-coffee {flex:none;display:grid;place-items:center;position:relative;width:94px;height:114px;color:#ae8b4b;transform:rotate(-8deg)}
.mh-coffee>svg {width:79px;height:79px;stroke-width:.9;filter:drop-shadow(0 8px 2px rgba(143,117,65,.1))}
.mh-coffee:before {content:"";position:absolute;z-index:-1;width:108px;height:108px;border-radius:50%;background:#ece9df}
.mh-coffee i {position:absolute;width:4px;height:4px;background:#bfa673;border-radius:50%;top:4px;left:12px}
.mh-coffee i:last-child {top:90px;left:94px;width:7px;height:7px}
.mh-brain-link {display:grid;grid-template-columns:25px 1fr 20px;align-items:center;gap:12px;padding:2px 7px;min-height:54px}
.mh-brain-link>svg {color:var(--mh-gold);width:22px;height:22px}
.mh-brain-link>svg:last-child {color:#777;width:17px;height:17px}
.mh-brain-link strong {display:block;font-size:13px;font-weight:550}
.mh-brain-link small {display:block;font-size:12px;color:var(--mh-muted);margin-top:3px}
.mh-preview-note {text-align:center;color:#777b7a;font-size:10px;line-height:1.6}

/* Sheets use the native top layer, so backdrop, focus containment and inertness agree. */
.mh-dialog {position:fixed;inset:auto 0 0;margin:0 auto;padding:0;width:min(100%,600px);max-width:100%;max-height:min(90dvh,900px);border:0;border-radius:28px 28px 0 0;background:#fff;box-shadow:0 -12px 60px rgba(30,30,20,.12);overflow:hidden;overscroll-behavior:contain}
.mh-dialog[open] {display:flex;flex-direction:column;animation:mh-sheet-in var(--mh-enter) var(--mh-sheet-ease)}
.mh-dialog::backdrop {background:rgba(30,32,28,.35);backdrop-filter:blur(3px);animation:mh-backdrop-in 200ms ease}
.mh-dialog.is-closing {animation:mh-sheet-out 200ms var(--mh-sheet-ease) forwards;pointer-events:none}
.mh-dialog.is-closing::backdrop {opacity:0;transition:opacity 200ms ease}
.mh-modal-open {overflow:hidden}
.mh-drag-handle {height:27px;min-height:27px;display:grid;place-items:center;touch-action:none}
.mh-drag-handle>span {width:34px;height:4px;border-radius:4px;background:#d7d8d5}
.mh-sheet-close {position:absolute;z-index:2;top:18px;right:15px;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#f3f3f1}
.mh-sheet-close svg {width:20px;height:20px}
.mh-sheet-scroll {overflow-y:auto;overscroll-behavior:contain;min-height:0;padding:7px 22px 24px;scroll-padding:12px}
.mh-sheet-heading {padding:0 42px 19px 0}
.mh-sheet-heading h2 {font-size:26px;line-height:1.13;margin:0;outline:none}
.mh-sheet-heading p {font-size:13px;color:var(--mh-muted);margin:9px 0 0;line-height:1.5}
.mh-sheet-scroll>h3 {font-size:23px;line-height:1.2;margin:24px 0 12px}
.mh-sheet-scroll>p {color:var(--mh-muted);font-size:15px;line-height:1.55}
.mh-sheet-footer {position:relative;flex:none;padding:15px 22px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--mh-line);background:rgba(255,255,255,.96)}
.mh-dialog .mh-primary {display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:54px;background:#303337;color:#fff;border-radius:16px;font-size:15px;font-weight:580}
.mh-primary svg {width:19px;height:19px}
.mh-gallery {display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;border-radius:16px}
.mh-gallery::-webkit-scrollbar {display:none}
.mh-gallery figure {flex:0 0 100%;min-width:0;margin:0;scroll-snap-align:center;scroll-snap-stop:always}
.mh-gallery .mh-image {border-radius:16px;aspect-ratio:4/3}
.mh-gallery figcaption {font-size:14px;padding:12px 2px 2px;font-weight:550}
.mh-gallery-controls {display:flex;align-items:center;justify-content:space-between;margin:7px 0}
.mh-gallery-controls button {width:44px;height:44px;display:grid;place-items:center;background:#f6f6f4;border-radius:50%}
.mh-gallery-controls button:first-child svg {transform:rotate(180deg)}
.mh-gallery-controls svg {width:18px;height:18px}
.mh-gallery-controls>span {font-size:12px;color:var(--mh-muted);font-variant-numeric:tabular-nums}
.mh-dialog .mh-source {font-size:11px;line-height:1.55;color:var(--mh-muted);margin:18px 0 0}
.mh-room-gallery {display:flex;flex-direction:column;gap:18px}
.mh-room-card {margin:0;border:1px solid var(--mh-line);border-radius:16px;overflow:hidden}
.mh-room-card .mh-image {aspect-ratio:16/10}
.mh-room-card>div:last-child {padding:15px}
.mh-room-card h3 {font-size:17px;margin:0 0 4px}
.mh-room-card p {font-size:12px;color:var(--mh-muted);margin:0}
.mh-plan .mh-image {aspect-ratio:1202/1700;background:white}
.mh-plan img {object-fit:contain}
.mh-dialog .mh-rows {border:1px solid var(--mh-line);border-radius:16px;overflow:hidden}
.mh-profile-preview {text-align:center;padding:22px 0 30px}
.mh-profile-preview>svg {width:64px;height:64px;color:#989181;background:#f7f5ef;border:10px solid #f7f5ef;border-radius:50%}
.mh-profile-preview h3 {font-size:20px;margin:18px 0 8px}
.mh-profile-preview p {color:var(--mh-muted);font-size:14px;line-height:1.6;max-width:320px;margin:0 auto 20px}
.mh-interest-tags {display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}
.mh-interest-tags span {border:1px solid var(--mh-line);border-radius:30px;padding:8px 12px;font-size:12px}
.mh-offer-illustration {display:grid;place-items:center;height:150px;background:#f5f4ee;border-radius:18px;color:#ac8a49}
.mh-offer-illustration>svg {width:88px;height:88px;stroke-width:1}
.mh-soft-note {padding:18px;background:var(--mh-surface);border-radius:16px;margin:12px 0 22px}
.mh-soft-note strong {font-size:14px;font-weight:600}
.mh-soft-note p {font-size:13px;line-height:1.6;color:var(--mh-muted);margin:8px 0 0}
.mh-celebration {height:100dvh;max-height:100dvh;border-radius:0}
.mh-celebration-main {position:relative;z-index:1;display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;min-height:0;text-align:center;padding:40px 24px;overflow:auto}
.mh-success-mark {display:grid;place-items:center;width:92px;height:92px;border-radius:50%;background:var(--mh-gold-soft);color:var(--mh-gold);margin:0 0 36px;animation:mh-success-in 320ms var(--mh-ease)}
.mh-success-mark svg {width:42px;height:42px;stroke-width:1.6}
.mh-celebration .mh-eyebrow {font-size:8px;letter-spacing:.13em}
.mh-celebration h2 {font-size:42px;line-height:1.05;margin:12px 0 18px;outline:none}
.mh-celebration p {font-size:14px;line-height:1.6;color:var(--mh-muted);margin:0}
.mh-completed-pills {display:flex;flex-wrap:wrap;justify-content:center;gap:9px;margin-top:30px}
.mh-completed-pills span {display:flex;gap:4px;align-items:center;font-size:11px;color:var(--mh-gold);padding:7px 10px;border-radius:20px;background:#faf6ee}
.mh-completed-pills svg {width:14px;height:14px}
.mh-confetti {position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:2}
.mh-confetti i {position:absolute;left:var(--x);top:-24px;width:7px;height:15px;background:var(--color);opacity:0;animation:mh-confetti-fall 2s var(--delay) cubic-bezier(.14,.5,.4,1) both}
.mh-confetti i:nth-child(3n) {height:7px;border-radius:50%}
@keyframes mh-sheet-in {from{opacity:0;transform:translateY(34px)}to{opacity:1;transform:none}}
@keyframes mh-sheet-out {to{opacity:0;transform:translateY(34px)}}
@keyframes mh-backdrop-in {from{background:rgba(30,32,28,0)}to{background:rgba(30,32,28,.35)}}
@keyframes mh-success-in {from{opacity:0;transform:scale(.88)}to{opacity:1;transform:none}}
@keyframes mh-confetti-fall {0%{opacity:0;transform:translate3d(0,-20px,0) rotate(0)}10%{opacity:.85}80%{opacity:.75}100%{opacity:0;transform:translate3d(var(--drift),94dvh,0) rotate(var(--rotation))}}

@media(max-width:980px) {
  body.dashboard-page.mh-ready {background:#fff!important;padding-bottom:calc(92px + env(safe-area-inset-bottom))}
  .dashboard-page.mh-ready .site-header {display:none!important}
  .dashboard-page.mh-ready .ha-dashboard {background:white;min-height:0}
  .dashboard-page.mh-ready .ha-dashboard-main {display:none}
  .mobile-home {display:block;max-width:600px;margin:auto}
  .dashboard-page.mh-ready .ha-mobile-dock {max-width:570px;margin:auto;left:12px;right:12px;bottom:max(10px,env(safe-area-inset-bottom));height:69px;border-radius:27px;border-color:rgba(222,221,218,.85);background:rgba(255,255,255,.93);box-shadow:0 5px 30px rgba(33,33,24,.12);padding:5px}
  .dashboard-page.mh-ready .ha-mobile-dock a {font-size:10px;color:#64686d;border-radius:22px;transition:transform 140ms cubic-bezier(.23,1,.32,1),background-color 140ms ease}
  .dashboard-page.mh-ready .ha-mobile-dock a[aria-current=page] {color:#8d6929;background:#f7f1e5}
  .dashboard-page.mh-ready .ha-mobile-dock svg {width:22px;height:22px}
  .dashboard-page.mh-ready .ha-mobile-dock a:active {transform:scale(.96)}
  .dashboard-page.mh-ready .ha-sidebar {background:#fff}
  .dashboard-page.mh-ready .ha-sidebar-head {justify-content:space-between}
  .mh-navigation-close {display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:#f4f4f2;cursor:pointer}
  .mh-navigation-close svg {width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7}
  .dashboard-page.mh-ready .ha-sidebar a[aria-current=page] {background:#f7f1e5;color:#8d6929}
  .dashboard-page.mh-ready .ha-logo svg {stroke:#8d6929}
}
@media(max-width:370px) {
  .mh-hero-copy {left:19px;right:102px}.mh-hero-copy h1 {font-size:26px}.mh-facts{gap:17px}.mh-content{padding-inline:14px}.mh-journey-head{padding-inline:15px}.mh-ring{width:58px;height:58px}.mh-journey-head h2{font-size:19px}.mh-coffee{width:70px}.mh-coffee>svg{width:65px;height:65px}.mh-sheet-scroll{padding-inline:18px}
}
@media(prefers-reduced-motion:reduce) {
  .mobile-home *,.mh-dialog,.mh-dialog *,.mh-dialog::backdrop {animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .mh-confetti {display:none}
  .dashboard-page.mh-ready :is(.ha-mobile-dock,.ha-mobile-dock a,.ha-sidebar,.ha-sidebar-backdrop) {transition:none!important;animation:none!important}
  .dashboard-page.mh-ready :is(.mobile-home,.mh-dialog,.ha-mobile-dock) :is(a,button):active {transform:none!important}
}
body.motion-paused :is(.mobile-home,.mh-dialog) *,body.motion-paused .mh-dialog,body.motion-paused .mh-dialog::backdrop,
body[data-mh-input=keyboard] :is(.mobile-home,.mh-dialog) *,body[data-mh-input=keyboard] .mh-dialog,body[data-mh-input=keyboard] .mh-dialog::backdrop {animation:none!important;transition:none!important}
body.motion-paused .mh-confetti {display:none}
body.dashboard-page.mh-ready:is(.motion-paused,[data-mh-input=keyboard]) :is(.ha-mobile-dock,.ha-mobile-dock a,.ha-sidebar,.ha-sidebar-backdrop) {transition:none!important;animation:none!important}
body.dashboard-page.mh-ready:is(.motion-paused,[data-mh-input=keyboard]) :is(.mobile-home,.mh-dialog,.ha-mobile-dock) :is(a,button):active {transform:none!important}
@media(prefers-reduced-transparency:reduce) {.mh-dialog::backdrop{backdrop-filter:none}.dashboard-page.mh-ready .ha-mobile-dock{background:white;backdrop-filter:none}}
