* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}

:root {
    --bg: #f3f2ef;
    --text: hsl(40, 6%, 10%);
    --label: hsl(45, 6%, 15%);
    --accent: #999482;
    --accent-hover: #7f7b6e;
    --muted-bg: #f2f2f2;
    --card-bg: #ffffff;
    --white: #ffffff;
    --border: #c7c7c7;
    --border-strong: #c4a76d;
    --separator: #d3c1b3;
    --legend-border: #ccc;
    --shadow: rgba(89, 60, 43, 0.15);
    --separator-shadow: rgba(0,0,0,0.1);
    --lock-hover-bg: rgba(0,0,0,0.04);
    --lock-pressed-bg: rgba(153,148,130,0.12);
    --lock-pressed-bg-hover: rgba(153,148,130,0.2);
    --contrast: white;
}

/* Dark theme variables */
.dark {
    --bg: #171717;
    --text: #ece6dd;
    --label: #d6cdc1;
    --accent: #999284;
    --accent-hover: #999284;
    --muted-bg: #242424;
    --card-bg: #1f1f1f;
    --white: #ffffff;
    --border: #3a3a3a;
    --border-strong: #999284;
    --separator: #2f2f2f;
    --legend-border: #555;
    --shadow: rgba(0,0,0,0.6);
    --separator-shadow: rgba(0,0,0,0.6);
    --lock-hover-bg: rgba(255,255,255,0.03);
    --lock-pressed-bg: rgba(201,161,90,0.12);
    --lock-pressed-bg-hover: rgba(201,161,90,0.22);
    --contrast: #000000;
}

