* {
    box-sizing: border-box;
}

body {
    padding: 0;
    margin: 0;
    font-family: monospace, sans-serif;
    background-color: #222;
    color: #eee;
    text-align: center;
}

.wrap {
    width: 600px;
    margin: auto;
    max-width: 90%;
}

.row {
    display: flex;
    align-items: center;
    gap: 20px;
}

.column {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.flex-grow {
    flex-grow: 1;
}

/* btn */

.btn {
    background-color: #333;
    border-radius: 5px;
    padding: 10px 20px;
    cursor: pointer;
    transition: all 0.2s ease-in-out;
    color: #fff;
    text-decoration: none;
    border: none;
}

.btn.small {
    padding: 5px 10px;
}

.btn:hover {
    background-color: #444;
}

.btn.primary {
    background-color: rgb(0, 128, 0);
}

.btn.primary:hover {
    background-color: rgb(0, 160, 0);
}

.btn.brown {
    background-color: rgb(165, 42, 42);
}

.btn.brown:hover {
    background-color: rgb(201, 55, 55);
}


/* card */

.card {
    box-shadow: 0 0 10px green;
    border: 2px solid green;
    padding: 20px;
    border-radius: 10px;
    margin: auto;
    text-align: left;
}


.card .title {
    font-weight: bold;
    font-size: 1.3rem;
}

.card .time {
    color: #ddd;
}

/* header */

header {
    text-align: center;
    padding: 40px 0;
}

header .logo {
    font-size: 3rem;
    margin-bottom: 10px;
}


header .details {
    font-size: 1.1rem;
}

header .row {
    justify-content: center;
}



/* section */

.vcc-info {
    font-size: 1.1rem;
}

.vcc-container {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.vcc-container .vcc {
    padding: 10px 20px;
    box-shadow: 0 0 10px red;
    border: 2px solid red;
    border-radius: 10px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.vcc-container .vcc.active {
    box-shadow: 0 0 10px blue;
    border: 2px solid blue;
}



/* dialog and prompt */

.prompt, .vcc-prompt, .error-dialog, .creds-dialog {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 999;
    display: none;
}

.dialog {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 300px;
    background-color: #fff;
    color: #333;
    z-index: 999;
    padding: 20px;
    border-radius: 10px;
}

.dialog button {
    border: none;
    background-color: #eee;
    padding: 10px 20px;
    border-radius: 5px;
    color: #333;
}

.dialog button:hover {
    background-color: #ddd;
}

.dialog .buttons {
    display: flex;
    justify-content: end;
    gap: 10px;
}

.dialog input {
    width: 100%;
    border: 1px solid #333;
    font-size: 1.1rem;
}



/* input */

input, textarea, select {
    padding: 10px 20px;
    border: none;
    font-size: 1.1rem;
    font-family: monospace;
    border-radius: 5px;
}

textarea {
    background-color: rgba(255, 255, 255, 0.1);
    color: #fff;
    height: 200px;
    resize: none;
}

input[type="submit"] {
    background-color: green;
    color: #eee;
    cursor: pointer;
    transition: all 0.2s ease-in-out;
}


/* admin */

.admin {
    width: 300px;
}

.admin form {
    display: flex;
    flex-direction: column;
    gap: 10px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 350px;
}


.dashboard {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.dashboard a {
    display: block;
    color: #eee;
    text-decoration: none;
}

.dashboard form {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 300px;
    margin: auto;
}

.dashboard input {
    display: block;
    width: 100%;
}



.neon.white {
    color: #fff;
    text-shadow:
        0 0 7px #fff,
        0 0 10px #fff,
        0 0 21px #fff,
        0 0 42px #0fa,
        0 0 82px #0fa,
        0 0 92px #0fa,
        0 0 102px #0fa,
        0 0 151px #0fa;
}

.neon.red {
    color: red;
    text-shadow:
      0 0 7px red,
      0 0 10px red,
      0 0 21px red,
      0 0 42px red,
      0 0 82px red,
      0 0 92px red,
      0 0 102px red,
      0 0 151px red;
}


.neon.yellow {
    color: yellow;
    text-shadow:
      0 0 7px yellow,
      0 0 10px yellow,
      0 0 21px yellow,
      0 0 42px yellow,
      0 0 82px yellow,
      0 0 92px yellow,
      0 0 102px yellow,
      0 0 151px yellow;
}

.neon.blue {
    color: blue;
    text-shadow:
      0 0 7px blue,
      0 0 10px blue,
      0 0 21px blue,
      0 0 42px blue,
      0 0 82px blue,
      0 0 92px blue,
      0 0 102px blue,
      0 0 151px blue;
}


.neon.green {
    color: green;
    text-shadow:
      0 0 7px green,
      0 0 10px green,
      0 0 21px green,
      0 0 42px green,
      0 0 82px green,
      0 0 92px green,
      0 0 102px green,
      0 0 151px green;
}

.neon.orange {
    color: orange;
    text-shadow:
      0 0 7px orange,
      0 0 10px orange,
      0 0 21px orange,
      0 0 42px orange,
      0 0 82px orange,
      0 0 92px orange,
      0 0 102px orange,
      0 0 151px orange;
}


.neon.brown {
    color: brown;
    text-shadow:
      0 0 7px brown,
      0 0 10px brown,
      0 0 21px brown,
      0 0 42px brown,
      0 0 82px brown,
      0 0 92px brown,
      0 0 102px brown,
      0 0 151px brown;
}


/* video */

#videos {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    justify-content: center;
    flex-direction: row;
    width: 1000px;
}

.video {
    width: 270px;
    position: relative;
    text-align: left;
    background-color: #333;
}

.video .category {
    position: absolute;
    top: 0;
    left: 0;
    background-color: #333;
    color: #fff;
    padding: 10px;
    font-size: 1rem;
}

.video img {
    width: 100%;
}

.video .title {
    font-size: 1.5rem;
}

.video .price {
    font-size: 1rem;
    opacity: 0.5;
}

.video .details {
    padding: 10px;
}



#reveal-creds, #buy-points, #purchase-history {
    position: fixed;
    top: 20px;
    right: -10px;
}

#buy-points {
    top: 100px;
}

#purchase-history {
    top: 160px;
}

header * {
    font-weight: bold;
    font-size: 1.3rem;
}

@media screen and (max-width: 700px) {
    #reveal-creds, #buy-points, #purchase-history {
        position: relative;
        top: 0;
        right: 0;
    }
}