:root {
    --primary: #4CAF50;
    --secondary: #FFCA28;
    --accent: #FF5722;
    --background: #F5F5F5;
    --card-bg: #FFFFFF;
    --text: #333333;
    --text-light: #666666;
    --border: #E0E0E0;
    --shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    --gradient: linear-gradient(135deg, #4CAF50, #81C784);
    --glow: 0 0 8px rgba(76, 175, 80, 0.3);
}

[data-theme="dark"] {
    --primary: #4CAF50;
    --secondary: #FFCA28;
    --accent: #FF5722;
    --background: #1E1E1E;
    --card-bg: #2A2A2A;
    --text: #E0E0E0;
    --text-light: #AAAAAA;
    --border: #333333;
    --shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    --glow: 0 0 8px rgba(76, 175, 80, 0.5);
}

body {
    background: linear-gradient(135deg, #e8f5e9 0%, #f5fbe7 100%), url('https://www.transparenttextures.com/patterns/green-dust.png');
    background-blend-mode: lighten, overlay;
    background-size: auto, 300px 300px;
    background-repeat: repeat;
    color: var(--text);
    font-family: 'Inter', sans-serif;
    margin: 0;
    padding: 20px;
    min-height: 100vh;
    transition: background 0.3s, color 0.3s;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
}

h1 {
    font-family: 'Poppins', cursive, sans-serif;
    font-size: 2.4rem;
    font-weight: 700;
    color: #388E3C;
    text-align: center;
    margin-bottom: 28px;
    background: linear-gradient(90deg, #a8e063 0%, #56ab2f 100%);
    padding: 18px 18px 18px 60px;
    border-radius: 18px;
    box-shadow: 0 4px 16px rgba(139,195,74,0.10);
    position: relative;
    letter-spacing: 1px;
}

h1::before {
    content: '';
    position: absolute;
    left: 18px;
    top: 50%;
    transform: translateY(-50%);
    width: 36px;
    height: 36px;
    background: url('https://cdn-icons-png.flaticon.com/512/616/616408.png') no-repeat center;
    background-size: contain;
    opacity: 0.95;
    animation: sway 3s ease-in-out infinite;
}

@keyframes sway {
    0% { transform: translateY(-50%) rotate(-3deg); }
    50% { transform: translateY(-50%) rotate(6deg); }
    100% { transform: translateY(-50%) rotate(-3deg); }
}

h2 {
    font-family: 'Poppins', cursive, sans-serif;
    font-size: 1.5rem;
    font-weight: 600;
    color: #689f38;
    margin-bottom: 18px;
    border-left: 6px solid #a8e063;
    padding-left: 12px;
    letter-spacing: 0.5px;
}

input, select, button {
    padding: 10px;
    border: 2px solid var(--border);
    border-radius: 8px;
    background: var(--card-bg);
    color: var(--text);
    font-family: 'Inter', sans-serif;
    font-size: 0.95rem;
    transition: border-color 0.3s, background 0.3s, transform 0.2s, box-shadow 0.2s;
}

input:focus, select:focus {
    outline: none;
    border-color: var(--primary);
    background: var(--card-bg);
    transform: scale(1.02);
    box-shadow: var(--glow);
}

button {
    background: linear-gradient(135deg, #a8e063, #56ab2f);
    border: none;
    color: #fff;
    border-radius: 16px 16px 16px 0;
    font-family: 'Poppins', sans-serif;
    font-size: 1.05rem;
    font-weight: 600;
    padding: 12px 24px;
    margin: 6px 0;
    box-shadow: 0 2px 8px rgba(139,195,74,0.10);
    cursor: pointer;
    transition: background 0.2s, box-shadow 0.2s, transform 0.1s;
}

button:hover {
    background: linear-gradient(135deg, #56ab2f, #a8e063);
    box-shadow: 0 4px 16px rgba(139,195,74,0.18);
    transform: translateY(-2px);
}

.category-toggle, .row, .category-content, .result {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 20px;
    padding: 12px;
    background: var(--card-bg) url('https://www.transparenttextures.com/patterns/wood-pattern.png') repeat;
    background-size: 200px 200px;
    background-blend-mode: overlay;
    opacity: 0.95;
    border-radius: 12px;
    box-shadow: var(--shadow);
    border: 1px solid transparent;
}

.category-toggle-button, .modifier-button {
    background: #e8f5e9;
    color: #388E3C;
    border: 2px solid #a8e063;
    border-radius: 12px 12px 12px 0;
    font-family: 'Poppins', sans-serif;
    font-size: 1rem;
    font-weight: 500;
    margin-bottom: 10px;
    margin-right: 8px;
    padding: 10px 18px;
    box-shadow: 0 1px 4px rgba(139,195,74,0.08);
    transition: background 0.2s, border-color 0.2s, color 0.2s;
}

.category-toggle-button.active, .modifier-button.active {
    background: #a8e063;
    color: #fff;
    border-color: #56ab2f;
}

.modifier-button.disabled {
    background: var(--border);
    cursor: not-allowed;
    opacity: 0.6;
    transform: none;
}

.fruit-button {
    background: #f5fbe7;
    border: 2px solid #c8e6c9;
    border-radius: 14px;
    padding: 14px;
    width: 110px;
    text-align: center;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s, transform 0.1s, box-shadow 0.2s;
    box-shadow: 0 2px 8px rgba(139,195,74,0.10);
    margin-bottom: 10px;
}

.fruit-button img {
    width: 60px;
    height: 60px;
    object-fit: contain;
    background: #f5fbe7;
    border-radius: 10px;
    margin-bottom: 8px;
    border: 1.5px solid #a8e063;
}

.fruit-button span {
    font-family: 'Poppins', sans-serif;
    font-size: 1rem;
    color: #388E3C;
    font-weight: 500;
}

.fruit-button.active {
    background: #a8e063;
    border-color: #56ab2f;
    color: #fff;
    box-shadow: 0 4px 16px rgba(139,195,74,0.18);
}

.fruit-button.active span {
    color: #fff;
}

.result {
    font-family: 'Poppins', sans-serif;
    font-size: 1.4rem;
    font-weight: 600;
    color: var(--accent);
    text-align: center;
    margin-top: 20px;
}

.category-content {
    display: none;
}

.category-content.active {
    display: flex;
}

.hidden {
    display: none;
}

#layoutToggle, #themeToggle {
    position: fixed;
    top: 16px;
    right: 16px;
    font-family: 'Poppins', sans-serif;
    font-size: 0.9rem;
    padding: 8px 16px;
    z-index: 1000;
    margin-bottom: 16px;
}

#themeToggle {
    left: 16px;
}

.layout-side-by-side {
    display: flex;
    gap: 32px;
}

.layout-stacked {
    display: block;
}

.layout-stacked .left-panel, .layout-stacked .right-panel {
    width: 100%;
    margin-bottom: 18px;
}

.left-panel, .right-panel {
    margin: 12px 0;
    padding: 28px 24px;
    background: #fffbe7;
    border: 2px solid #dcedc8;
    box-shadow: 0 2px 12px rgba(139,195,74,0.08);
}

.tooltip {
    position: relative;
}

.tooltip:hover::after {
    content: attr(data-tooltip);
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    background: var(--primary);
    color: #FFFFFF;
    padding: 8px 12px;
    border-radius: 6px;
    font-family: 'Inter', sans-serif;
    font-size: 0.85rem;
    white-space: nowrap;
    z-index: 10;
    box-shadow: var(--shadow);
}

#selectedModifiersFormulaExplain, #selectedModifiersDisplay, #mutationBreakdown {
    font-family: 'Inter', sans-serif;
    font-size: 0.9rem;
    color: var(--text-light);
    margin-top: 12px;
    padding: 8px;
    background: var(--card-bg);
    border-radius: 8px;
}

footer {
    text-align: center;
    margin-top: 40px;
    font-family: 'Poppins', cursive, sans-serif;
    font-size: 1.1rem;
    color: #689f38;
    background: url('https://cdn.pixabay.com/photo/2017/01/31/13/14/flowers-2021757_1280.png') repeat-x bottom;
    background-size: contain;
    padding-bottom: 48px;
    border-radius: 0 0 18px 18px;
}

@media (max-width: 900px) {
    .layout-side-by-side {
        flex-direction: column;
        gap: 0;
    }
    .left-panel, .right-panel {
        padding: 16px 8px;
    }
    .fruit-button {
        width: 90px;
    }
    .fruit-button img {
        width: 44px;
        height: 44px;
    }
    h1 {
        font-size: 1.5rem;
        padding: 12px 12px 12px 36px;
    }
    h1::before {
        width: 22px;
        height: 22px;
    }
    h2 {
        font-size: 1.1rem;
    }
}

/* Improved Toggle Button Styles for Frontend */
.toggle-switch {
    display: inline-flex;
    align-items: center;
    width: 60px;
    height: 32px;
    position: relative;
    margin: 0 10px;
    vertical-align: middle;
}
.toggle-switch input[type="checkbox"] {
    display: none;
}
.toggle-slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--border);
    border-radius: 32px;
    transition: background 0.3s;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.toggle-switch input[type="checkbox"]:checked + .toggle-slider {
    background: var(--gradient);
}
.toggle-slider:before {
    position: absolute;
    content: "";
    height: 28px;
    width: 28px;
    left: 2px;
    bottom: 2px;
    background: #fff;
    border-radius: 50%;
    transition: transform 0.3s, background 0.3s;
    box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}
.toggle-switch input[type="checkbox"]:checked + .toggle-slider:before {
    transform: translateX(28px);
    background: #fff;
}
.toggle-slider:focus {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
}
.toggle-label {
    margin-left: 12px;
    font-family: 'Inter', sans-serif;
    font-size: 1rem;
    color: var(--text);
    user-select: none;
}

/* Category Button Spacing */
.category-toggle-button {
    margin-bottom: 8px;
}

/* Mutation Border Colors */
.modifier-button.active.rainbow { border-color: gold !important; }
.modifier-button.active.gold { border-color: gold !important; }
.modifier-button.active.shocked { border-color: #ffe66d !important; }
.modifier-button.active.frozen { border-color: #72bff5 !important; }
.modifier-button.active.chilled { border-color: #72bff5 !important; }
.modifier-button.active.wet { border-color: #66b6e3 !important; }
.modifier-button.active.choc { border-color: #3d2218 !important; }
.modifier-button.active.moonlit { border-color: #999dff !important; }
.modifier-button.active.bloodlit { border-color: #B00000 !important; }
.modifier-button.active.celestial { border-color: #f04ac3 !important; }
.modifier-button.active.disco { border-color: #f48fd6 !important; }
.modifier-button.active.zombified { border-color: #4bb973 !important; }
.modifier-button.active.plasma { border-color: #9d2d6f !important; }
.modifier-button.active.voidtouched { border-color: #D24CFF !important; }
.modifier-button.active.pollinated { border-color: #ffaa1c !important; }
.modifier-button.active.honeyglazed { border-color: #ffc94d !important; }
.modifier-button.active.dawnbound { border-color: #ffccff !important; }
.modifier-button.active.heavenly { border-color: #F2EB99 !important; }
.modifier-button.active.cooked { border-color: #cc6600 !important; }
.modifier-button.active.burnt { border-color: #1e1e1e !important; }
.modifier-button.active.molten { border-color: #e76a0b !important; }
.modifier-button.active.meteoric { border-color: #403483 !important; }
.modifier-button.active.windstruck { border-color: #a2b9d1 !important; }
.modifier-button.active.sundried { border-color: #cf5d00 !important; }
.modifier-button.active.alienlike { border-color: #5cc6b1 !important; }
.modifier-button.active.verdant { border-color: #386f28 !important; }
.modifier-button.active.paradisal { border-color: #9dc237 !important; }
.modifier-button.active.galactic { border-color: #a96cd4 !important; }
.modifier-button.active.sandy { border-color: #d4bf8d !important; }
.modifier-button.active.clay { border-color: #966450 !important; }
.modifier-button.active.ceramic { border-color: #eab892 !important; }
.modifier-button.active.aurora { border-color: #6258ac !important; }
.modifier-button.active.twisted { border-color: #b8b8b8 !important; }
.modifier-button.active.cloudtouched { border-color: #defcfc !important; }
.modifier-button.active.ancientamber { border-color: #893314 !important; }
.modifier-button.active.amber { border-color: #ffc000 !important; }
.modifier-button.active.fried { border-color: #974d1c !important; }
.modifier-button.active.oldamber { border-color: #ac6e5e !important; }