﻿html {
  scroll-behavior: smooth;
}

body {
  text-rendering: optimizeLegibility;
}

:root {
  --brand-green: #99c734;
  --brand-gold: #d4af37;
  --brand-black: #121212;
  --brand-graphite: #1e1e1e;
  --brand-white: #f5f5f7;
  --brand-muted: #b8b8bd;
}

.public-site {
  background: #f5f5f7;
  color: var(--brand-black);
  transition: background-color 180ms ease, color 180ms ease;
}

.public-site[data-theme="dark"] {
  background: var(--brand-black);
  color: var(--brand-white);
}

.public-site main {
  min-height: 60vh;
}

.site-header {
  border-color: rgb(212 175 55 / 0.65);
  background: rgb(250 252 245 / 0.97);
  color: var(--brand-black);
  box-shadow: 0 1px 0 rgb(153 199 52 / 0.28);
}

.site-logo {
  border-color: rgb(212 175 55 / 0.45);
  background: var(--brand-graphite);
}

.site-title {
  color: var(--brand-black);
}

.site-nav-link {
  color: #3f3f46;
}

.site-nav-link:hover {
  background: rgb(153 199 52 / 0.13);
  color: #617a18;
}

.site-nav-link.is-active {
  background: var(--brand-green);
  color: var(--brand-black);
}

.theme-toggle {
  color: #799e1e;
}

.theme-toggle:hover {
  color: var(--brand-gold);
}

.public-site[data-theme="dark"] .site-header {
  background: rgb(18 18 18 / 0.96);
  color: var(--brand-white);
}

.public-site[data-theme="dark"] .site-title {
  color: var(--brand-white);
}

.public-site[data-theme="dark"] .site-nav-link {
  color: #e4e4e7;
}

.public-site[data-theme="dark"] .site-nav-link:hover {
  background: var(--brand-graphite);
  color: var(--brand-gold);
}

.public-site[data-theme="dark"] .site-nav-link.is-active {
  color: var(--brand-black);
}

.public-site[data-theme="dark"] .theme-toggle {
  color: var(--brand-gold);
}

.home-slider {
  border-color: rgb(212 175 55 / 0.5);
  background: #edf2e4;
}

.home-slider-frame {
  height: 390px;
}

.home-slider-link {
  grid-template-rows: 270px 120px;
}

.home-slider-image {
  background: #e9eee1;
}

.home-slider-caption {
  border-color: rgb(212 175 55 / 0.3);
  background: var(--brand-black);
  color: var(--brand-white);
}

.slider-arrow {
  top: 135px;
  background: transparent;
  border: 0;
}

.public-site[data-theme="dark"] .home-slider,
.public-site[data-theme="dark"] .home-slider-image {
  background: var(--brand-graphite);
}

@media (min-width: 640px) {
  .home-slider-frame {
    height: 470px;
  }

  .home-slider-link {
    grid-template-rows: 340px 130px;
  }

  .slider-arrow {
    top: 170px;
  }
}

@media (min-width: 1024px) {
  .home-slider-frame {
    height: calc(clamp(380px, 34vw, 600px) + 140px);
  }

  .home-slider-link {
    grid-template-rows: clamp(380px, 34vw, 600px) 140px;
  }

  .slider-arrow {
    top: calc(clamp(380px, 34vw, 600px) / 2);
  }
}

.public-site:not([data-theme="dark"]) main > section:not(.home-slider) {
  border-top-color: rgb(153 199 52 / 0.16);
}

.public-site:not([data-theme="dark"]) main a.bg-white,
.public-site:not([data-theme="dark"]) main .group.bg-white {
  border-top: 2px solid rgb(153 199 52 / 0.7);
}

