* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; font-family: Arial, Helvetica, sans-serif; background: #fff; color: #000; }
.app { min-height: calc(100vh - 28px); display: flex; }
.sidebar { width: 410px; background: #dfe6ed; min-height: calc(100vh - 28px); padding: 0 4px; position: relative; }
.logo-wrap { height: 320px; display: flex; align-items: flex-start; justify-content: center; overflow: hidden; }
.logo { width: 410px; height: 310px; object-fit: cover; object-position: top left; }
.menu-title, .account-title { background: #137da5; color: #fff; font-size: 19px; line-height: 26px; height: 26px; padding-left: 6px; }
.menu { padding: 6px 0 12px 6px; font-size: 15px; line-height: 17px; min-height: 294px; }
.menu a, .menu span { display: block; color: #006a9a; text-decoration: none; font-weight: 400; }
.menu a { font-weight: 700; }
.account-title { position: absolute; left: 4px; right: 4px; bottom: 4px; }
.content { flex: 1; position: relative; min-height: calc(100vh - 28px); background: #fff; display: flex; align-items: center; justify-content: center; }
.screen { display: none; width: 100%; height: 100%; align-items: center; justify-content: center; text-align: center; padding: 50px; }
.screen.active { display: flex; }
.center-block { max-width: 650px; margin: 0 auto; font-weight: 700; font-size: 19px; line-height: 1.08; }
h1 { font-size: 22px; margin: 0 0 18px; letter-spacing: .5px; }
h2 { font-size: 34px; margin: 0 0 20px; }
.series-label { position: absolute; top: 38px; left: 0; right: 0; text-align: center; font-weight: 700; font-size: 24px; color: #006a9a; }
.letter-zone { appearance: none; border: 0; background: transparent; width: min(550px, 70vw); height: min(360px, 55vh); cursor: pointer; font-size: clamp(100px, 20vw, 230px); font-weight: 800; color: #111; display: flex; align-items: center; justify-content: center; }
.letter-zone:focus { outline: 3px solid #84a9d4; border-radius: 18px; }
.hint { position: absolute; bottom: 60px; left: 0; right: 0; text-align: center; color: #555; font-size: 15px; }

.next-btn:hover { filter: brightness(.96); }
.footer { position: fixed; left: 0; right: 0; bottom: 0; height: 28px; background: #000; }
.ok { color: #0b7c2d; }
.error { color: #c30000; }
@media (max-width: 900px) {
    .app { display: block; }
    .sidebar { width: 100%; min-height: auto; padding-bottom: 32px; }
    .logo-wrap { height: 150px; justify-content: flex-start; }
    .logo { width: 210px; height: auto; }
    .menu { min-height: auto; columns: 2; }
    .account-title { position: static; }
    .content { min-height: 65vh; }
}

/* menu */

div#menu a {
    font-size: 16px;
    color: #1373a0;
    text-decoration: none;
	font-family: Verdana;
}

.alert-erreur{
    background: #ffe5e5;
    border: 3px solid #dc3545;
    border-radius: 12px;
    box-shadow: 0 8px 20px rgba(220,53,69,.25);
    transition: all .3s ease;
    animation: shake .45s;
	padding:10px;
}

.alert-success{
    background: #e8f8ec;
    border: 3px solid #28a745;
    border-radius: 12px;
    color: #155724;
    font-weight: 600;
    box-shadow: 0 8px 20px rgba(40,167,69,.25);
    transition: all .3s ease;
    animation: successPulse .4s;
	padding:10px;
}

.next-btn {
    position: fixed;
    right: 38px;
    bottom: 78px;
    width: 54px;
    height: 44px;

    display: flex;
    justify-content: center;
    align-items: center;

    border-radius: 12px;
    border: 3px solid #426b9d;
    color: #426b9d;
    background: #9db9d9;

    font-size: 20px;
    font-weight: 900;

    cursor: pointer;
    z-index: 20;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .45);
}
