/*
  Device tiers (industry standard)
  - Phone:   < 640px
  - Tablet:  640px - 1023px
  - Desktop: 1024px - 1439px
  - XL:      >= 1440px
*/

.dashboard-shell {
  width: 100%;
}

.dashboard-topbar,
.dashboard-sidebar-toggle,
.dashboard-sidebar-overlay,
.dashboard-convos-toggle,
.dashboard-convos-overlay,
.dashboard-pane-back,
.dashboard-convos-back-wrap,
.dashboard-mobile-brand {
  display: none;
}

@media (max-width: 1279px) {
  :root {
    --dashboard-topbar-height: 3rem;
  }

  .dashboard-page {
    padding-top: var(--dashboard-topbar-height);
  }

  .dashboard-page.h-screen {
    height: auto !important;
    min-height: 100dvh;
  }

  .dashboard-shell {
    position: relative;
    min-height: calc(100dvh - var(--dashboard-topbar-height));
  }

  .inbox-shell {
    height: calc(100dvh - var(--dashboard-topbar-height)) !important;
  }

  .dashboard-topbar {
    display: flex;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: var(--dashboard-topbar-height);
    align-items: center;
    gap: 0.5rem;
    padding: 0 0.75rem;
    background: var(--theme-panel-bg);
    border-bottom: 1px solid var(--theme-panel-border);
    z-index: 75;
  }

  .dashboard-sidebar {
    position: fixed;
    left: 0;
    top: var(--dashboard-topbar-height);
    bottom: 0;
    width: min(17rem, 86vw) !important;
    border-right: 1px solid var(--theme-panel-border);
    border-bottom: 0;
    transform: translateX(-110%);
    transition: transform 0.2s ease-out;
    z-index: 60;
    background: var(--theme-panel-bg) !important;
    backdrop-filter: none !important;
  }

  body.dashboard-sidebar-open .dashboard-sidebar {
    transform: translateX(0);
  }

  .dashboard-sidebar-overlay {
    display: block;
    position: fixed;
    top: var(--dashboard-topbar-height);
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--theme-overlay-strong);
    backdrop-filter: blur(1px);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.15s ease-out;
    z-index: 50;
  }

  body.dashboard-sidebar-open .dashboard-sidebar-overlay {
    opacity: 1;
    pointer-events: auto;
  }

  .dashboard-sidebar-toggle {
    position: relative;
    width: 2.25rem;
    height: 2.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.6rem;
    border: 1px solid var(--theme-control-border);
    background: var(--theme-control-bg);
    color: var(--theme-control-text);
  }

  .dashboard-sidebar-toggle:hover {
    background: var(--theme-control-bg-hover);
  }

  .dashboard-mobile-brand {
    position: relative;
    width: 2.25rem;
    height: 2.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.6rem;
    border: 1px solid var(--theme-control-border);
    background: var(--theme-control-bg);
  }

  .dashboard-mobile-brand img {
    width: 1.4rem;
    height: 1.4rem;
  }

  .dashboard-pane-back {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.4rem 0.7rem;
    margin: 0 0.7rem 0.8rem;
    border: 1px solid var(--theme-control-border);
    border-radius: 0.6rem;
    background: var(--theme-control-bg);
    color: var(--theme-control-text);
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 600;
  }

  .dashboard-pane-back:hover {
    background: var(--theme-control-bg-hover);
  }

  .dashboard-main {
    width: 100%;
    min-width: 0;
  }

  .dashboard-content {
    max-width: none !important;
    padding: 1rem !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

@media (max-width: 1023px) {
  .dashboard-convos-overlay {
    display: block;
    position: fixed;
    top: var(--dashboard-topbar-height);
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--theme-overlay-soft);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.15s ease-out;
    z-index: 52;
  }

  body.dashboard-convos-open .dashboard-convos-overlay {
    opacity: 1;
    pointer-events: auto;
  }

  .dashboard-page-inbox .dashboard-convos-toggle {
    position: relative;
    width: 2.25rem;
    height: 2.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.6rem;
    border: 1px solid var(--theme-control-border);
    background: var(--theme-control-bg);
    color: var(--theme-control-text);
  }

  .dashboard-page-inbox .dashboard-convos-toggle:hover {
    background: var(--theme-control-bg-hover);
  }

  .dashboard-convos-back-wrap {
    display: block;
    padding: 0.7rem 0.7rem 0;
    border-bottom: 1px solid var(--theme-panel-border);
  }

  .dashboard-convos-back-wrap .dashboard-pane-back {
    margin: 0 0 0.7rem;
  }

  .dashboard-page-inbox .dashboard-client-pane {
    position: fixed;
    left: 0;
    top: var(--dashboard-topbar-height);
    bottom: 0;
    width: min(22rem, 92vw) !important;
    max-width: 22rem;
    transform: translateX(-110%);
    transition: transform 0.2s ease-out;
    z-index: 55;
    border-right: 1px solid var(--theme-panel-border);
    background: var(--theme-panel-bg) !important;
    backdrop-filter: none !important;
  }

  body.dashboard-page-inbox.dashboard-convos-open .dashboard-client-pane {
    transform: translateX(0);
  }
}

@media (max-width: 639px) {
  .dashboard-shell {
    min-height: 100dvh;
  }

  .dashboard-content .grid.grid-cols-2 {
    grid-template-columns: 1fr !important;
  }

  .dashboard-content .flex.items-start.justify-between,
  .dashboard-content .flex.items-center.justify-between {
    flex-wrap: wrap;
    gap: 0.75rem;
  }

  .dashboard-toast {
    left: 1rem;
    right: 1rem;
    bottom: 1rem !important;
  }

  .dashboard-toast > * {
    width: 100%;
  }

  .dashboard-login-shell {
    padding: 1.25rem;
  }

  .dashboard-login-card {
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
  }

  .dashboard-tab-strip {
    gap: 1rem !important;
    overflow-x: auto;
    white-space: nowrap;
    padding-bottom: 0.25rem;
  }

  .inbox-shell {
    min-height: 100dvh;
  }
}

@media (min-width: 640px) and (max-width: 1023px) {
  .dashboard-content {
    max-width: none !important;
    padding: 1.5rem !important;
  }

  .dashboard-tab-strip {
    overflow-x: auto;
    white-space: nowrap;
  }
}

@media (min-width: 1024px) and (max-width: 1439px) {
  .dashboard-sidebar {
    width: 14rem !important;
  }

  .dashboard-content {
    padding: 2rem !important;
  }

  .inbox-shell .dashboard-client-pane {
    width: 19rem !important;
  }
}

@media (min-width: 1440px) {
  .dashboard-sidebar {
    width: 16rem !important;
  }

  .dashboard-content {
    max-width: 72rem !important;
    padding: 2.5rem !important;
  }

  .inbox-shell .dashboard-client-pane {
    width: 22rem !important;
  }
}
