@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');

:root {
  --site-primary: #4fb88a;
  --site-primary-dark: #2f8f66;
  --site-primary-soft: #e7f6ef;
  --site-accent: #1f6fd4;
  --site-bg: #f5f8fc;
  --site-bg-soft: #edf4ef;
  --site-card: #ffffff;
  --site-text: #1f3348;
  --site-muted: #667c90;
  --site-border: #d9e4ee;
  --site-shadow: 0 14px 34px rgba(20, 34, 56, 0.08);
  --site-shadow-soft: 0 8px 18px rgba(20, 34, 56, 0.05);
}

body.site-public-page {
  margin: 0;
  min-height: 100vh;
  color: var(--site-text);
  font-family: "Manrope", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  background: linear-gradient(180deg, var(--site-bg-soft) 0, var(--site-bg) 220px, var(--site-bg) 100%);
}

body.site-public-page a:not(.btn) {
  color: var(--site-accent);
}

body.site-public-page a:not(.btn):hover {
  color: #16549f;
}

body.site-public-page a[href],
body.site-public-page button:not(:disabled),
body.site-public-page input[type="button"]:not(:disabled),
body.site-public-page input[type="submit"]:not(:disabled),
body.site-public-page .btn:not(:disabled):not(.disabled),
body.site-public-page .dropdown-item:not(.disabled),
body.site-public-page [role="button"]:not([aria-disabled="true"]) {
  cursor: pointer !important;
}

body.site-public-page button:disabled,
body.site-public-page input[type="button"]:disabled,
body.site-public-page input[type="submit"]:disabled,
body.site-public-page .btn:disabled,
body.site-public-page .btn.disabled,
body.site-public-page .dropdown-item.disabled,
body.site-public-page [role="button"][aria-disabled="true"] {
  cursor: not-allowed !important;
}

body.site-public-page a[href] *,
body.site-public-page button:not(:disabled) *,
body.site-public-page input[type="button"]:not(:disabled) *,
body.site-public-page input[type="submit"]:not(:disabled) *,
body.site-public-page .btn:not(:disabled):not(.disabled) *,
body.site-public-page .dropdown-item:not(.disabled) *,
body.site-public-page [role="button"]:not([aria-disabled="true"]) * {
  cursor: pointer !important;
}

body.site-public-page button:disabled *,
body.site-public-page input[type="button"]:disabled *,
body.site-public-page input[type="submit"]:disabled *,
body.site-public-page .btn:disabled *,
body.site-public-page .btn.disabled *,
body.site-public-page .dropdown-item.disabled *,
body.site-public-page [role="button"][aria-disabled="true"] * {
  cursor: not-allowed !important;
}

.site-navbar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1030;
  min-height: 68px;
  background: rgba(255, 255, 255, 0.93);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid #deebe3;
  box-shadow: 0 8px 20px rgba(17, 31, 51, 0.08);
}

.site-navbar .navbar-brand img {
  height: auto;
  width: auto;
}

.site-navbar .navbar-nav .nav-link {
  color: #2d4459;
  font-weight: 600;
  border-radius: 8px;
  padding: 0.38rem 0.7rem;
}

.site-navbar .navbar-nav .nav-link:hover {
  color: #16324c;
  background: #ecf3f9;
}

.site-navbar .navbar-nav .nav-link.active {
  color: #145339;
  background: var(--site-primary-soft);
}

.site-navbar .site-auth-btn {
  min-height: 35px;
  border-radius: 10px;
  padding: 0.4rem 0.84rem;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0.01em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-width: 1px;
}

.site-navbar .site-auth-btn-login {
  color: #1f6d4c;
  border-color: #8bcfb1;
  background: #f6fcf9;
}

.site-navbar .site-auth-btn-login:hover {
  color: #164e37;
  border-color: #6fbe9c;
  background: #e9f7f0;
}

.site-navbar .site-auth-btn-signup {
  color: #ffffff;
  border-color: var(--site-primary);
  background: linear-gradient(135deg, var(--site-primary) 0%, var(--site-primary-dark) 100%);
}

.site-navbar .site-auth-btn-signup:hover {
  color: #ffffff;
  border-color: var(--site-primary-dark);
  background: linear-gradient(135deg, #46ae81 0%, #287c59 100%);
}

.site-navbar .site-auth-btn.active {
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.24);
}

.site-navbar .site-auth-btn:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 3px rgba(79, 184, 138, 0.22);
}

.site-navbar .dropdown-menu {
  border-radius: 12px;
  border-color: #d9e8df;
  box-shadow: var(--site-shadow-soft);
}

.site-main {
  padding-top: 5.8rem;
}

.site-page-section {
  padding: 3.2rem 0;
}

.site-page-section-tight {
  padding: 2.3rem 0;
}

