body {
    font-size: 1.5em;
    /* noise image */
    background-image: url('/images/background.png');
}

.button {
    display: inline-block;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    min-width: 0.1em;
    padding: 0.3em 1em;
    font-family: Helvetica, Arial;
    font-size: 1.5em;
    line-height: 2em;
    text-decoration: none;
    color: #FFF;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.75);
    background: #5e0d0c;
    outline: none;
    border-radius: 0.3em;
    border: 1px solid #4c0300;
    box-shadow: inset 1px 1px 0px rgba(255, 255, 255, 0.25),
        /* highlight */
        inset 0 0 6px #a23227,
        /* inner glow */
        inset 0 80px 80px -40px #ac3223,
        /* gradient */
        1px 1px 3px rgba(0, 0, 0, 0.75);
    /* shadow */

    position: relative;
    overflow: visible;
}

.button::before {
    content: '';
    display: block;
    position: absolute;
    top: -7px;
    left: -3px;
    right: 0;
    height: 1em;
    background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAAXCAYAAACS5bYWAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABFpJREFUeNrUV0tIo1cUvpkYjQ4xxSA6DxuNqG0dtaUKOgs3s6i0dFd3pSsXdjeIixakiGA34sZuXCkoONLFwJTK4GMYLYXg29gatTpiXurkbd7vv9/5ub+IxuhA7eiFQ5Kbc8/57ne/e87/ywRBYLdl3GG3aNwqsLJ0k0tLS+fmcnNzWUVFBVMoFGx2djarvLxcm5OTw+bm5iytra2xc4ExNjY27iqVyvvwK6CpeDzuCYVC1urq6qDA9UcfPp+PHR4esmAwKK6tr68/l5/8rgQ2Ozub1dbWyiYmJooaGxt/VqvV38jlchX9l0qlwoFA4DWS/RKLxRxFRUVf5+XlPcaaT2AP0sVPJBL2SCRiAPBpu93+vKamZo/Ae71eZjabWV1dXVqw7CKwp43ksrCw8Bhg7MJ/PLDZ5PHx8cz29vYT5JGD/bSYLgTrcDgYdk6siSc6NjZWDaAe4ZoHQL+cmZnRpZPnhWDpD8kw7uKo9ML/NMCsd2tr61vkzboMrEyv138M7TyLRqMWMBsX3sMgaZhMpp+AR5EJrCocDpuEGzKg4x8khs+CVWxubvZfR9JkMik4nU7BarUKLpeLmLsKuwIqTLynp4fqmIzASrqQT09Pf1VVVfX0KsWZ6uHBwQHTaDSsoKAgo6/H4xHLEcrVyRwuEisrKzs5XrrIVAVwiUVDKRRrL+YI32ewdVhMApuHWvcj6vids6J2u90MF4yBHUZNgKoEBaRBQalJqFSqtJfUYrGIlQX+ydXVVTN+u0tKSjQNDQ1axJVl2iTypebn55d7e3v/kqoDgZU1NTU9LCws/Py0M+2ekuGincxJ3yF+18jIyHJLS0slQJUWFxczrBeBE0vE5tHRkbixlZWVfSR8gTX/0P5gH7S1tX3Z3t7+BW8qAvwSfr8/jA0EIRM/qoFtampqbW9vTw+XA+ojUruVd3Z2tvb19T2TQFEim81GgVJoCvvj4+NLOJZgaWmpemdn5y3a6BbcnJDAw8HBwac6ne6eqCW5XDwB3qVSqM9/DAwMUNy/eVLabT7sI25qwgujThCBhWE+mAt2yNc4SQKSZrOQQE1HS22VJkmPAGTr7+//fX19fRk+Zgq0trbGeFAKEAQT98BSqKOj47vm5uaa/Px8JeIk4GcaHh6eWlxcfAU/A8xG67BxAX3fwdcbYUpSDJ06Z49Ak8ZC3OL8f3YiA4PBYKdLQ2AJ9OTk5GpXV9cQiCVh79M94QtlPLDUE/1gPNrd3f0W33W4cBoco48zQuy/IZYAMnGqlSc4c66L9JruQUaSARXeT8HGKzxAqFBekni6+h46+pMzGiJGMgTOJh1yU/KNEGDvZWvfBawkA9ppwGg0mrRa7SOI2g+gxOgbJIpdFpj72PnxSnPX8vqRxTURgBQWKisrH+GThOm+CtAzoK/9/Uiqq/6hoaHfdnd3jaOjo7/yY7yxbwqkWy3sQzpS2C6YirwvUJk0y7hurfyGRrnduPGvAAMASmo8wzeVwfsAAAAASUVORK5CYII=) no-repeat 0 0, url(data:image/png;base64,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) no-repeat 50% 0, url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAAXCAYAAACFxybfAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAodJREFUeNrsVb1rWlEUv2pN/GqspKRSKFYXWzEloIWif0Fn6dJChQ7OQil0qd3EzcEpg0OgdHDr4CQODk7VRlLMEIVqApX4We0zflR9/Z1Ui4T34ksaaAYP/Hzc673n/M6550PG8zz73yKjn0wm83fDYDAwo9HINBrNnwOQg4MDs0ql2lQqlfdAWont7ng8Pjw+Ps44nc4G1pI9EXWaSOzt7TGO42aH5Pv7+08ajUZ0MBiUeXEZd7vdL5VK5fX29rZ+5tQiEmdxKrlcjsEYczgcynK5/BKKv/IXFNz/XiqVXkHdjUuRIA9SqdRD8or/R8Ez9fr9fqHVakUR4c2z0REjIQuHw2ZcrPBXLCA0RHTezEdHjIQqkUhEr9I4HOILhQLf6/VoOUFEvDMiQiToDx1Cdz+bzZ6bUFarlel0OkkVUK/XWbvdPoVer5fh3ntsfwJ+CJ2XA4p0Op1bpBgJyxDehQQ6nQ5DZXHBYDBZq9V+EhFUndnr9drEqoc2bwJbwGPgtohuVSwWe2Gz2TZMJpNgRKi6qtUqg2EWj8dTgUDgo0KhWPN4PC70EvXOzs67fD6/S6kiRIKeZA1YJ2MiJNbdbvfTUCjkV6vVK2hcDF8GI2w0GrGTkxM2HA5PDxaLxSOfz/cWEfk81X0XIMMFgJJ/srBjCgk8IdcfuVyuZ36//7nFYtkQyAMumUzuRiKRD0jMFLa+AZOpYwqgB/ziBVqmVBKUO7eAB/R0WG/Z7XaTVqtdbTabHJL6EK2djBaBPHA0NSqpbUsiMUeEBgpF4Q5AbZrmSJ/yEWgBTaBNHl9kdkgmMUeG7qwAq9PqovceTA3zlxlgsuswyuXsGsiSxJLEkoSY/BZgAEjRodi+uBruAAAAAElFTkSuQmCC) no-repeat 100% 0;
}

