@import url(https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400&family=DM+Sans:wght@300;400;500&display=swap);

.bottom-nav {
  display: flex;
  align-items: center;
  height: var(--an-nav-h);
  background: var(--an-white);
  border-top: 1px solid var(--an-gray-100);
  padding: 0 8px;
  box-shadow: 0 -6px 20px rgba(0,0,0,.06);
  z-index: 100;
  flex-shrink: 0;
  width: 100%;
}
.nav-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  padding: 6px 4px;
  text-decoration: none;
  color: var(--an-gray-400, #9CA3AF);
  transition: color .15s;
}
.nav-item.active { color: var(--an-green);
}
.nav-icon { width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; font-size: 18px;
}
.nav-label { font-family: var(--an-font); font-size: 10px; font-weight: 600;
}
.nav-pip { display: block; width: 4px; height: 4px; border-radius: 50%; background: var(--an-green);
}
.nav-item--logout {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  padding: 6px 4px;
  cursor: pointer;
  color: var(--an-red, #E53935);
}

/* MOBILE: fixed */
@media (max-width: 767px) {
.bottom-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
}
}

/* DESKTOP: static inside flex column */
@media (min-width: 768px) {
.bottom-nav {
    position: static;
    border-radius: 0 0 36px 36px;
}
}

:root {
  --an-green:      #2E7D5A;
  --an-green-lt:   #E8F5EE;
  --an-green-dk:   #1A5C3E;
  --an-green-mid:  #3EA272;
  --an-amber:      #F5A623;
  --an-amber-lt:   #FFF4E0;
  --an-red:        #E53935;
  --an-red-lt:     #FEECEC;
  --an-gray-900:   #111827;
  --an-gray-700:   #374151;
  --an-gray-500:   #6B7280;
  --an-gray-300:   #D1D5DB;
  --an-gray-200:   #E5E7EB;
  --an-gray-100:   #F3F4F6;
  --an-gray-50:    #F9FAFB;
  --an-white:      #FFFFFF;
  --an-cream:      #FAFAF7;
  --an-r-sm:       10px;
  --an-r:          16px;
  --an-r-lg:       24px;
  --an-sh-sm:      0 1px 4px rgba(0,0,0,.07);
  --an-sh:         0 4px 20px rgba(0,0,0,.10);
  --an-sh-lg:      0 12px 40px rgba(0,0,0,.14);
  --an-nav-h:      68px;
  --an-font:       'Plus Jakarta Sans', sans-serif;
  --an-font-body:  'DM Sans', sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }

html, body {
  font-family: var(--an-font-body);
  background: var(--an-gray-50);
  color: var(--an-gray-900);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

::-webkit-scrollbar { width: 0; height: 0; }
* { scrollbar-width: none; }

// ── Vuetify overrides ──
.v-application {
  font-family: var(--an-font-body) !important;
  background: var(--an-cream) !important;
}

.v-btn { font-family: var(--an-font) !important; text-transform: none !important; letter-spacing: 0 !important; }

// ── Shared page wrapper ──
.page-view {
  padding: 0;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  background: var(--an-cream);
}
/* ── PHONE FRAME LAYOUT ── */
html {
  min-height: 100%;
}

body {
  min-height: 100vh;
}

#app {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.v-application {
  width: 100% !important;
  background: var(--an-cream) !important;
}

/* ── MOBILE: full screen ── */
@media (max-width: 767px) {
  body { background: var(--an-cream) !important; }
  #app { display: block; }
  .v-application {
    max-width: 100% !important;
    min-height: 100vh !important;
    box-shadow: none !important;
    border-radius: 0 !important;
  }
  .bottom-nav {
    position: fixed !important;
    bottom: 0 !important; left: 0 !important; right: 0 !important;
    width: 100% !important;
    transform: none !important;
  }
  .wa-fab {
    position: fixed !important;
    bottom: calc(var(--an-nav-h) + 16px) !important;
    right: 16px !important;
  }
}
/* ── VUETIFY HEIGHT FIX ── */
.v-application__wrap {
  display: flex !important;
  flex-direction: column !important;
  min-height: 100% !important;
  height: 100% !important;
}

/* ── DESKTOP: phone frame centered ── */
@media (min-width: 768px) {
  body {
    background: #E8EDF5 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 100vh !important;
    padding: 20px !important;
  }

  .v-application {
    width: 375px !important;
    max-width: 375px !important;
    height: 812px !important;
    border-radius: 50px !important;
    box-shadow:
      0 0 0 12px #1a1a1a,
      0 0 0 14px #2a2a2a,
      0 40px 80px rgba(0,0,0,.4) !important;
    overflow: hidden !important;
    position: relative !important;
  }

  .v-application::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: 120px !important;
    height: 30px !important;
    background: #1a1a1a !important;
    border-radius: 0 0 20px 20px !important;
    z-index: 9999 !important;
  }

  .v-application .v-application__wrap {
    height: 812px !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
  }

  .app-layout {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    min-height: 0 !important;
  }

  .app-layout__content {
    flex: 1 !important;
    overflow-y: auto !important;
    min-height: 0 !important;
    padding-bottom: 0 !important;
  }

  .bottom-nav {
    flex-shrink: 0 !important;
    border-radius: 0 0 36px 36px !important;
  }

  .wa-fab {
    position: absolute !important;
    bottom: calc(var(--an-nav-h) + 16px) !important;
    right: 16px !important;
    animation: none !important;
  }
}


.app-layout {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  background: var(--an-cream);
}
.app-layout__content {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  min-height: 0;
  scrollbar-width: none;
}
.app-layout__content::-webkit-scrollbar { display: none;
}
@media (max-width: 767px) {
.app-layout { min-height: 100vh;
}
.app-layout__content { padding-bottom: var(--an-nav-h);
}
}