.site-hero {
  padding: 3.5rem 0 3rem;
  text-align: center;
}

.site-hero-title {
  font-size: clamp(2rem, 4.2vw, 3.1rem);
  font-weight: 800;
  color: #1a3147;
  margin-bottom: 0.8rem;
  letter-spacing: -0.02em;
}

.site-hero-subtitle {
  color: var(--site-muted);
  font-size: 1.08rem;
  max-width: 860px;
  margin: 0 auto;
}

.site-surface {
  background: var(--site-card);
  border: 1px solid var(--site-border);
  border-radius: 16px;
  box-shadow: var(--site-shadow-soft);
}

.site-icon-box {
  height: 100%;
  background: var(--site-card);
  border: 1px solid var(--site-border);
  border-radius: 14px;
  box-shadow: var(--site-shadow-soft);
  padding: 1.15rem;
}

.site-icon {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--site-primary-soft);
  color: #1f6b4b;
  margin-bottom: 0.8rem;
  font-size: 1.1rem;
}

.site-kpi-group .card {
  border: 1px solid var(--site-border);
  box-shadow: none;
}

.site-kpi-group .card .card-body {
  padding: 1.3rem 1rem;
}

.site-kpi-label {
  color: #637a8f;
  font-weight: 700;
}

.site-kpi-value {
  color: #16324c;
  font-weight: 800;
}

.site-compare-card {
  border: 1px solid var(--site-border);
  box-shadow: var(--site-shadow-soft);
  border-radius: 16px;
}

.site-compare-card .badge {
  padding: 0.45rem 0.65rem;
  border-radius: 999px;
}

.site-pricing-card {
  border: 1px solid var(--site-border);
  border-radius: 16px;
  box-shadow: var(--site-shadow-soft);
}

.site-pricing-card.site-pricing-card-current {
  border-color: #8acfb0;
  box-shadow: 0 14px 30px rgba(47, 143, 102, 0.16);
}

.site-pricing-chip {
  background: var(--site-primary-soft);
  color: #1b6143;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 0.22rem 0.58rem;
}

.site-pricing-list li {
  color: #344b62;
}

.site-auth-main {
  min-height: calc(100vh - 230px);
  display: flex;
  align-items: center;
  padding: 6.2rem 0 2.2rem;
}

.site-auth-card {
  background: var(--site-card);
  border: 1px solid var(--site-border);
  border-radius: 18px;
  box-shadow: var(--site-shadow);
}

.site-auth-card .card-body {
  padding: 1.75rem;
}

.site-auth-subtitle {
  color: var(--site-muted);
}

.site-footer {
  margin-top: 3rem;
  background: #ffffff;
  border-top: 1px solid #dce9e2;
}

.site-footer .site-footer-link {
  text-decoration: none;
  color: #61778d;
}

.site-footer .site-footer-link:visited {
  color: #61778d;
}

.site-footer .site-footer-link:hover,
.site-footer .site-footer-link:focus {
  color: #1f6d4c;
}

.site-footer .site-footer-link:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 3px rgba(79, 184, 138, 0.22);
  border-radius: 8px;
}

body.site-public-page .btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--site-primary);
  --bs-btn-border-color: var(--site-primary);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--site-primary-dark);
  --bs-btn-hover-border-color: var(--site-primary-dark);
  --bs-btn-focus-shadow-rgb: 79, 184, 138;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #246d4d;
  --bs-btn-active-border-color: #246d4d;
}

body.site-public-page .btn-outline-primary {
  --bs-btn-color: #1f6d4c;
  --bs-btn-border-color: #78c4a4;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--site-primary);
  --bs-btn-hover-border-color: var(--site-primary);
  --bs-btn-focus-shadow-rgb: 79, 184, 138;
}

body.site-public-page .btn-outline-danger {
  --bs-btn-color: #8f3f4a;
  --bs-btn-border-color: #d4a7ad;
  --bs-btn-hover-bg: #b65c67;
  --bs-btn-hover-border-color: #b65c67;
}

body.site-public-page .text-success {
  color: #1f6d4c !important;
}

body.site-public-page .alert-success {
  --bs-alert-color: #1f5d42;
  --bs-alert-bg: #e9f7f1;
  --bs-alert-border-color: #c5e9d7;
}

@media (max-width: 991.98px) {
  .site-navbar .navbar-collapse {
    margin-top: 0.75rem;
    padding: 0.65rem;
    border-radius: 12px;
    border: 1px solid #dde9e3;
    background: #ffffff;
  }

  .site-main {
    padding-top: 5.2rem;
  }

  .site-page-section {
    padding: 2.45rem 0;
  }

  .site-navbar .site-auth-btn {
    width: 100%;
  }
}

@media (max-width: 575.98px) {
  .site-auth-card .card-body {
    padding: 1.2rem;
  }
}