.button:hover {
    background: #a61715;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.75), 0 0 40px #FFF;
    box-shadow: inset 1px 1px 0px rgba(255, 255, 255, 0.25),
        /* highlight */
        inset 0 0 6px #da3b2c,
        /* inner glow */
        inset 0 80px 80px -40px #dd4330,
        /* gradient */
        1px 1px 3px rgba(0, 0, 0, 0.75);
    /* shadow */
}

.button:focus {
    outline: none;
    /*FF*/
}

.button:active {
    box-shadow: inset 1px 1px 0px rgba(255, 255, 255, 0.25),
        /* highlight */
        inset 0 0 6px #da3b2c,
        /* inner glow */
        inset 0 80px 80px -40px #dd4330,
        /* gradient */
        0px 1px 0px rgba(255, 255, 255, 0.25);
    /* shadow */

    -webkit-transition: 50ms linear;
    -moz-transition: 50ms linear;
    -o-transition: 50ms linear;
    transition: 50ms linear;
}


/* other styles */
html,
body {
    width: 100%;
    height: 100%;
}

.bg {
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    display: table;
}

.centerer {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
}

.centerer>div {
    margin-bottom: 1em;
}

canvas {
    width: 100%;
    height: 100%;
}

#inputContainer form {
    display: flex;
    flex-direction: column;
    align-items: center;
}

#codeInput {
    margin: auto;
}

#responseContainer {
    margin-top: 3em;
    padding-top: 2.5em;
    padding-bottom: 2.5em;
    border-radius: 2em;
    background-color: white;
    width: 20em;
    height: 5em;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    box-shadow: inset 1px 1px 0px rgba(51, 0, 234, 0.25), inset 0 0 6px #3127a2, inset 0 80px 80px -40px #d3ccff, 1px 1px 3px rgba(255, 255, 255, 0.75);
}

