:root {
    color-scheme: light dark;
}
/* Ensure padding/border are included in widths to avoid overflow */
*, *::before, *::after {
    box-sizing: border-box;
}

body {
    font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
    margin: 2rem;
}

.container {
    max-width: 680px;
    margin: 0 auto;
}

h1 {
    font-size: 1.25rem;
    margin: 0 0 1rem;
}

.header {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-bottom: 1rem;
}
.logo {
    width: 32px;
    height: 32px;
    object-fit: contain;
}

.grid {
    display: grid;
    /* Use minmax(0,1fr) so children can shrink and not overflow */
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: .75rem 1rem;
    align-items: center;
}
/* Allow grid children to shrink below their content min-size */
.grid > * { min-width: 0; }

label {
    font-weight: 600;
}

input[type=number] {
    width: 100%;
    max-width: 100%;
    display: block;
    padding: .5rem .6rem;
    border: 1px solid #8884;
    border-radius: .5rem;
    font: inherit;
}

.card {
    border: 1px solid #8884;
    border-radius: .75rem;
    padding: 1rem;
}

.result {
    margin-top: 1rem;
    display: flex;
    align-items: baseline;
    gap: .5rem;
}

.result .value {
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: .02em;
}

/* Results arranged in two columns */
.results-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: .5rem 1rem;
    margin-top: .5rem;
}
@media (max-width: 520px) {
    .results-grid { grid-template-columns: 1fr; }
}

.hint {
    color: #888;
    font-size: .9rem;
}

p.hint {
    margin-top: .75rem;
}
