
:root {
    --primary-color: #4CAF50;
    --secondary-color: #3498db;
    --primary-light: #8BC34A;
    --secondary-light: #81D4FA;
    --light-bg: #f9fbf7;
    --med-pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Cg fill-rule='evenodd'%3E%3Cg fill='%234CAF50' fill-opacity='0.05'%3E%3Cpath d='M0 0h100v100H0z'/%3E%3Cpath d='M80 30a10 10 0 0 0-20 0c0 5.52 4.48 10 10 10s10-4.48 10-10z M20 60a10 10 0 0 0-10 10c0 5.52 4.48 10 10 10s10-4.48 10-10a10 10 0 0 0-10-10z M60 80a10 10 0 0 0-10-10c-5.52 0-10 4.48-10 10s4.48 10 10 10a10 10 0 0 0 10-10z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

body {
    background-color: var(--light-bg);
    background-image: var(--med-pattern);
    color: #333;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}

.hero-pattern {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'%3E%3Cg fill='none' stroke='%233498db' stroke-width='1' stroke-opacity='0.1'%3E%3Crect x='100' width='100' height='100'/%3E%3Crect y='100' width='100' height='100'/%3E%3C/g%3E%3C/svg%3E");
    background-position: center;
}

.primary-btn {
    background-color: var(--primary-color);
    transition: all 0.3s ease;
}

.primary-btn:hover {
    background-color: var(--primary-light);
    transform: translateY(-2px);
    box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11), 0 1px 3px rgba(0, 0, 0, 0.08);
}

.secondary-btn {
    background-color: var(--secondary-color);
    transition: all 0.3s ease;
}

.secondary-btn:hover {
    background-color: var(--secondary-light);
    transform: translateY(-2px);
    box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11), 0 1px 3px rgba(0, 0, 0, 0.08);
}

.card {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}

.score-meter {
    transition: width 1.5s ease-in-out;
}

.animate-fade-in {
    animation: fadeIn 1.5s;
}

.animate-slide-in {
    animation: slideIn 0.8s;
}

.med-icon {
    filter: drop-shadow(0px 2px 3px rgba(0, 0, 0, 0.1));
    transition: transform 0.3s ease;
}

.med-icon:hover {
    transform: scale(1.1);
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes slideIn {
    from { transform: translateY(20px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}

.progress-circle {
    transform: rotate(-90deg);
}

.circle-bg {
    fill: none;
    stroke: #e6e6e6;
    stroke-width: 3.8;
}

.circle {
    fill: none;
    stroke-width: 3.8;
    stroke-linecap: round;
    transition: stroke-dashoffset 1s ease-out;
}

.info-box {
    border-left: 4px solid var(--primary-color);
    background-color: rgba(76, 175, 80, 0.1);
}

.info-box-alt {
    border-left: 4px solid var(--secondary-color);
    background-color: rgba(52, 152, 219, 0.1);
}

.food-icon {
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background-color: var(--primary-light);
    color: white;
    margin-right: 0.75rem;
}

table {
    border-collapse: separate;
    border-spacing: 0;
}

table tr:nth-child(even) {
    background-color: rgba(76, 175, 80, 0.05);
}

/* Custom Radio Buttons */
.custom-radio input {
    position: absolute;
    opacity: 0;
}

.custom-radio label {
    cursor: pointer;
    position: relative;
    padding: 8px 15px;
    border-radius: 20px;
    border: 2px solid #e0e0e0;
    transition: all 0.3s;
    display: block;
    text-align: center;
    font-weight: 500;
}

.custom-radio input:checked + label {
    border-color: var(--primary-color);
    background-color: var(--primary-light);
    color: white;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

/* Vector Illustrations */
.med-diet-illustration {
    width: 100%;
    max-width: 600px;
    margin: 0 auto;
}

/* Smooth Scroll */
html {
    scroll-behavior: smooth;
}

/* Print/PDF optimization */
@media print {
    .page-break {
        display: block;
        height: 0;
        page-break-before: avoid;
        margin: 0;
        border-top: none;
    }
    
    .no-print {
        display: none;
    }
}