/* Custom title font */
@font-face {
    font-family: 'Vezus';
    src: local('Vezus'),
         url('fonts/vezus/vezus.woff2') format('woff2'),
         url('fonts/vezus/vezus.woff') format('woff'),
         url('fonts/vezus/Vezus.woff2') format('woff2'),
         url('fonts/vezus/Vezus.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Vezus';
    src: local('Vezus Black'), local('Vezus-Black'),
         url('fonts/vezus/vezus-black.woff2') format('woff2'),
         url('fonts/vezus/vezus-black.woff') format('woff'),
         url('fonts/vezus/Vezus-Black.woff2') format('woff2'),
         url('fonts/vezus/Vezus-Black.woff') format('woff');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

body {
    background-color: var(--bg);
    color: var(--text);
    line-height: 1.6;
}

.container {
    max-width: 900px;
    margin: 0 auto;
    padding: 20px;
}


.floating-lock {
    position: fixed;
    top: 12px;
    right: 12px;
    z-index: 1000;
    background: transparent;
    color: var(--text);
    border: none;
    border-radius: 50%;
    padding: 6px;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
    width: auto;
    min-width: 0;
    margin: 0;
    box-shadow: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    filter: saturate(0.1);
}
.floating-theme {
    position: fixed;
    top: 12px;
    right: 56px; /* placed left of lock */
    z-index: 1000;
    background: transparent;
    color: var(--text);
    border: none;
    border-radius: 50%;
    padding: 6px;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    width: auto;
    min-width: 0;
    margin: 0;
    box-shadow: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.floating-theme:hover { opacity: 0.9; background: var(--lock-hover-bg); }
.floating-theme[aria-pressed="true"] { color: #000; background: var(--lock-pressed-bg); }
.floating-theme[aria-pressed="true"]:hover { background: var(--lock-pressed-bg-hover); }
.floating-lock:hover { opacity: 0.8; background: var(--lock-hover-bg); }
.floating-lock[aria-pressed="true"] { color: #000; background: var(--lock-pressed-bg); }
.floating-lock[aria-pressed="true"]:hover { background: var(--lock-pressed-bg-hover); }

h1 {
    text-align: center;
    margin-bottom: 30px;
    color: var(--text);
    font-family: 'Vezus', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    text-transform: uppercase;
    font-weight: 900;
}



.tabs {
    display: flex;
    margin-bottom: -1px;
    gap: 8px;
}

.tabs.inner {
    justify-content: center;
    margin: 20px 0 0;
}

.tab-link {
    padding: 10px 20px;
    cursor: pointer;
    border: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    background-color: var(--muted-bg);
    border-radius: 5px 5px 0 0;
    font-weight: 600;
    color: var(--text);
    transition: background-color 0.3s;
}

.tab-link:hover { background-color: var(--accent); color: var(--white); border-color: var(--accent); }
.tab-link.active { background-color: var(--accent); color: #000; border-bottom: 1px solid var(--accent); }

.tab-content { display: none; }
.tab-content.active { display: block; }

.calculator {
    background-color: var(--card-bg);
    border-radius: 0 10px 10px 10px;
    padding: 25px;
    box-shadow: 0 5px 15px var(--shadow);
    border: 1px solid var(--border);
    border-top: none;
}

/* Mostrar solo una receta a la vez en Baguette */
#baguette-tab .calculator { display: none; }
#baguette-tab .calculator.active { display: block; }

.recipe-selector { display: flex; justify-content: center; gap: 10px; margin-bottom: 20px; }
.recipe-btn {
    background-color: var(--muted-bg);
    color: var(--text);
    border: 1px solid var(--border);
    padding: 10px 20px;
    border-radius: 5px;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s;
}
.recipe-btn.active { background-color: var(--accent); color: #000; border-color: var(--accent); }
.recipe-btn:hover { background-color: var(--accent); color: var(--white); border-color: var(--accent); }

.recipe-description { text-align: center; margin-bottom: 20px; font-style: italic; color: var(--label); }

.input-group { margin-bottom: 15px; display: flex; flex-direction: column; }
label { font-weight: 600; margin-bottom: 5px; color: var(--label); }
input, textarea, select { padding: 10px; border: 1px solid var(--border); border-radius: 5px; font-size: 16px; background-color: var(--card-bg); color: var(--text); }
input::placeholder, textarea::placeholder { color: var(--label); opacity: 0.9; }

.separator { height: 1px; background-color: var(--separator); margin: 20px 0; border: none; box-shadow: 0 1px 2px var(--separator-shadow); }

button { background-color: var(--accent); color: var(--contrast); border: none; padding: 12px; border-radius: 5px; font-size: 16px; font-weight: 600; cursor: pointer; width: 100%; margin: 20px 0; transition: background-color 0.3s; }
button:hover { background-color: var(--accent-hover); }

/* Mostrar texto en negro cuando el botón está siendo presionado o tiene foco */
button:active, button:focus, button:focus-visible, button[aria-pressed="true"] {
    color: #000;
    outline: none;
}

.load-mass-btn { 
    background-color: var(--accent); 
    color: var(--contrast); 
    margin: 10px 0; 
    padding: 10px; 
    font-size: 14px; 
}
.load-mass-btn:hover { 
    background-color: var(--accent-hover); 
}

.results { margin-top: 20px; background-color: var(--card-bg); padding: 20px; border-radius: 5px; border-left: 5px solid var(--accent); }
.results h2 { margin-bottom: 15px; color: var(--accent); }
.totals-heading { margin-top: 20px; border-top: 1px dashed #ddd; padding-top: 15px; }
ul { list-style-type: none; }
li { margin-bottom: 10px; font-size: 16px; }
li span { font-weight: 600; color: var(--accent); }

.visual-representation { display: flex; flex-direction: column; align-items: center; margin-top: 20px; }
.chart-legend { display: flex; flex-wrap: wrap; justify-content: center; margin-top: 15px; gap: 10px; }
.legend-item { display: flex; align-items: center; margin: 5px 10px; }
.color-box { width: 15px; height: 15px; border-radius: 3px; margin-right: 6px; border: 1px solid var(--legend-border); }

@media (min-width: 768px) {
    .input-group { flex-direction: row; align-items: center; justify-content: space-between; }
    label { width: 50%; margin-bottom: 0; }
    input { width: 45%; }
}


/* Tabs scrollables en mobile */
@media (max-width: 767px) {
    .tabs {
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x proximity;
        padding-bottom: 6px; /* evita superposición con scrollbar */
    }

    .tabs::-webkit-scrollbar { display: none; }
    .tabs { scrollbar-width: none; }

    .tab-link {
        flex: 0 1 auto; /* evita que se encojan y permite deslizar */
        scroll-snap-align: start;
    }
}

