/*
 | Arkansas Reading Vine — brand tokens as CSS custom properties.
 | Mirrors config/brand.php (CLAUDE.md "Brand"). Plain CSS on purpose:
 | it is loaded by both the Filament panel and the public Blade layout
 | without needing a Vite build step to be present.
 */

:root {
  --rv-primary: #3b755f;
  --rv-primary-dark: #2f5d4c;
  --rv-gold: #d3b574;
  --rv-amber: #d9a441;
  --rv-leaf: #6bbf59;
  --rv-ink: #16163f;
  --rv-muted: #5b6b63;
  --rv-surface: #ffffff;
  --rv-bg: #f3f6f3;

  --rv-radius: 10px;
  --rv-shadow: 0 1px 2px rgba(22, 22, 63, .06), 0 8px 24px rgba(22, 22, 63, .07);
  --rv-shadow-sm: 0 1px 2px rgba(22, 22, 63, .08);
  --rv-border: #dfe7e1;

  --rv-font: 'Roboto', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif;
}

/* ---------- shared primitives (used by the portal shell + login) ---------- */

.rv-body {
  margin: 0;
  background: var(--rv-bg);
  color: var(--rv-ink);
  font-family: var(--rv-font);
  font-size: 15px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, .rv-h {
  font-family: var(--rv-font);
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--rv-ink);
}

h1, .rv-h1 { font-weight: 900; }

/* Forest-green top bar */
.rv-topbar {
  background: var(--rv-primary);
  color: #fff;
  height: 60px;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 0 20px;
  box-shadow: var(--rv-shadow-sm);
  position: sticky;
  top: 0;
  z-index: 30;
}

.rv-topbar__logo {
  height: 38px;
  width: auto;
  display: block;
  background: #fff;
  border-radius: 8px;
  padding: 3px;
}

.rv-topbar__title {
  font-weight: 700;
  font-size: 16px;
  line-height: 1.15;
  margin: 0;
  color: #fff;
}

.rv-topbar__tagline {
  font-size: 11.5px;
  color: var(--rv-gold);
  font-weight: 500;
  letter-spacing: .02em;
}

.rv-topbar__spacer { flex: 1; }

/* Gold CTA */
.rv-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 0;
  border-radius: var(--rv-radius);
  padding: 11px 18px;
  /*
   * CLAUDE.md requires touch targets of at least 40px. The base padding gives
   * ~42px, but call sites routinely tighten the padding inline for a compact
   * row of export buttons and drop under it without anyone noticing. Enforcing
   * the floor here means the rule holds wherever the button is used.
   */
  min-height: 40px;
  font-family: var(--rv-font);
  font-weight: 700;
  font-size: 14.5px;
  cursor: pointer;
  text-decoration: none;
  transition: background-color .15s ease, transform .05s ease;
}

.rv-btn--gold { background: var(--rv-gold); color: #3a2f12; }
.rv-btn--gold:hover { background: var(--rv-amber); }
.rv-btn--green { background: var(--rv-primary); color: #fff; }
.rv-btn--green:hover { background: var(--rv-primary-dark); }
.rv-btn:active { transform: translateY(1px); }
.rv-btn:focus-visible { outline: 3px solid var(--rv-leaf); outline-offset: 2px; }

/* Left nav */
.rv-shell { display: flex; min-height: calc(100vh - 60px); }

.rv-nav {
  width: 236px;
  flex: 0 0 236px;
  background: var(--rv-surface);
  border-right: 1px solid var(--rv-border);
  padding: 18px 12px;
}

.rv-nav__group {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--rv-muted);
  padding: 14px 10px 6px;
}

.rv-nav__link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  border-radius: 8px;
  color: var(--rv-ink);
  text-decoration: none;
  font-size: 14.5px;
  font-weight: 500;
  border-left: 3px solid transparent;
}

.rv-nav__link:hover { background: var(--rv-bg); }

.rv-nav__link--active {
  background: rgba(59, 117, 95, .10);
  color: var(--rv-primary-dark);
  font-weight: 700;
  border-left-color: var(--rv-gold);
}

.rv-main { flex: 1; padding: 26px 30px; min-width: 0; }

.rv-card {
  background: var(--rv-surface);
  border: 1px solid var(--rv-border);
  border-radius: 14px;
  box-shadow: var(--rv-shadow-sm);
  padding: 22px;
}

.rv-muted { color: var(--rv-muted); }

@media (max-width: 820px) {
  .rv-shell { flex-direction: column; }
  .rv-nav { width: auto; flex: none; border-right: 0; border-bottom: 1px solid var(--rv-border); }
}
