:root {
    color-scheme: light;
    --ink: #1d2b25;
    --muted: #64736a;
    --green: #17684d;
    --green-dark: #10513c;
    --mint: #e8f2eb;
    --line: #dce5dd;
    --paper: #ffffff;
}

* {
    box-sizing: border-box;
}

body {
    font-family: "Avenir Next", "Segoe UI", sans-serif;
    color: var(--ink);
    background: radial-gradient(ellipse at 12% 0%, rgba(205, 230, 211, 0.62), transparent 38%), #f2f5f1;
    line-height: 1.65;
}

.utility-page {
    margin: 0;
    padding: 20px;
}

.container {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: 0 18px 50px rgba(32, 54, 41, 0.09);
}

.container:has(.tool-list) {
    max-width: 680px;
    padding: 42px;
}

h1,
h2 {
    color: var(--ink);
    font-family: Georgia, "Times New Roman", serif;
    letter-spacing: 0;
}

h1 {
    line-height: 1.2;
}

h2 {
    margin-top: 1.6em;
}

p,
li {
    color: var(--muted);
}

p[style*="color"] {
    color: var(--muted) !important;
}

.back-link,
.lang-switch a,
.lang-selector a,
.privacy-link {
    color: var(--green);
    text-decoration: none;
}

.back-link {
    font-weight: 650;
}

.back-link:hover,
.lang-switch a:hover,
.lang-selector a:hover,
.privacy-link:hover {
    color: var(--green-dark);
    text-decoration: underline;
}

.tool-list {
    counter-reset: tools;
    gap: 10px;
}

.tool-list li {
    counter-increment: tools;
}

