/* SawaLife Minimal — mobile layer (loaded LAST, after every other minimal/*.css).
   1. Header + menu sheet polish (thumb-sized targets, safe areas)
   2. Global search (.gs) — centred panel ≥768px, full-screen sheet below
   3. Bottom app bar (.sawalife-mobile-app-nav) — CSS only, markup owned elsewhere
   4. Mobile popups (<768px): EVERY modal/dialog becomes a full-screen page
   Colours come from tokens.css only. */

/* ============ 1. header + menu sheet ============ */
@media (max-width:1023px){
  .mn-header .mn-iconbtn{width:2.75rem;height:2.75rem}
  .mn-header .mn-mobonly{border-color:var(--mn-line-2)}
}
.mn-sheet{background:var(--mn-bg)}
.mn-sheet::backdrop{background:var(--mn-bg)}
.mn-sheet__head{position:sticky;top:0;z-index:2;height:auto;min-height:var(--mn-hh);padding:env(safe-area-inset-top) max(var(--mn-gut),env(safe-area-inset-right)) 0 max(var(--mn-gut),env(safe-area-inset-left));background:var(--mn-bg)}
.mn-sheet__head .mn-iconbtn{border:1px solid var(--mn-line-2)}
.mn-sheet__head .mn-iconbtn:hover{border-color:var(--mn-ink)}
.mn-sheet__body{padding-inline:max(var(--mn-gut),env(safe-area-inset-left)) max(var(--mn-gut),env(safe-area-inset-right));gap:var(--mn-s3)}
.mn-sheet .mn-sheet__search{min-height:3.25rem;padding-left:1.1rem;background:var(--mn-surface);border-color:var(--mn-line-2);box-shadow:none;color:var(--mn-mute);text-align:left;font:inherit}
.mn-sheet .mn-sheet__search i{width:2.5rem;height:2.5rem;background:var(--mn-brand-d);color:var(--mn-on-brand)}
.mn-acc>summary,.mn-acc--link{min-height:3.5rem;color:var(--mn-ink);-webkit-tap-highlight-color:transparent}
.mn-acc>summary:active,.mn-acc--link:active,.mn-acc__list a:active,.mn-sheet__langs a:active{background:var(--mn-soft)}
.mn-acc .mn-mi__i{display:inline-grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:50%;background:var(--mn-brand-l);color:var(--mn-brand-ink)}
.mn-acc .mn-mi__i .mn-i{width:1.2rem;height:1.2rem}
.mn-acc__body{padding-left:3.4rem}
.mn-acc__list a{min-height:2.75rem}
.mn-acc__list a .mn-i{color:var(--mn-brand-ink)}
.mn-sheet__acts .mn-btn{min-height:3rem}
.mn-sheet__langs a{min-height:2.75rem}
@media (prefers-reduced-motion:no-preference){
  .mn-sheet[open]{animation:mn-page-in .32s var(--mn-ease-out)}
}

