/*
 * Foundation's stylesheet: design tokens, the host shell, and the sign-in pages.
 * Each track keeps its own rules in its own file (host.css, rsvp.css, envelope.css).
 * Rules: docs/conventions/css.md#rules
 */

:root {
  /* 100% is 16px: Bootstrap's 1rem inputs stay at 16px, so iOS Safari never zooms on focus. */
  font-size: 100%;

  --ev-gutter: 1rem;
  --ev-tap-min: 44px;
  --ev-measure: 48rem;
  --ev-measure-wide: 72rem;
}

/* ev-shell: the host layout's chrome. Safe-area aware for the installed PWA. */

.ev-shell {
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
}

.ev-shell__header {
  position: sticky;
  top: 0;
  z-index: 1020;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-height: 3.5rem;
  padding-top: calc(0.5rem + env(safe-area-inset-top));
  padding-bottom: 0.5rem;
  padding-left: max(var(--ev-gutter), env(safe-area-inset-left));
  padding-right: max(var(--ev-gutter), env(safe-area-inset-right));
  background: var(--bs-body-bg);
  border-bottom: var(--bs-border-width) solid var(--bs-border-color);
}

.ev-shell__brand {
  display: inline-flex;
  align-items: center;
  min-height: var(--ev-tap-min);
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--bs-body-color);
  text-decoration: none;
}

.ev-shell__actions {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

/* 44px tall with 1rem text and Bootstrap's 1px borders. */
.ev-shell__action {
  --bs-btn-padding-y: 0.5625rem;
}

.ev-shell__main {
  flex: 1;
  width: 100%;
  max-width: var(--ev-measure);
  margin-inline: auto;
  padding-top: 1.5rem;
  padding-bottom: calc(2rem + env(safe-area-inset-bottom));
  padding-left: max(var(--ev-gutter), env(safe-area-inset-left));
  padding-right: max(var(--ev-gutter), env(safe-area-inset-right));

  @media (min-width: 768px) {
    padding-top: 2.5rem;
  }
}

/* For wide host screens such as the dashboard: content_for :main_modifier, "ev-shell__main--wide" */
.ev-shell__main--wide {
  max-width: var(--ev-measure-wide);
}

/* ev-sign-in: the sign-in and password pages, one narrow column. */

.ev-sign-in {
  max-width: 24rem;
  margin-inline: auto;
  margin-top: clamp(0.5rem, 6dvh, 3.5rem);
}

/* Bootstrap's form-control is 38px tall and has no --bs-* variable for its height. */
.ev-sign-in__field {
  min-height: var(--ev-tap-min);
}

.ev-sign-in__submit {
  --bs-btn-padding-y: 0.5625rem;
}

.ev-sign-in__link {
  display: inline-flex;
  align-items: center;
  min-height: var(--ev-tap-min);
}

/* ev-guest: the guest layout's page, one phone-width column with no chrome. */

.ev-guest {
  min-height: 100dvh;
}

.ev-guest__main {
  width: 100%;
  max-width: 36rem;
  margin-inline: auto;
  padding-top: calc(1rem + env(safe-area-inset-top));
  padding-bottom: calc(2rem + env(safe-area-inset-bottom));
  padding-left: max(var(--ev-gutter), env(safe-area-inset-left));
  padding-right: max(var(--ev-gutter), env(safe-area-inset-right));
}
