:root {
    /* One Dark Theme */
    /* Specific theme variables */

    /* Brand */
    --brand-primary: #61afef;
    /* blue */
    --brand-danger: #e06c75;
    /* red */
    --brand-tertiary: #e5c07b;
    /* yellow */

    /* Pure Atom One Dark defaults */
    --bg-base: #282c34;
    /* main editor background */
    --bg-panel: #21252b;
    /* panels / sidebar */
    --bg-component: #2c313a;
    /* raised elements */

    --text-primary: #abb2bf;
    /* default foreground */
    --text-secondary: #828997;
    /* softer muted text */
    --text-inverse: #ffffff;

    --border-default: #181a1f;
    /* subtle dark borders */
    --border-muted: #3b4048;

    --input-bg: #1e2228;
    --input-text: #abb2bf;
    --input-disabled-bg: #3b4048;

    /* Theme variables */

    --primary-color: var(--brand-primary);
    --danger-color: var(--brand-danger);
    --tertiary-color: var(--brand-tertiary);

    --primary-text-color: var(--text-primary);
    --secondary-text-color: var(--text-secondary);
    --primary-button-text-color: var(--text-inverse);

    --background-color: var(--bg-base);
    --panel-background-color: var(--bg-panel);
    --component-background-color: var(--bg-component);

    --border-color: var(--border-default);

    --disabled-border-color: var(--border-muted);

    --input-background: var(--input-bg);
    --input-disabled-background-color: var(--input-disabled-bg);
    --input-text-color: var(--input-text);

    /* Color filter variables */
    --primary-color-filter: invert(63%) sepia(32%) saturate(706%) hue-rotate(181deg) brightness(95%) contrast(92%);
    --ok-color-filter: invert(28%) sepia(66%) saturate(4962%) hue-rotate(96deg) brightness(92%) contrast(106%);
    --danger-color-filter: invert(63%) sepia(21%) saturate(1232%) hue-rotate(314deg) brightness(92%) contrast(89%);
    --tertiary-color-filter: invert(77%) sepia(29%) saturate(541%) hue-rotate(359deg) brightness(92%) contrast(90%);
}

body.dark-theme {
    background-color: #000;
    color: #fff;
    font-family: 'Courier New', Courier, monospace;
}

.container {
    width: 80%;
    margin: 0 auto;
    padding: 20px;
}

h1 {
    text-align: center;
    color: #39ff14;
}

#login-form {
    border-radius: 5px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    width: 300px;
    text-align: center;
    margin: 30% auto auto auto;
}

@media (max-width: 600px) {
    #login-form {
        margin: 20em auto auto auto;
    }
}

input {
    color: var(--input-text-color);
    border: 1px solid var(--border-color);
    border-radius: 5px;
    height: 2em;
    background-color: var(--input-background);
}

input:focus {
    outline: none;
    border: 1px solid var(--border-color);
}

input[type="password"] {
    width: 100%;
    padding: 10px;
    margin: 10px 0;
}

#album-list {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

.thumbnail {
    background-color: #111;
    border-radius: 8px;
    padding: 5px;
    text-align: center;
    transition: transform 0.2s;
}

.thumbnail:hover {
    transform: scale(1.05);
}

.thumbnail img {
    width: 100%;
    height: auto;
    border-radius: 4px;
}

.thumbnail h2 {
    margin: 10px 0;
    font-size: 1.2em;
    color: #39ff14;
}

.image {
    height: 100%;
}

@media (max-width: 600px) {
    .image {
        height: inherit;
        width: 90%;
    }
}


/* Backdrop (dark overlay) */
.modal-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;

    background: rgba(0, 0, 0, 0.5);

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

    z-index: 1000;

    /* fade-in animation */
    animation: fadeIn 0.2s ease;
}

/* Modal box */
.modal {
    background: #1e1e1e;
    color: #fff;

    height: 90%;

    padding: 20px;
    border-radius: 10px;

    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4);

    animation: scaleIn 0.2s ease;
}

@media (max-width: 600px) {
    .modal {
        max-width: 80%;
        max-height: 60%;
        margin-bottom: 1em;
    }
}

/* Header */
.modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
    border-bottom: 1px solid var(--primary-color);
}

.modal-header-title {
    font-size: large;
    font-weight: bold;
}

/* Close button */
.close-btn {
    background: transparent;
    border: none;
    color: #fff;
    font-size: 18px;
    cursor: pointer;
}

/* Body */
.modal-body {
    font-size: 14px;
    height: inherit;
}


.primary-button {
    background-color: var(--primary-color);
    color: var(--primary-button-text-color);
    padding: 0.2em 0.4em;
    border: none;
    border-radius: 4px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease-in-out;
}

.primary-button:hover {
    background-color: var(--tertiary-color);
}

.primary-img-button {
    background-color: transparent;
    border: none;
    cursor: pointer;

    & img {
        filter: var(--primary-color-filter);
    }

    & img:hover {
        filter: var(--tertiary-color-filter);
    }
}


/* Animations */
@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes scaleIn {
    from {
        transform: scale(0.95);
        opacity: 0;
    }

    to {
        transform: scale(1);
        opacity: 1;
    }
}