:root {
  --as-forest: #245233;
  --as-fern: #2f6c3f;
  --as-sage: #eef4ee;
  --as-sand: #f6f1e8;
  --as-ink: #1e2b24;
  --as-muted: #6a776c;
  --as-surface: #ffffff;
  --as-border: #d9e3d7;
  --as-highlight: #dff6e4;
}

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

html, body {
  height: 100%;
}

body {
  font-family: 'Manrope', 'Segoe UI', system-ui, -apple-system, sans-serif;
  background: linear-gradient(140deg, var(--as-sage) 30%, var(--as-sand) 100%);
  color: var(--as-ink);
  margin: 0;
}

a {
  text-decoration: none;
}

.as-hero {
  background: radial-gradient(circle at 20% 20%, #2f7a45 0, rgba(47, 122, 69, 0.35) 30%, transparent 50%), linear-gradient(120deg, var(--as-forest), #1f3d2c);
  color: #fff;
  position: relative;
}

.as-hero__mark {
  width: 3rem;
  height: 3rem;
  border-radius: 0.9rem;
  background: rgba(255, 255, 255, 0.15);
  border: 1px solid rgba(255, 255, 255, 0.35);
  display: grid;
  place-items: center;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #fff;
}

.as-nav-btn {
  border-width: 2px;
  border-color: rgba(255, 255, 255, 0.4) !important;
  border-radius: 999px;
  padding: 0.6rem 1.2rem;
  font-weight: 600;
  color: #fff;
}

.as-nav-btn:hover, .as-nav-btn:focus {
  border-color: #fff !important;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}

.as-main main {
  min-height: 60vh;
}

.as-section {
  background: rgba(255, 255, 255, 0.8);
  border: 1px solid var(--as-border);
  border-radius: 1rem;
  box-shadow: 0 12px 30px rgba(20, 42, 32, 0.08);
  padding: 1.5rem;
}

.as-tile {
  display: flex;
  gap: 1rem;
  align-items: center;
  background: var(--as-surface);
  border: 1px solid var(--as-border);
  border-radius: 1rem;
  padding: 1.25rem;
  box-shadow: 0 10px 24px rgba(20, 42, 32, 0.06);
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

.as-tile:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 30px rgba(20, 42, 32, 0.12);
  border-color: var(--as-fern);
}

.as-tile__icon {
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 0.9rem;
  display: grid;
  place-items: center;
  font-weight: 700;
  background: var(--as-highlight);
  color: var(--as-fern);
  letter-spacing: 0.02em;
}

.as-tile__body {
  flex: 1 1 auto;
}

.as-tile__title {
  font-weight: 700;
  margin-bottom: 0.25rem;
}

.as-tile__chevron {
  font-size: 1.35rem;
  color: var(--as-muted);
  font-weight: 700;
}

.as-footer {
  border-top: 1px solid var(--as-border);
  background: rgba(255, 255, 255, 0.82);
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem var(--as-fern);
}