/* ============ 2. global search ============ */
html.gs-open{overflow:hidden}
.gs{position:fixed;inset:0;z-index:9999;display:flex;align-items:flex-start;justify-content:center;padding:clamp(1.5rem,8vh,5rem) 1.5rem 1.5rem;font-family:var(--mn-font);color:var(--mn-text)}
.gs[x-cloak]{display:none}
.gs__backdrop{position:fixed;inset:0;background:rgb(var(--mn-scrim-rgb)/45%)}
.gs__panel{position:relative;display:flex;flex-direction:column;width:100%;max-width:42rem;max-height:min(40rem,calc(100dvh - 3rem));overflow:hidden;background:var(--mn-bg);border:1px solid var(--mn-line);border-radius:var(--mn-r-lg);box-shadow:var(--mn-sh-lg)}
@media (prefers-reduced-motion:no-preference){.gs__panel{animation:mn-pop-in .24s var(--mn-ease-out)}}
.gs__ico{width:1.25rem;height:1.25rem;flex:none}
.gs__bar{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:.5rem;padding:.75rem;border-bottom:1px solid var(--mn-line);background:var(--mn-bg)}
.gs__field{position:relative;display:flex;align-items:center;flex:1;min-width:0;min-height:3rem;padding:0 .25rem 0 .9rem;gap:.6rem;background:var(--mn-surface);border:1px solid var(--mn-line-2);border-radius:var(--mn-r-pill);transition:border-color .15s,box-shadow .15s}
.gs__field:focus-within{border-color:var(--mn-brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--mn-brand) 18%,transparent)}
.gs__ico--search{color:var(--mn-mute)}
.gs .gs__input{flex:1;min-width:0;height:2.875rem;padding:0;border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;font:500 16px/1.2 var(--mn-font);color:var(--mn-ink)!important;-webkit-appearance:none;appearance:none}
.gs .gs__input::placeholder{color:var(--mn-mute);opacity:1}
.gs .gs__input::-webkit-search-cancel-button{display:none}
.gs__clear,.gs__back{display:inline-grid;place-items:center;flex:none;width:2.75rem;height:2.75rem;padding:0;border:0;border-radius:50%;background:transparent;color:var(--mn-mute);cursor:pointer}
.gs__clear:hover,.gs__back:hover{background:var(--mn-soft);color:var(--mn-ink)}
@media (min-width:768px){.gs .gs__back{display:none}}
.gs__esc{display:inline-grid;place-items:center;flex:none;min-width:2.75rem;height:2.75rem;padding:0;border:0;background:transparent;cursor:pointer}
.gs kbd{display:inline-grid;place-items:center;min-width:1.5rem;height:1.5rem;padding:0 .35rem;border:1px solid var(--mn-line-2);border-radius:6px;background:var(--mn-surface);font:600 .72rem/1 var(--mn-font);color:var(--mn-mute)}
.gs__chips{display:flex;gap:.5rem;overflow-x:auto;scrollbar-width:none;padding:.6rem .75rem;border-bottom:1px solid var(--mn-line);background:var(--mn-bg);flex:none}
.gs__chips::-webkit-scrollbar{display:none}
.gs__chip{display:inline-flex;align-items:center;gap:.4rem;flex:none;min-height:2.5rem;padding:0 .9rem;border:1px solid var(--mn-line-2);border-radius:var(--mn-r-pill);background:transparent;color:var(--mn-text);font:500 .875rem var(--mn-font);cursor:pointer;white-space:nowrap}
.gs__chip span{font-size:.75rem;color:var(--mn-mute);font-variant-numeric:tabular-nums}
.gs__chip:hover{border-color:var(--mn-ink)}
.gs__chip[aria-pressed=true]{background:var(--mn-ink);border-color:var(--mn-ink);color:var(--mn-bg)}
.gs__chip[aria-pressed=true] span{color:inherit;opacity:.75}
.gs__body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:.5rem .75rem 1rem}
.gs__kicker{margin:.75rem .5rem .25rem;font-size:.75rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--mn-brand-ink)}
.gs__sec{padding-top:.5rem}
.gs__sec+.gs__sec{margin-top:.25rem;border-top:1px solid var(--mn-line)}
.gs__sec-h{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:2.25rem;padding:0 .5rem}
.gs__sec-h h3{margin:0;font-size:.8125rem;font-weight:600;color:var(--mn-mute)}
.gs__count{font-size:.75rem;color:var(--mn-mute);font-variant-numeric:tabular-nums}
.gs__textbtn{min-height:2.75rem;padding:0;border:0;background:none;font:500 .8125rem var(--mn-font);color:var(--mn-brand-ink);cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,var(--mn-brand) 40%,transparent)}
.gs__list,.gs__recent{list-style:none;margin:0;padding:0}
.gs__recent{display:flex;flex-wrap:wrap;gap:.5rem;padding:.25rem .5rem .75rem}
.gs__recent-b{display:inline-flex;align-items:center;gap:.45rem;min-height:2.5rem;padding:0 .9rem;border:1px solid var(--mn-line);border-radius:var(--mn-r-pill);background:transparent;color:var(--mn-ink);font:500 .875rem var(--mn-font);cursor:pointer}
.gs__recent-b .gs__ico{width:1rem;height:1rem;color:var(--mn-mute)}
.gs__recent-b:hover{border-color:var(--mn-ink)}
.gs__item{display:flex;align-items:center;gap:.85rem;min-height:3.5rem;padding:.6rem .5rem;border-radius:var(--mn-r);color:var(--mn-ink);text-decoration:none;-webkit-tap-highlight-color:transparent;transition:background-color .12s}
.gs__item:hover,.gs__item.is-active,.gs__item:focus-visible{background:var(--mn-soft);outline:0}
.gs__item.is-active{box-shadow:inset 2px 0 0 var(--mn-brand)}
.gs__item-i{display:inline-grid;place-items:center;flex:none;width:2.5rem;height:2.5rem;border-radius:50%;background:var(--mn-brand-l);color:var(--mn-brand-ink)}
.gs__item-t{display:grid;flex:1;min-width:0;gap:.1rem}
.gs__item-t b{font-size:.95rem;font-weight:600;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gs__item-t small{font-size:.8125rem;line-height:1.35;color:var(--mn-mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gs__badge{flex:none;padding:.15rem .55rem;border:1px solid var(--mn-line-2);border-radius:var(--mn-r-pill);font-size:.6875rem;font-weight:600;color:var(--mn-mute);white-space:nowrap}
.gs__item-go{width:1rem;height:1rem;color:var(--mn-mute);transition:transform .2s var(--mn-ease),color .2s}
.gs__item:hover .gs__item-go,.gs__item.is-active .gs__item-go{color:var(--mn-brand-ink);transform:translateX(2px)}
.gs__empty{display:grid;justify-items:center;gap:.4rem;padding:3rem 1rem;text-align:center}
.gs__empty-i{display:inline-grid;place-items:center;width:3rem;height:3rem;margin-bottom:.4rem;border-radius:50%;border:1px solid var(--mn-line-2);color:var(--mn-mute)}
.gs__empty-t{margin:0;font-size:.95rem;font-weight:600;color:var(--mn-ink)}
.gs__empty-d{margin:0;max-width:24rem;font-size:.875rem;line-height:1.5;color:var(--mn-mute)}
.gs__foot{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;padding:.6rem 1rem;border-top:1px solid var(--mn-line);font-size:.75rem;color:var(--mn-mute);flex:none}
.gs__foot span{display:inline-flex;align-items:center;gap:.3rem}
.gs :is(button,a):focus-visible{outline:2px solid var(--mn-brand);outline-offset:2px}
@media (max-width:767px){
  .gs{padding:0;align-items:stretch}
  .gs__backdrop{background:var(--mn-bg)}
  .gs__panel{max-width:none;max-height:none;height:100dvh;border:0;border-radius:0;box-shadow:none}
  @media (prefers-reduced-motion:no-preference){.gs__panel{animation:mn-page-in .3s var(--mn-ease-out)}}
  .gs__bar{padding:calc(.5rem + env(safe-area-inset-top)) max(.5rem,env(safe-area-inset-right)) .5rem max(.25rem,env(safe-area-inset-left))}
  .gs__back{display:inline-grid;color:var(--mn-ink)}
  .gs__esc,.gs__foot{display:none}
  .gs__body{padding:.25rem .5rem calc(2rem + env(safe-area-inset-bottom))}
  .gs__item{min-height:3.75rem}
  .gs__badge{display:none}
}

/* ============ 3. bottom app bar (<1024px) ============ */
@media (max-width:1023px){
  .sawalife-mobile-app-nav{display:grid!important;position:fixed!important;z-index:60;grid-template-columns:repeat(var(--dsh-tabs,5),minmax(0,1fr))!important;padding-bottom:env(safe-area-inset-bottom);left:0!important;right:0!important;bottom:0!important;border-radius:0!important;border:0!important;border-top:1px solid var(--mn-line)!important;background:color-mix(in srgb,var(--mn-bg) 92%,transparent)!important;box-shadow:none!important;-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);padding:.25rem max(.5rem,env(safe-area-inset-right)) calc(.25rem + env(safe-area-inset-bottom)) max(.5rem,env(safe-area-inset-left))!important;min-height:0!important}
  .sawalife-mobile-app-nav-link{position:relative;min-height:3.25rem;border-radius:var(--mn-r-sm);color:var(--mn-mute)!important;font-weight:600;font-family:var(--mn-font);-webkit-tap-highlight-color:transparent}
  .sawalife-mobile-app-nav-link:hover,.sawalife-mobile-app-nav-link.is-active{background:none!important;color:var(--mn-ink)!important}
  .sawalife-mobile-app-nav-link.is-active svg{color:var(--mn-brand)!important}
  .sawalife-mobile-app-nav-link.is-active::before{content:"";position:absolute;top:-.25rem;left:32%;right:32%;height:2px;border-radius:2px;background:var(--mn-brand)}
  .sawalife-mobile-app-nav-link:active{background:var(--mn-soft)!important}
  .sawalife-mobile-app-nav-link:focus-visible{outline:2px solid var(--mn-brand);outline-offset:-2px}
  html:is(.mn-sheet-open,.gs-open) .sawalife-mobile-app-nav{visibility:hidden}
}

/* ============ 4. popups → full-screen pages on mobile ============ */
@keyframes mn-page-in{from{opacity:.6;transform:translateY(28px)}}
@keyframes mn-pop-in{from{opacity:0;transform:translateY(8px) scale(.985)}}

@media (max-width:767px){
  /* 4a. info dialogs (.dlg): full-screen rules live in dialogs.css */
  .dlg .dlg__foot{position:sticky;bottom:0}

  /* 4b. every other native <dialog> (news, scam report, shop manager, filters…) except the menu sheet and image lightboxes */
  html body dialog[open]:not(.dlg):not(.mn-sheet):not(.mn-lb):not(.sawalife-mobile-menu-dialog):not(#_d):not(#_e){
    position:fixed!important;inset:0!important;width:100%!important;max-width:none!important;height:100dvh!important;max-height:100dvh!important;
    margin:0!important;padding:env(safe-area-inset-top) env(safe-area-inset-right) 0 env(safe-area-inset-left)!important;
    border:0!important;border-radius:0!important;box-shadow:none!important;background:var(--mn-bg)!important;color:var(--mn-text);
    display:flex!important;flex-direction:column;overflow:hidden!important;transform:none;
  }
  html body dialog[open]:not(.dlg):not(.mn-sheet):not(.mn-lb):not(.sawalife-mobile-menu-dialog):not(#_d):not(#_e)::backdrop{background:var(--mn-bg)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
  html body dialog[open]:not(.dlg):not(.mn-sheet):not(.mn-lb):not(.sawalife-mobile-menu-dialog):not(#_d):not(#_e)>:only-child,
  html body dialog[open]:not(.dlg):not(.mn-sheet):not(.mn-lb):not(.sawalife-mobile-menu-dialog):not(#_d):not(#_e)>:is(form,div):first-child:last-child{
    flex:1 1 auto;width:100%!important;max-width:none!important;height:100%!important;min-height:0;max-height:none!important;
    border:0!important;border-radius:0!important;box-shadow:none!important;overflow-y:auto;overscroll-behavior:contain;
  }
  @media (prefers-reduced-motion:no-preference){
    html body dialog[open]:not(.dlg):not(.mn-sheet):not(.mn-lb):not(.sawalife-mobile-menu-dialog):not(#_d):not(#_e){animation:mn-page-in .3s var(--mn-ease-out)!important}
  }

  /* 4c. Alpine/Livewire overlays: fixed full-viewport wrapper with role=dialog (questionnaires, auth, install, beta…)
         → wrapper loses its padding, the panel fills the screen */
  :is([role=dialog],[aria-modal=true])[class*="fixed"][class*="inset-0"]:not(.sawalife-mobile-menu-dialog):not(.gs):not([data-cookie-consent-banner]):not(:has(img:only-child)){
    padding:0!important;align-items:stretch!important;justify-content:stretch!important;overflow:hidden!important;
  }
  :is([role=dialog],[aria-modal=true])[class*="fixed"][class*="inset-0"]:not(.sawalife-mobile-menu-dialog):not(.gs):not([data-cookie-consent-banner]):not(:has(img:only-child))
    >:is(div,section,form):not([class*="fixed"]):not(.mf-dlg__backdrop):not(.contents):not(template):not(#_m):not(#_n),
  .mf-dlg__panel:not(#_m):not(#_n),
  .mf-auth__frame>.mf-dlg__panel:not(#_m):not(#_n){
    position:relative;width:100%!important;max-width:none!important;height:100dvh!important;min-height:100dvh!important;max-height:100dvh!important;margin:0!important;
    border:0!important;border-radius:0!important;box-shadow:none!important;background:var(--mn-bg)!important;
    display:flex;flex-direction:column;overflow-y:auto!important;overscroll-behavior:contain;
    padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);
  }
  .mf-dlg__panel--pad{padding:calc(1.25rem + env(safe-area-inset-top)) 1.25rem calc(1.25rem + env(safe-area-inset-bottom))!important}
  .mf-auth__frame{min-height:100dvh!important;padding:0!important;align-items:stretch!important}
  .mf-overlay,.mf-dlg__backdrop{background:var(--mn-bg)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
  @media (prefers-reduced-motion:no-preference){
    .mf-dlg__panel,:is([role=dialog],[aria-modal=true])[class*="fixed"][class*="inset-0"]:not(.sawalife-mobile-menu-dialog):not(.gs):not([data-cookie-consent-banner])>:is(div,section,form):not([class*="fixed"]):not(.mf-dlg__backdrop){animation:mn-page-in .3s var(--mn-ease-out)!important}
  }
  .mf-dlg__handle,.nw-sheet__head::before,.nw-sheet::before{display:none!important}
  .nw-sheet__in{display:flex;flex-direction:column;min-height:100%}
  .nw-sheet__in>form{flex:1;display:flex;flex-direction:column}
  .nw-sheet__foot{margin-top:auto!important}

  /* shared anatomy inside full-screen popups: the first header row sticks, close/back buttons are 44px,
     the last action row sticks to the bottom above the home indicator */
  :is(dialog[open]:not(.dlg):not(.mn-sheet):not(.mn-lb),.mf-dlg__panel,[role=dialog][class*="fixed"][class*="inset-0"]>div:not([class*="fixed"])) :is(.mf-dlg__headrow,.nw-dialog__bar,.nw-sheet__head){
    position:sticky;top:0;z-index:3;background:var(--mn-bg)}
  :is(dialog[open]:not(.mn-sheet):not(.mn-lb),.mf-dlg__panel,[role=dialog]) button:is([aria-label*="lose" i],[aria-label*="ermer" i],[data-news-dialog-close],.mf-dlg__close,.dlg__x){min-width:2.75rem;min-height:2.75rem}
  .mf-dlg__close{position:sticky!important;top:calc(.5rem + env(safe-area-inset-top))!important;margin:.5rem .5rem 0 auto;flex:none;align-self:flex-end}
  :is(dialog[open]:not(.dlg):not(.mn-sheet):not(.mn-lb),.mf-dlg__panel) :is(.mf-dlg__actions,.nw-sheet__foot,.nw-dialog__foot){
    position:sticky;bottom:0;z-index:3;margin-top:auto;padding:.75rem 0 calc(.75rem + env(safe-area-inset-bottom));background:var(--mn-bg);border-top:1px solid var(--mn-line)}
}

/* bottom app bar is mobile/tablet only: never leak on desktop, even when Tailwind utilities are not loaded */
@media (min-width:1024px){
  .sawalife-mobile-app-nav{display:none!important}
}
