/* Yhteiset tyylit ohjaus 6:n React-esimerkeille. */

body {
    font-family: sans-serif;
    margin: 1rem;
    max-width: 45rem;
}

label {
    display: block;
    margin-bottom: 0.3rem;
}

fieldset {
    margin-bottom: 1rem;
}

/* :user-invalid osuu vasta kun käyttäjä on itse muokannut kenttää.
   Pelkkä :invalid värittäisi kaikki tyhjät pakolliset kentät punaisiksi
   heti sivun latauduttua, ennen kuin käyttäjä on tehnyt mitään. */
input:user-invalid, select:user-invalid {
    border: 2px solid #a00000;
}

input:user-valid, select:user-valid {
    border: 2px solid #1a7a1a;
}

.virhe {
    color: #a00000;
    font-size: 0.85rem;
}

/* Autolistaus */

ul.autot {
    list-style: none;
    padding: 0;
    max-width: 30rem;
}

ul.autot li {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.3rem;
}

/* Valintapainike näyttää tekstiltä mutta on oikea painike, joten se toimii
   myös näppäimistöllä ja ruudunlukija kertoo sen tilan. */
.valinta {
    flex-grow: 1;
    text-align: left;
    padding: 0.4rem;
    background: none;
    border: 1px solid transparent;
    font: inherit;
    color: inherit;
    cursor: pointer;
}

.valinta:hover {
    border-color: currentColor;
}

.valinta[aria-pressed="true"] {
    font-weight: bold;
    border-color: currentColor;
}

.poista {
    padding: 0.2rem 0.5rem;
    font: inherit;
    cursor: pointer;
}

.laskuri {
    padding: 0.5rem;
    border: 1px solid;
    display: inline-block;
    margin-bottom: 1rem;
}

/* Ruudunlukijalle tarkoitettu alue: ei näy, mutta luetaan. */
.vain-ruudunlukijalle {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}