.public-site:not([data-theme="dark"]) main a.text-\[\#1f5f8b\],
.public-site:not([data-theme="dark"]) main .text-\[\#1f5f8b\],
.public-site:not([data-theme="dark"]) main .text-\[\#4f9d69\] {
  color: #66871a;
}

.public-site:not([data-theme="dark"]) main .text-\[\#f2b84b\] {
  color: #997812;
}

.partners-section {
  border-color: rgb(212 175 55 / 0.42);
  background:
    linear-gradient(135deg, rgb(153 199 52 / 0.12), transparent 45%),
    #ffffff;
  color: var(--brand-black);
}

.partner-logo {
  display: flex;
  height: 88px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgb(153 199 52 / 0.32);
  border-radius: 6px;
  background: #ffffff;
  padding: 1.25rem;
}

.institutional-signature {
  display: flex;
  min-height: 210px;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 1px solid rgb(212 175 55 / 0.35);
  border-radius: 6px;
  background: #ffffff;
  padding: 1rem;
}

.public-site[data-theme="dark"] .partners-section {
  background:
    linear-gradient(135deg, rgb(153 199 52 / 0.07), transparent 45%),
    var(--brand-black);
  color: var(--brand-white);
}

.public-site[data-theme="dark"] .partner-logo,
.public-site[data-theme="dark"] .institutional-signature {
  border-color: rgb(212 175 55 / 0.32);
  background: #f5f5f7;
}

.public-site[data-theme="dark"] .bg-white,
.public-site[data-theme="dark"] .bg-slate-50,
.public-site[data-theme="dark"] .bg-slate-100,
.public-site[data-theme="dark"] .bg-sky-50 {
  background-color: var(--brand-graphite);
}

.public-site[data-theme="dark"] .text-slate-950,
.public-site[data-theme="dark"] .text-slate-900,
.public-site[data-theme="dark"] .text-slate-800,
.public-site[data-theme="dark"] .text-slate-700 {
  color: var(--brand-white);
}

.public-site[data-theme="dark"] .text-slate-600,
.public-site[data-theme="dark"] .text-slate-500,
.public-site[data-theme="dark"] .text-slate-400 {
  color: var(--brand-muted);
}

.public-site[data-theme="dark"] .border-slate-200,
.public-site[data-theme="dark"] .border-slate-300,
.public-site[data-theme="dark"] .ring-slate-200,
.public-site[data-theme="dark"] .ring-slate-100 {
  border-color: rgb(212 175 55 / 0.28);
  --tw-ring-color: rgb(212 175 55 / 0.28);
}

.public-site[data-theme="dark"] .bg-\[\#1f5f8b\] {
  background-color: var(--brand-green);
  color: var(--brand-black);
}

.public-site[data-theme="dark"] .hover\:bg-\[\#17496b\]:hover {
  background-color: #addb45;
  color: var(--brand-black);
}

.public-site[data-theme="dark"] a.text-\[\#1f5f8b\],
.public-site[data-theme="dark"] .text-\[\#1f5f8b\],
.public-site[data-theme="dark"] .text-\[\#4f9d69\],
.public-site[data-theme="dark"] .text-\[\#f2b84b\] {
  color: var(--brand-gold);
}

.public-site[data-theme="dark"] .hover\:border-\[\#1f5f8b\]:hover {
  border-color: var(--brand-green);
}

.public-site[data-theme="dark"] .group:hover .group-hover\:text-\[\#1f5f8b\] {
  color: var(--brand-green);
}

.public-site[data-theme="dark"] .shadow-sm {
  box-shadow: 0 12px 30px rgb(0 0 0 / 0.22);
}

.public-site[data-theme="dark"] a.bg-white,
.public-site[data-theme="dark"] .group.bg-white {
  transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.public-site[data-theme="dark"] a.bg-white:hover,
.public-site[data-theme="dark"] .group.bg-white:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 36px rgb(0 0 0 / 0.32);
}

.public-site[data-theme="dark"] a:hover {
  color: var(--brand-green);
}

.public-site[data-theme="dark"] input,
.public-site[data-theme="dark"] textarea,
.public-site[data-theme="dark"] select {
  border-color: rgb(212 175 55 / 0.35);
  background: var(--brand-graphite);
  color: var(--brand-white);
}

.public-site[data-theme="dark"] input:focus,
.public-site[data-theme="dark"] textarea:focus,
.public-site[data-theme="dark"] select:focus {
  border-color: var(--brand-green);
  outline: 2px solid rgb(153 199 52 / 0.25);
  outline-offset: 1px;
}

.public-site[data-theme="dark"] ::selection {
  background: var(--brand-green);
  color: var(--brand-black);
}

.admin-site {
  background:
    linear-gradient(rgb(153 199 52 / 0.035), transparent 300px),
    var(--brand-black);
  color: var(--brand-white);
}

.admin-header {
  border-color: rgb(212 175 55 / 0.3);
  background: rgb(18 18 18 / 0.96);
  backdrop-filter: blur(14px);
}

.admin-logo {
  border-color: rgb(212 175 55 / 0.4);
  background: var(--brand-graphite);
}

.admin-nav-link,
.admin-ghost-button,
.admin-secondary-button {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  border-radius: 6px;
  padding: 0.5rem 0.75rem;
  font-weight: 600;
  transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease;
}

.admin-nav-link,
.admin-ghost-button {
  color: #d4d4d8;
}

.admin-nav-link:hover,
.admin-ghost-button:hover {
  background: var(--brand-graphite);
  color: var(--brand-gold);
}

.admin-nav-link.is-active {
  background: var(--brand-green);
  color: var(--brand-black);
}

.admin-secondary-button {
  border: 1px solid rgb(212 175 55 / 0.45);
  color: var(--brand-gold);
}

.admin-secondary-button:hover {
  border-color: var(--brand-green);
  color: var(--brand-green);
}

.admin-site .bg-white,
.admin-site .bg-slate-50,
.admin-site .bg-slate-100 {
  background-color: var(--brand-graphite);
}

.admin-site .text-slate-950,
.admin-site .text-slate-900,
.admin-site .text-slate-800,
.admin-site .text-slate-700 {
  color: var(--brand-white);
}

.admin-site .text-slate-600,
.admin-site .text-slate-500,
.admin-site .text-slate-400 {
  color: #a1a1aa;
}

.admin-site .border-slate-200,
.admin-site .border-slate-300,
.admin-site .ring-slate-200,
.admin-site .ring-slate-100 {
  border-color: rgb(212 175 55 / 0.25);
  --tw-ring-color: rgb(212 175 55 / 0.25);
}

.admin-site .shadow-sm {
  box-shadow: 0 16px 36px rgb(0 0 0 / 0.28);
}

.admin-site form.bg-white,
.admin-site .admin-login-card {
  border-top: 2px solid var(--brand-green);
}

.admin-site label {
  color: #e4e4e7;
}

.admin-site input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.admin-site textarea,
.admin-site select {
  border-color: rgb(212 175 55 / 0.3);
  background: #161616;
  color: var(--brand-white);
}

.admin-site input::placeholder,
.admin-site textarea::placeholder {
  color: #71717a;
}

.admin-site input:focus,
.admin-site textarea:focus,
.admin-site select:focus {
  border-color: var(--brand-green);
  outline: 2px solid rgb(153 199 52 / 0.22);
  outline-offset: 1px;
  --tw-ring-color: transparent;
}

.admin-site input[type="checkbox"] {
  accent-color: var(--brand-green);
  height: 1rem;
  width: 1rem;
}

.admin-site input[type="file"] {
  color: #a1a1aa;
}

.admin-site input[type="file"]::file-selector-button {
  margin-right: 0.75rem;
  border: 1px solid rgb(212 175 55 / 0.35);
  border-radius: 5px;
  background: #292929;
  padding: 0.45rem 0.7rem;
  color: var(--brand-white);
  cursor: pointer;
}

.admin-site input[type="file"]::file-selector-button:hover {
  border-color: var(--brand-green);
}

.admin-site .bg-\[\#1f5f8b\],
.admin-primary-button {
  border-radius: 6px;
  background: var(--brand-green);
  color: var(--brand-black);
  transition: background-color 160ms ease, transform 160ms ease;
}

.admin-site .bg-\[\#1f5f8b\]:hover,
.admin-primary-button:hover {
  background: #addb45;
  color: var(--brand-black);
  transform: translateY(-1px);
}

.admin-site .bg-slate-900 {
  background: #303030;
  color: var(--brand-white);
}

.admin-site a.border-slate-300 {
  color: #e4e4e7;
}

.admin-site a.border-slate-300:hover {
  border-color: var(--brand-gold);
  color: var(--brand-gold);
}

.admin-site .text-\[\#1f5f8b\],
.admin-site .text-\[\#4f9d69\] {
  color: var(--brand-gold);
}

.admin-site .border-red-300 {
  border-color: rgb(248 113 113 / 0.45);
}

.admin-site .text-red-700 {
  color: #fca5a5;
}

.admin-site .bg-red-50 {
  background: rgb(127 29 29 / 0.35);
}

.admin-site .text-red-800 {
  color: #fecaca;
}

.admin-stat-card {
  position: relative;
  overflow: hidden;
  transition: border-color 160ms ease, transform 160ms ease;
}

.admin-stat-card:hover {
  transform: translateY(-2px);
  --tw-ring-color: var(--brand-green);
}

.admin-stat-icon {
  position: absolute;
  right: 1rem;
  top: 1rem;
  display: flex;
  height: 2rem;
  width: 2rem;
  align-items: center;
  justify-content: center;
  border: 1px solid rgb(212 175 55 / 0.35);
  border-radius: 6px;
  color: var(--brand-gold);
  font-size: 0.75rem;
  font-weight: 800;
}

.admin-security-note {
  border-color: rgb(153 199 52 / 0.3);
  background: rgb(153 199 52 / 0.07);
  color: #d4d4d8;
}

.admin-status {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 0.2rem 0.5rem;
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}

.admin-status.is-active {
  background: rgb(153 199 52 / 0.14);
  color: #b6e453;
}

.admin-status.is-inactive {
  background: rgb(161 161 170 / 0.12);
  color: #a1a1aa;
}

.admin-filter-button {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  border: 1px solid rgb(212 175 55 / 0.28);
  border-radius: 6px;
  padding: 0.5rem 0.75rem;
  color: #d4d4d8;
  font-weight: 600;
}

.admin-filter-button:hover,
.admin-filter-button.is-active {
  border-color: var(--brand-green);
  background: rgb(153 199 52 / 0.12);
  color: var(--brand-green);
}

.admin-message-row {
  transition: background-color 160ms ease, border-color 160ms ease;
}

.admin-message-row:hover {
  background: #262626;
}

.admin-message-row.is-unread {
  border-left: 3px solid var(--brand-green);
  background: rgb(153 199 52 / 0.045);
}

.admin-unread-dot {
  display: inline-block;
  height: 0.5rem;
  width: 0.5rem;
  flex-shrink: 0;
  border-radius: 999px;
  background: var(--brand-green);
  box-shadow: 0 0 0 3px rgb(153 199 52 / 0.12);
}

.admin-danger-button {
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  border: 1px solid rgb(248 113 113 / 0.45);
  border-radius: 6px;
  padding: 0.5rem 0.75rem;
  color: #fca5a5;
  font-size: 0.875rem;
  font-weight: 600;
}

.admin-danger-button:hover {
  background: rgb(127 29 29 / 0.25);
}

.admin-site .bg-emerald-50,
.admin-site .bg-amber-50 {
  background: var(--brand-graphite);
}

.admin-site .border-emerald-200,
.admin-site .border-amber-200 {
  border-color: rgb(212 175 55 / 0.35);
}

.admin-site .text-emerald-900,
.admin-site .text-amber-900,
.admin-site .text-amber-950 {
  color: var(--brand-white);
}

.admin-site ::selection {
  background: var(--brand-green);
  color: var(--brand-black);
}

