/* Phone-first kit hosted with the app. Sizes use rem so 150% browser zoom stays readable.
   Tap targets on the sign-in screen and the dashboard chrome are at least 48px. */

html {
  font-size: 100%;
}

body {
  font-size: 1rem;
  line-height: 1.5;
}

#auth-view {
  padding: 1rem;
}

#auth-view button,
#auth-view input,
#auth-view a,
#app-view header button,
#app-view header select,
#app-view header input,
#app-view header a,
#sidebar nav a,
#sidebar nav button,
#sidebar nav > span,
#schedule-screen button,
#schedule-screen a,
#schedule-screen input,
#schedule-screen select,
#accounts-screen button,
#accounts-screen a,
#accounts-screen input,
#accounts-screen select,
#company-status {
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  min-height: 48px;
  min-width: 48px;
  font-size: 1rem;
  line-height: 1.4;
}

#sidebar nav a,
#sidebar nav button,
#sidebar nav > span {
  display: flex;
  width: 100%;
}

.phone-screen button,
.phone-screen input,
.phone-screen a,
.phone-screen select {
  box-sizing: border-box;
  min-height: 48px;
  font-size: 1rem;
}

#auth-view input,
#app-view header select,
#app-view header input {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

#company-status {
  margin: 0;
  padding: 0.75rem 1rem;
}

:root {
  --brand-primary: #4f46e5;
  --brand-secondary: #334155;
}

#brand-mark {
  color: var(--brand-primary);
}

#brand-nav {
  min-height: 48px;
  min-width: 48px;
  font-size: 1rem;
}

/* Grid items shrink to the screen. Wide tables scroll inside their own card. */
#main .grid > * {
  min-width: 0;
  max-width: 100%;
}

@media (max-width: 360px) {
  #auth-view,
  #app-view header,
  #main {
    max-width: 100%;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }

  #main {
    overflow-x: auto;
  }

  #app-view header .flex {
    flex-wrap: wrap;
    gap: 0.5rem;
    max-width: 100%;
  }

  #app-view header select {
    max-width: 100%;
  }

  #toast {
    left: 0.75rem;
    right: 0.75rem;
    width: auto;
    max-width: none;
  }
}
