* {
    box-sizing: border-box;
}

body {

    margin: 0;

    min-height: 100vh;

    font-family:
        Arial,
        sans-serif;

    background: white;

    color: #081e41;

    display: flex;

    align-items: center;

    justify-content: center;
}

.app {

    width: 100%;

    max-width: 420px;

    padding: 30px;
    
    box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
}

h1 {

    text-align: center;

    margin: 0 0 10px;
}

.subtitle {

    text-align: center;

    opacity: 0.7;

    margin-bottom: 30px;
}

.screen {

    display: none;
}

.screen.active {

    display: block;
}

.user-list {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
}

.user-button {

    min-width: 25%;
    
    aspect-ratio: 1 / 1;

    padding: 18px;

    margin-bottom: 12px;
    
    border: thin solid #081e41;

    border-radius: 12px;

    font-size: 18px;

    cursor: pointer;

}

.pin-display {

    text-align: center;

    font-size: 32px;

    letter-spacing: 10px;

    margin: 30px 0;
}

.keypad {

    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 10px;
}

.key {

    padding: 20px;

    border: thin solid #081e41;

    border-radius: 12px;

    font-size: 24px;

    cursor: pointer;
}

.key.zero {

    grid-column: 2;
}

.pin-actions {

    display: flex;

    gap: 10px;

    margin-top: 15px;
}

.pin-actions button {

    flex: 1;

    padding: 15px;

    border: 0;

    border-radius: 12px;

    cursor: pointer;
}

.error {

    color: #ffb3b3;

    text-align: center;

    margin-top: 15px;
}

.logged-in {

    text-align: center;
}

.logged-in h2 {

    margin-bottom: 5px;
}

.logged-in p {

    opacity: 0.7;
}

.logout {

    margin-top: 30px;

    padding: 14px 30px;

    border: 0;

    border-radius: 12px;

    cursor: pointer;
}