:root {
  /* Palette: #F2F2F2, #577BC1, #FFCEE4, #344CB7(Text) */
  --primary-color: #577BC1; /* Soft Blue */
  --secondary-color: #344CB7; /* Darker Blue for text */
  --accent-color: #FFCEE4; /* Soft Pink */
  --light-color: #FFFFFF;
  --dark-color: #E0E7FF;
  
  --gradient-primary: linear-gradient(180deg, #F2F2F2 0%, #FFFFFF 100%);
  --hover-color: #4A69A5;
  --background-color: #F2F2F2;
  --text-color: #4B5563;
  
  --border-color: rgba(87, 123, 193, 0.2);
  --divider-color: rgba(87, 123, 193, 0.1);
  --shadow-color: rgba(87, 123, 193, 0.15);
  
  --highlight-color: #FFD700;
  
  --main-font: 'Open Sans', sans-serif;
  --heading-font: 'Lora', serif;
}

body {
    font-family: var(--main-font);
    background-color: var(--background-color);
    color: var(--text-color);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

h1, h2, h3 {
    font-family: var(--heading-font);
    font-weight: 600;
}

.soft-card {
    background: white;
    border-radius: 20px;
    box-shadow: 0 10px 25px -5px var(--shadow-color);
    border: 1px solid white;
}

.btn-soft {
    background-color: var(--primary-color);
    color: white;
    border-radius: 30px;
    padding: 12px 30px;
    font-family: var(--main-font);
    font-weight: 600;
    transition: transform 0.2s ease;
}
.btn-soft:hover {
    transform: translateY(-2px);
    background-color: var(--hover-color);
}