.tool-list a {
    position: relative;
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 18px;
    background: #f7faf7;
    border: 1px solid var(--line);
    border-radius: 6px;
    color: var(--ink);
    font-size: 0.98rem;
    font-weight: 650;
    text-align: left;
    text-transform: none;
    transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.tool-list a::before {
    content: "0" counter(tools);
    color: var(--green);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 0.9rem;
}

.tool-list a::after {
    content: "→";
    margin-left: auto;
    color: var(--green);
    font-size: 1.15rem;
}

.tool-list a:hover {
    background: var(--mint);
    border-color: #b7d1bf;
    color: var(--green-dark);
    transform: translateX(3px);
}

.container:has(.tool-list) h1 {
    margin: 0 0 28px;
    color: var(--ink);
    font-size: 2.25rem;
}

.container:has(.tool-list) .lang-selector {
    border-color: var(--line);
}

.lang-active {
    border-color: var(--green) !important;
}

form {
    border: 1px solid var(--line);
    border-radius: 8px;
}

.container:has(.tool-list) form {
    border: 0;
}

input:not([type="hidden"]),
textarea,
select {
    border: 1px solid #cbd7cd;
    border-radius: 6px;
    background: #fbfdfb;
    color: var(--ink);
    font: inherit;
}

input:focus,
textarea:focus,
select:focus {
    outline: 3px solid rgba(23, 104, 77, 0.16);
    border-color: var(--green);
}

label {
    color: #405248;
}

.container:has(#peso) form {
    padding: 24px;
    background: #f7faf7;
    border: 1px solid var(--line);
    border-radius: 8px;
}

.container:has(#peso) label {
    color: #405248;
}

.container:has(#peso) #resultado.success {
    background: #eef7f0;
    border-color: #a9cbb1;
    color: #215d37;
}

.container:has(#peso) #resultado.warning {
    background: #fff7e8;
    border-color: #e4c47f;
    color: #79550e;
}

.container:has(#peso) .info-section h2 {
    color: var(--green);
}

.container:has(#peso) .bmi-table th,
.container:has(#peso) .bmi-table td {
    border-color: var(--line);
}

.container:has(#peso) .bmi-table th {
    color: var(--green);
}

.utility-page .container {
    width: 100%;
    max-width: 720px;
    margin: 0 auto;
    padding: 40px;
}

.utility-page h1 {
    margin: 8px 0;
    text-align: center;
}

.utility-intro {
    margin: 0 0 28px;
    text-align: center;
}

.utility-form {
    display: grid;
    gap: 18px;
    padding: 0;
    border: 0;
    background: transparent;
}

.utility-field {
    display: grid;
    gap: 7px;
}

.utility-page .utility-field label {
    margin: 0;
    color: #405248;
    font-weight: 650;
}

.utility-page .utility-field input:not([type="checkbox"]),
.utility-page .utility-field select,
.utility-page .utility-field textarea,
.utility-page .utility-output-row input {
    width: 100%;
    min-height: 48px;
    padding: 11px 14px;
}

.utility-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.utility-actions {
    display: flex;
    gap: 12px;
}

.utility-page .utility-actions button {
    min-height: 48px;
    flex: 1;
}

.utility-page button:not(.calc-button) {
    border: 0;
}

.utility-page button.utility-secondary {
    border: 1px solid var(--line);
    background: var(--mint);
    color: var(--green-dark);
}

.utility-page button.utility-secondary:hover {
    background: #dcebe0;
}

.utility-result {
    padding: 18px 20px;
    border: 1px solid #c9ddce;
    border-radius: 6px;
    background: #f4f8f4;
    color: var(--green-dark);
    font-size: 1.05rem;
    font-weight: 650;
    overflow-wrap: anywhere;
}

.utility-result[hidden] {
    display: none;
}

.utility-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.utility-stats.three-cols {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.utility-stat {
    display: grid;
    align-content: center;
    min-height: 92px;
    gap: 4px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: #f7faf7;
    text-align: center;
}

.utility-stat strong {
    color: var(--green-dark);
    font-size: 1.45rem;
    line-height: 1.2;
}

.utility-stat span {
    color: var(--muted);
    font-size: 0.88rem;
}

.utility-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.utility-option {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: #f7faf7;
    color: var(--ink);
    font-weight: 500;
}

.utility-fieldset {
    min-width: 0;
    margin: 0;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 6px;
}

.utility-fieldset legend {
    padding: 0 6px;
    color: #405248;
    font-weight: 650;
}

.utility-page .utility-option input {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--green);
}

.utility-output-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
}

.utility-output-row input {
    min-width: 0;
}

.utility-page .utility-output-row button {
    min-width: 112px;
}

.utility-status {
    min-height: 1.5em;
    color: var(--muted);
    font-size: 0.92rem;
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.utility-info {
    margin-top: 36px;
    padding-top: 22px;
    border-top: 1px solid var(--line);
}

.utility-info h2 {
    margin-top: 0;
    color: var(--green);
    font-size: 1.3rem;
}

.utility-lang {
    margin-top: 28px;
    text-align: center;
}

.utility-lang a {
    color: var(--green);
    text-decoration: none;
}

.utility-lang a:hover {
    text-decoration: underline;
}

button:not(.calc-button) {
    border-radius: 6px;
    background: var(--green);
    color: #fff;
    font: inherit;
    font-weight: 650;
    transition: background-color 160ms ease, transform 160ms ease;
}

button:not(.calc-button):hover {
    background: var(--green-dark);
    transform: translateY(-1px);
}

.calc-button {
    min-height: 48px;
    border-radius: 6px;
    transition: filter 160ms ease, transform 160ms ease;
}

.calc-button:hover {
    filter: brightness(0.94);
    transform: translateY(-1px);
}

.number-btn {
    background: #f3f6f3;
    color: var(--ink);
}

.operator-btn {
    background: var(--mint);
    color: var(--green-dark);
}

.equal-btn {
    background: var(--green);
    color: #fff;
}

.ac-btn {
    background: #f9ece8;
    color: #9c3d2c;
}

.display {
    min-height: 66px;
    background: #f4f8f4;
    border-color: var(--line);
    color: var(--ink);
}

.result-area,
#resultado,
#resultado-php {
    border-radius: 6px;
    background: #f4f8f4;
    border-color: #c9ddce;
    color: var(--ink);
}

.result-area {
    color: var(--green-dark);
}

.success {
    border-color: #81b493;
    color: var(--green-dark);
}

.warning,
.error-style {
    color: #8d5b14;
}

.info-section,
footer,
.lang-selector {
    border-color: var(--line);
}

.info-section {
    color: var(--muted);
}

.bmi-table th,
.res-highlight {
    color: var(--green);
}

.footer,
footer {
    color: var(--muted);
}

@media (max-width: 600px) {
    body {
        padding: 16px;
    }

    .utility-page {
        padding: 16px;
    }

    .container,
    .container:has(.tool-list) {
        width: 100%;
        padding: 24px;
    }

    .utility-page .container {
        padding: 24px;
    }

    .utility-grid,
    .utility-options {
        grid-template-columns: 1fr;
    }

    .utility-stats,
    .utility-stats.three-cols {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .utility-output-row {
        grid-template-columns: 1fr;
    }

    .container:has(.tool-list) h1 {
        font-size: 1.9rem;
    }

    .controls {
        flex-direction: column;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}