div.hidden,
i.hidden {
    display: none !important;
}

#toggleUserCodeVisibility {
    background-color: white;
    color: rgb(135, 183, 254);
    border-color: rgb(135, 183, 254);
}

#toggleUserCodeVisibility:hover {
    background-color: rgb(135, 183, 254);
    color: black;
}

.no-link {
    color: inherit;
    text-decoration: none;
    pointer-events: none;
}

#logoutContainer {
    padding: 10px;
    background-color: rgb(157, 0, 0);
    border-radius: 10px;
    border: rgb(94, 13, 12) 2px solid;
    box-shadow: inset 1px 1px 0px rgba(255, 255, 255, 0.25),
        /* highlight */
        inset 0 0 6px #a23227,
        /* inner glow */
        inset 0 80px 80px -40px #ac3223,
        /* gradient */
        1px 1px 3px rgba(0, 0, 0, 0.75);
}

#logoutContainer:hover {
    background: #a61715;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.75), 0 0 40px #FFF;
    box-shadow: inset 1px 1px 0px rgba(255, 255, 255, 0.25),
        /* highlight */
        inset 0 0 6px #da3b2c,
        /* inner glow */
        inset 0 80px 80px -40px #dd4330,
        /* gradient */
        1px 1px 3px rgba(0, 0, 0, 0.75);
}

#logoutContainer svg {
    fill: white;
}

#letterIframe {
    width: 80%;
    height: 80vh;
    min-height: 800px;
    border: none;
}

#navigationIconsContainer a {
    color: white;
    font-size: 2em;
    text-decoration: none;
}

#navigationIconsContainer svg,
#navigationIconsContainer i {
    filter: drop-shadow(0 0 2px black) drop-shadow(0 0 2px black);
}


@media (max-width: 1000px) {
    #letterIframe {
        width: 100%;
        min-height: auto;
    }
}

#webViewWarning {
    background-color: white;
    padding: 1em;
    border-radius: 1em;
}

#webViewWarning svg {
    fill: black;
    font-size: 2em;
}

#copyContainer {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 1em;
    background-color: white;
    border-radius: 1em;
    cursor: pointer;
    width: 100%;
}

#copyContainer:hover {
    background-color: #f0f0f0;
}

/* Common white container styling for all content boxes */
.white-container {
    min-width: 400px;
    background-color: #ffffff;
    padding: 1.5em 2em;
    border-radius: 1.5em;
    box-shadow:
        inset 1px 1px 0px rgba(255, 255, 255, 0.8),
        inset 0 0 10px rgba(255, 255, 255, 0.3),
        0 4px 16px rgba(0, 0, 0, 0.35);
    border: 2px solid rgba(200, 200, 200, 0.3);
    max-width: 600px;
    margin: 1.5em auto 0 auto;
}

#nameContainer {
    text-align: center;
    padding: 2.5em;
    margin: 0 auto;
}

#gifteeNameDisplay {
    /* ensure the immediate giftee container is also solid white */
    background-color: #ffffff;
    padding: 1em 1.5em;
    border-radius: 1em;
}

/* Song containers wrapper - hover on right side when enough space */
#songContainersWrapper {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.mobile-instructions {
    display: inline-block;
}

@media (min-width: 1300px) {
    #songContainersWrapper {
        position: fixed;
        right: 20px;
        top: 20px;
        max-width: 400px;
        min-width: 350px;
    }
    
    #songContainersWrapper .white-container {
        margin: 0 !important;
    }

    .mobile-instructions {
        display: none;
    }
}

/* Match main theme colors for the share button inside the song share container */
#songShareContainer .btn-outline-light {
    color: rgb(135, 183, 254);
    border-color: rgb(135, 183, 254);
    background-color: transparent;
}

#songShareContainer .btn-outline-light:hover,
#songShareContainer .btn-outline-light:focus {
    color: #ffffff;
    background-color: rgb(135, 183, 254);
    border-color: rgb(135, 183, 254);
}
/* Online users styling */
.online-user-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: linear-gradient(135deg, #da3b2c 0%, #dd4330 100%);
    color: white;
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 0.85em;
    box-shadow: 0 2px 8px rgba(102, 126, 234, 0.3);
    transition: transform 0.2s, box-shadow 0.2s;
}

.online-user-badge:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4);
}

.online-user-badge i {
    font-size: 1.1em;
}

#onlineUsersContainer h5 {
    margin-bottom: 0.5em;
    color: #333;
}
