/* Gtools V361 — desktop browser shell repair.
   Desktop keeps the same drawer model as mobile: the sidebar is hidden until
   the user presses Menu.  Route pages use the full browser canvas. */
@media (min-width: 1024px) and (hover: hover) {
  html:not(.capacitor-android) {
    --desktop-drawer-w: 286px;
    --desktop-v361-header-h: 72px;
    --desktop-v361-bg: #eef2f7;
    --desktop-v361-surface: #ffffff;
    --desktop-v361-border: #dfe6ef;
  }

  html:not(.capacitor-android) body.app-authed {
    display: block !important;
    width: 100vw !important;
    min-width: 0 !important;
    min-height: 100dvh !important;
    overflow: hidden !important;
    background: var(--desktop-v361-bg) !important;
  }

  /* V361: desktop sidebar is a drawer, not permanent navigation. */
  html:not(.capacitor-android) body.app-authed #app-sidebar.app-sidebar,
  html:not(.capacitor-android) body.app-authed #app-sidebar.app-sidebar:not(.open) {
    position: fixed !important;
    inset: 0 auto 0 0 !important;
    width: var(--desktop-drawer-w) !important;
    min-width: var(--desktop-drawer-w) !important;
    max-width: var(--desktop-drawer-w) !important;
    height: 100dvh !important;
    transform: translate3d(-102%,0,0) !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transition: transform .2s ease, opacity .18s ease, visibility 0s linear .2s !important;
    z-index: 5100 !important;
    background: var(--desktop-v361-surface) !important;
    border-right: 1px solid var(--desktop-v361-border) !important;
    box-shadow: 14px 0 42px rgba(15,23,42,.18) !important;
    overflow: hidden !important;
  }
  html:not(.capacitor-android) body.app-authed #app-sidebar.app-sidebar.open {
    transform: translate3d(0,0,0) !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transition: transform .2s ease, opacity .18s ease !important;
  }
  html:not(.capacitor-android) body.app-authed #sidebar-overlay.sidebar-overlay {
    display: block !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    z-index: 5099 !important;
  }
  html:not(.capacitor-android) body.app-authed #sidebar-overlay.sidebar-overlay.open {
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
  html:not(.capacitor-android) body.app-authed .sidebar-close-btn {
    display: inline-grid !important;
  }

  /* The desktop Menu button is always available in the top banner. */
  html:not(.capacitor-android) body.app-authed #mobile-menu-btn {
    display: inline-grid !important;
    place-items: center !important;
    width: 42px !important;
    min-width: 42px !important;
    height: 42px !important;
    min-height: 42px !important;
    margin: 0 !important;
    border: 1px solid var(--desktop-v361-border) !important;
    border-radius: 12px !important;
    background: #fff !important;
    color: #172033 !important;
    box-shadow: 0 2px 8px rgba(15,23,42,.06) !important;
  }

  /* Permanent-sidebar margins from older desktop releases are explicitly removed. */
  html:not(.capacitor-android) body.app-authed #app-main,
  html:not(.capacitor-android) body.app-authed .app-container,
  html:not(.capacitor-android) body.app-authed .app-container.visible {
    position: relative !important;
    inset: auto !important;
    width: 100vw !important;
    max-width: none !important;
    min-width: 0 !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    max-height: 100dvh !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: var(--desktop-v361-bg) !important;
  }

  html:not(.capacitor-android) body.app-authed #app-main > header {
    height: var(--desktop-v361-header-h) !important;
    min-height: var(--desktop-v361-header-h) !important;
    max-height: var(--desktop-v361-header-h) !important;
  }
  html:not(.capacitor-android) body.app-authed #app-main > header .header-top {
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 24px !important;
    display: grid !important;
    grid-template-columns: 42px minmax(0,1fr) auto !important;
    gap: 14px !important;
    align-items: center !important;
  }
  html:not(.capacitor-android) body.app-authed #app-main > header .common-banner-title {
    grid-column: 2 !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  html:not(.capacitor-android) body.app-authed #app-main > header .header-right-panel {
    grid-column: 3 !important;
    justify-self: end !important;
  }

  /* Route canvas: Workout/Food/Habits/Tasks/AI/Reports/Settings all use the
     same full-height, scroll-safe browser surface. */
  html:not(.capacitor-android) body.app-authed #expensePage {
    height: calc(100dvh - var(--desktop-v361-header-h)) !important;
    min-height: 0 !important;
  }
  html:not(.capacitor-android) body.app-authed #expensePage > .main-layout {
    height: 100% !important;
    min-height: 0 !important;
  }
  html:not(.capacitor-android) body.app-authed[data-active-route]:not([data-active-route="home"]) #expensePage .layout-right {
    height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }
  html:not(.capacitor-android) body.app-authed .layout-right > .route-page.route-page-visible,
  html:not(.capacitor-android) body.app-authed #settingsModal.route-page.route-page-visible {
    display: flex !important;
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: auto !important;
    overscroll-behavior: contain !important;
    background: var(--desktop-v361-bg) !important;
  }
  html:not(.capacitor-android) body.app-authed .layout-right > .route-page.route-page-visible > .modal-content,
  html:not(.capacitor-android) body.app-authed #settingsModal.route-page.route-page-visible > .modal-content {
    width: min(100%, 1580px) !important;
    max-width: 1580px !important;
    min-height: 100% !important;
    height: auto !important;
    margin: 0 auto !important;
    padding: 22px 28px 44px !important;
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  /* Explicit desktop availability/layout for all daily health modules. */
  html:not(.capacitor-android) body.app-authed[data-active-route="workout"] #workoutPage.route-page-visible,
  html:not(.capacitor-android) body.app-authed[data-active-route="food"] #foodPage.route-page-visible,
  html:not(.capacitor-android) body.app-authed[data-active-route="habits"] #habitsPage.route-page-visible {
    display: flex !important;
  }
  html:not(.capacitor-android) body.app-authed :is(#workoutPage,#foodPage,#habitsPage) .health-page-shell {
    width: 100% !important;
    max-width: none !important;
    min-height: 100% !important;
    margin: 0 !important;
    padding: 0 0 56px !important;
    overflow: visible !important;
  }
  html:not(.capacitor-android) body.app-authed :is(#workoutPage,#foodPage,#habitsPage) .unified-module-shell {
    width: 100% !important;
    max-width: none !important;
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    gap: 14px !important;
  }
  html:not(.capacitor-android) body.app-authed :is(#workoutPage,#foodPage,#habitsPage) .unified-card-list {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: 14px !important;
  }
  html:not(.capacitor-android) body.app-authed #habitsPage .unified-card-list {
    grid-template-columns: minmax(0,1fr) !important;
  }

  /* Common browser forms/popovers must remain above route canvases and never
     inherit phone-width constraints. */
  html:not(.capacitor-android) body.app-authed .modal:not(.route-page) {
    z-index: 7000 !important;
  }
  html:not(.capacitor-android) body.app-authed .modal:not(.route-page) > .modal-content {
    max-height: min(88dvh, 920px) !important;
    overflow: auto !important;
  }
  html:not(.capacitor-android) body.app-authed :is(input,textarea,select,button) {
    box-sizing: border-box;
  }
}

