.portal-v2 {
  min-height: 100%;
  color: var(--ft-text);
  background:
    radial-gradient(circle at 92% 0%, var(--ft-background-glow), transparent 25rem),
    radial-gradient(circle at 4% 18%, var(--ft-background-blue), transparent 28rem),
    linear-gradient(180deg, #fffdf9 0%, var(--ft-background) 34rem);
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: var(--ft-font-base);
  line-height: 1.55;
}

.portal-v2 h1,
.portal-v2 h2,
.portal-v2 h3,
.portal-v2 p { margin-top: 0; }

.portal-v2 a,
.portal-v2 button,
.portal-v2 input,
.portal-v2 select,
.portal-v2 textarea { transition: color var(--ft-transition), background-color var(--ft-transition), border-color var(--ft-transition), box-shadow var(--ft-transition), transform var(--ft-transition); }

.portal-v2 a { color: var(--ft-blue-600); }

.portal-v2 :focus-visible {
  outline: 3px solid rgba(212, 163, 115, 0.42);
  outline-offset: 3px;
}

.ui-skip-link {
  position: fixed;
  top: var(--ft-space-3);
  left: var(--ft-space-3);
  z-index: 1000;
  padding: var(--ft-space-3) var(--ft-space-4);
  border-radius: var(--ft-radius-sm);
  color: #fff !important;
  background: var(--ft-blue-600);
  transform: translateY(-160%);
}

.ui-skip-link:focus { transform: translateY(0); }

.ui-button {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  justify-content: center;
  gap: var(--ft-space-2);
  padding: 0.65rem 1rem;
  border: 1px solid transparent;
  border-radius: var(--ft-radius-sm);
  font-size: var(--ft-font-sm);
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
}

.ui-button-primary { color: #fff !important; background: linear-gradient(135deg, var(--ft-brown-700), var(--ft-brown-800)); box-shadow: 0 7px 16px rgba(107,60,31,.18); }
.ui-button-primary:hover { background: var(--ft-brown-900); transform: translateY(-1px); }
.ui-button-success,
.portal-v2 .btn-success {
  color: #fff !important;
  border-color: var(--ft-green-600) !important;
  background: var(--ft-green-600) !important;
  box-shadow: 0 7px 16px rgba(40, 117, 75, .2);
}
.ui-button-success:hover,
.ui-button-success:focus,
.portal-v2 .btn-success:hover,
.portal-v2 .btn-success:focus {
  color: #fff !important;
  border-color: var(--ft-green-700) !important;
  background: var(--ft-green-700) !important;
}
.portal-v2 .text-success { color: var(--ft-green-700) !important; }
.portal-v2 .bg-success { color: #fff !important; background-color: var(--ft-green-600) !important; }
.ui-button-secondary { color: var(--ft-brown-800) !important; border-color: #d9c5b2; background: rgba(255,255,255,.86); }
.ui-button-secondary:hover { border-color: var(--ft-blue-500); background: var(--ft-blue-100); }
.ui-button-text { min-height: 2.5rem; padding-inline: var(--ft-space-3); color: var(--ft-blue-600) !important; background: transparent; }
.ui-button-text:hover { background: var(--ft-blue-100); }
.ui-button-small { min-height: 2.35rem; padding: 0.5rem 0.8rem; }

@media (prefers-reduced-motion: reduce) {
  .portal-v2 *, .portal-v2 *::before, .portal-v2 *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
}
