:root {
    --primary: #7c3aed; /* purple-700 */
    --primary-dark: #6d28d9; /* purple-800 */
    --accent: #2563eb; /* blue-600 */
    --accent-dark: #1d4ed8; /* blue-700 */
    --bg-gradient-from: #eff6ff; /* blue-50 */
    --bg-gradient-via: #f5f3ff; /* purple-50 */
    --bg-gradient-to: #fff; /* white */
    --card-bg: #fff;
    --card-border: #ede9fe; /* purple-100 */
    --text-main: #1e293b; /* gray-800 */
    --text-muted: #64748b; /* gray-500 */
    --text-light: #fff;
}

html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.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 #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
  background: linear-gradient(to bottom, var(--bg-gradient-from), var(--bg-gradient-via), var(--bg-gradient-to));
  color: var(--text-main);
  font-family: 'Segoe UI', 'Roboto', 'Arial', sans-serif;
  min-height: 100vh;
}

.email-prefix-input {
    text-align: right;
    font-size: 0.95em;
    max-width: 120px;
    display: inline-block;
}

.navbar, .footer {
    background: transparent !important;
    color: var(--text-main) !important;
}

.navbar .navbar-brand, .navbar .nav-link, .footer a {
    color: var(--primary) !important;
}

.card, .main-card {
    background: var(--card-bg);
    color: var(--text-main);
    border-radius: 1.5rem;
    box-shadow: 0 4px 24px rgba(124,58,237,0.06);
    border: 1.5px solid var(--card-border);
    position: relative;
    overflow: hidden;
}

.main-card::before {
    display: none;
}

h1.display-4, h1.display-5, .card-title {
    color: var(--primary);
    font-weight: 800;
    letter-spacing: -1px;
}

.feature-icon {
    color: var(--primary);
    font-size: 1.3em;
    margin-right: 0.5em;
}

.list-group-item {
    background: transparent;
    border: none;
    font-size: 1.08em;
    padding-left: 0;
    padding-right: 0;
    color: var(--text-main);
}

.btn-lg, .btn-primary, .btn-outline-primary {
    transition: box-shadow 0.2s, transform 0.2s;
}

.btn-lg:hover, .btn-primary:hover, .btn-outline-primary:hover {
    box-shadow: 0 4px 16px rgba(0,191,174,0.12);
    transform: translateY(-2px) scale(1.03);
}

@media (max-width: 600px) {
    .main-card { padding: 1.2rem 0.5rem 1.5rem 0.5rem; }
}

/* Subtle SVG background pattern */
body::after {
    content: '';
    position: fixed;
    top: 0; left: 0; width: 100vw; height: 100vh;
    background: url('data:image/svg+xml;utf8,<svg width="100" height="100" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="50" y="0" width="1" height="100" fill="%23e3f0ff" opacity="0.3"/><rect x="0" y="50" width="100" height="1" fill="%23e3f0ff" opacity="0.3"/></svg>');
    pointer-events: none;
    z-index: 0;
    opacity: 0.5;
}

.btn-primary {
    background: var(--primary);
    border: none;
    font-weight: 600;
    letter-spacing: 0.5px;
    color: var(--text-light);
    border-radius: 1.5rem;
    box-shadow: 0 2px 8px rgba(124,58,237,0.10);
    transition: background 0.2s, box-shadow 0.2s;
}

.btn-primary:hover, .btn-primary:focus {
    background: var(--primary-dark);
    color: var(--text-light);
    box-shadow: 0 4px 16px rgba(124,58,237,0.15);
}

.btn-outline-primary {
    color: var(--accent);
    border-color: var(--accent);
    border-radius: 1.5rem;
    background: #fff;
    transition: background 0.2s, color 0.2s;
}

.btn-outline-primary:hover, .btn-outline-primary:focus {
    background: var(--accent);
    color: var(--text-light);
    border-color: var(--accent);
}

.accordion-button {
    background: var(--bg-gradient-from);
    color: var(--primary);
    font-weight: 500;
}

.accordion-button:not(.collapsed) {
    background: var(--accent);
    color: var(--text-light);
}

input.form-control, .input-group-text {
    border-radius: 1rem !important;
    border-color: var(--card-border);
    background: #f8fafc;
    color: var(--text-main);
}

input.form-control:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 0.2rem rgba(124,58,237,0.10);
    background: #fff;
    color: var(--text-main);
}

::-webkit-scrollbar {
    width: 8px;
    background: #f3f4f6;
}
::-webkit-scrollbar-thumb {
    background: var(--primary);
    border-radius: 4px;
}

a {
    color: var(--primary);
    text-decoration: none;
}

a:hover {
    color: var(--accent);
    text-decoration: underline;
}

.text-muted, .form-text.text-muted {
    color: var(--text-muted) !important;
}