@media (min-width: 1450px) and (hover: hover) {
  html:not(.capacitor-android) body.app-authed :is(#workoutPage,#foodPage) .unified-card-list {
    grid-template-columns: repeat(3,minmax(0,1fr)) !important;
  }
}

/* V361 Tasks desktop contract: older Tasks reference CSS deliberately made the
   app sidebar permanent and offset the Tasks canvas by ~316px.  Keep the Tasks
   page's own internal list navigation, but return the global Gtools sidebar to
   the same click-to-open drawer used by every other browser route. */
@media (min-width: 1024px) and (hover: hover) {
  html:not(.capacitor-android) body.app-authed[data-active-route="tasks"] #app-sidebar.app-sidebar,
  html:not(.capacitor-android) body.app-authed[data-active-route="tasks"] #app-sidebar.app-sidebar:not(.open) {
    position: fixed !important;
    inset: 0 auto 0 0 !important;
    width: var(--desktop-drawer-w) !important;
    min-width: var(--desktop-drawer-w) !important;
    max-width: var(--desktop-drawer-w) !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    padding: 0 !important;
    border-radius: 0 !important;
    transform: translate3d(-102%,0,0) !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    background: var(--desktop-v361-surface) !important;
    border: 0 !important;
    border-right: 1px solid var(--desktop-v361-border) !important;
    box-shadow: 14px 0 42px rgba(15,23,42,.18) !important;
    transition: transform .2s ease, opacity .18s ease, visibility 0s linear .2s !important;
  }
  html:not(.capacitor-android) body.app-authed[data-active-route="tasks"] #app-sidebar.app-sidebar.open {
    inset: 0 auto 0 0 !important;
    width: var(--desktop-drawer-w) !important;
    min-width: var(--desktop-drawer-w) !important;
    max-width: var(--desktop-drawer-w) !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    padding: 0 !important;
    border-radius: 0 !important;
    transform: translate3d(0,0,0) !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    background: var(--desktop-v361-surface) !important;
    border: 0 !important;
    border-right: 1px solid var(--desktop-v361-border) !important;
    box-shadow: 14px 0 42px rgba(15,23,42,.18) !important;
  }
  html:not(.capacitor-android) body.app-authed[data-active-route="tasks"] #tasksPage.tasks-route-page:not(.tasks-desktop-fullscreen-page) {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
  }
  html:not(.capacitor-android) body.app-authed[data-active-route="tasks"] #tasksPage .tasks-page-content {
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    margin: 0 !important;
  }
}
