```css
/* =======================================
   MediaBrowser CSS
   Deel 1
======================================= */

/* =======================
   Basis
======================= */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    background:#1f1f1f;
    color:#fff;
    font-family:Arial, Helvetica, sans-serif;
}

/* =======================
   Scrollbar
======================= */

::-webkit-scrollbar{
    width:12px;
}

::-webkit-scrollbar-track{
    background:#222;
}

::-webkit-scrollbar-thumb{
    background:#555;
    border-radius:20px;
}

::-webkit-scrollbar-thumb:hover{
    background:#777;
}

/* =======================
   Logo
======================= */

.logo{
    position:fixed;
    top:20px;
    left:20px;
    width:100px;
    height:100px;
    object-fit:cover;
    border-radius:20px;
    box-shadow:0 10px 30px rgba(0,0,0,.45);
    transition:.3s;
    z-index:1000;
}

.logo:hover{
    transform:scale(1.05);
}

/* =======================
   Login/gebruiker knop
======================= */

.login-button{
    position:fixed;
    top:20px;
    right:20px;
    background:#444;
    color:#fff;
    border:none;
    padding:12px 20px;
    border-radius:12px;
    cursor:pointer;
    font-size:16px;
    transition:.25s;
    z-index:1000;
}

.login-button:hover{
    background:#666;
}

/* =======================
   Titel
======================= */

.title{
	position:fixed;
    top:30px;
    left:50%;
    transform:translateX(-50%);
    font-size:36px;
    font-weight:bold;
    z-index:900;
}

/* =======================
   Terug knop
======================= */

.back{
    position:fixed;
    top:85px;
    right:20px;
    background:#444;
    color:#fff;
    text-decoration:none;
    padding:12px 20px;
    border-radius:12px;
    transition:.25s;
    z-index:900;
}

.back:hover{
    background:#666;
}

/* =======================
   Zoekbalk
======================= */

.search{
    display:block;
    width:500px;
    max-width:90%;
    margin:150px auto 40px;
    padding:16px;
    border:none;
    border-radius:15px;
    background:#2d2d2d;
    color:#fff;
    font-size:18px;
}

.search:focus{
    outline:none;
    background:#3a3a3a;
}

/* =======================
   Breadcrumb
======================= */

.breadcrumb{
    margin-top:130px;
    margin-bottom:30px;
    text-align:center;
    color:#ccc;
}

.breadcrumb a{
    color:#fff;
    text-decoration:none;
}

.breadcrumb a:hover{
    text-decoration:underline;
}

/* =======================
   Grid
======================= */

.grid{
    padding:20px 40px 60px;
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(250px,1fr));
    gap:30px;
}

/* =======================
   Kaarten
======================= */

.card{
    display:block;
    background:#333;
    color:#fff;
    text-decoration:none;
    border-radius:20px;
    overflow:hidden;
    box-shadow:0 10px 25px rgba(0,0,0,.35);
    transition:.25s;
}

.card:hover{
    transform:translateY(-8px);
    box-shadow:0 18px 40px rgba(0,0,0,.55);
}

/* =======================
   Preview
======================= */

.preview{
    width:100%;
    height:220px;
    background:#2a2a2a;
    display:flex;
    justify-content:center;
    align-items:center;
    overflow:hidden;
}

.preview img,
.preview video{
    width:100%;
    height:100%;
    object-fit:cover;
}

.preview img{
    transition:.35s;
}

.card:hover .preview img{
    transform:scale(1.08);
}

.preview video{
    transition:.35s;
}

.card:hover .preview video{
    transform:scale(1.05);
}

.preview-icon{
    font-size:70px;
    opacity:.85;
}

/* =======================
   Kaart inhoud
======================= */

.card-body{
    padding:18px;
}

.card-title{
    font-size:22px;
    font-weight:bold;
    margin-bottom:10px;
    word-break:break-word;
}

.file-size{
    color:#aaa;
    font-size:14px;
    margin-top:8px;
}

.file-date{
    color:#888;
    font-size:14px;
    margin-top:6px;
}

.badge{
    display:inline-block;
    margin-top:12px;
    padding:6px 12px;
    border-radius:20px;
    background:rgba(0,0,0,.35);
    font-size:14px;
}
```
```css
/* =======================================
   MediaBrowser CSS
   Deel 2
======================================= */

/* =======================
   Bestandkaarten
======================= */

.file-card{
    background:#2f2f2f;
}

.file-card:hover{
    background:#383838;
}

/* =======================
   Grote iconen
======================= */

.big-icon{
    display:flex;
    justify-content:center;
    align-items:center;
    height:220px;
    font-size:90px;
}

/* =======================
   Viewer
======================= */

.viewer{
    width:100%;
    height:100vh;
    display:flex;
    justify-content:center;
    align-items:center;
    background:#111;
    overflow:auto;
    padding:20px;
}

.viewer img,
.viewer video{
    max-width:95%;
    max-height:95%;
    border-radius:15px;
    transition:transform .3s;
}

.viewer iframe{
    width:95%;
    height:95%;
    border:none;
    border-radius:15px;
    background:#fff;
}

/* =======================
   Formulieren
======================= */

input,
button,
select{
    font-family:inherit;
}

/* =======================
   Links
======================= */

a{
    color:inherit;
}

/* =======================
   Fade animatie
======================= */

@keyframes fadeIn{

    from{
        opacity:0;
        transform:translateY(20px);
    }

    to{
        opacity:1;
        transform:translateY(0);
    }

}

.card{
    animation:fadeIn .35s ease;
}

/* =======================
   Responsive
======================= */

@media (max-width:900px){

    .logo{
        width:80px;
        height:80px;
    }

    .title{
        font-size:28px;
    }

    .grid{
        grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
    }

}

@media (max-width:600px){

    .grid{
        grid-template-columns:1fr;
        padding:20px;
    }

    .preview{
        height:200px;
    }

    .search{
        width:95%;
    }

    .card-title{
        font-size:20px;
    }

    .title{
        position:static;
        transform:none;
        text-align:center;
        margin-top:30px;
    }

    .logo{
        position:static;
        display:block;
        margin:20px auto;
    }

    .back{
        position:static;
        display:block;
        width:max-content;
        margin:20px auto;
    }

}

.file-creator{
    color:#aaa;
    font-size:14px;
    margin-top:6px;
}

.success{
    color:#2ecc71;
}

/* =======================
   Viewer info-balk
======================= */

.viewer-info{
    position:fixed;
    top:20px;
    left:50%;
    transform:translateX(-50%);
    background:rgba(0,0,0,.55);
    padding:12px 20px;
    border-radius:12px;
    z-index:900;
    display:flex;
    align-items:center;
    gap:14px;
    flex-wrap:wrap;
    max-width:90vw;
}

.viewer-filename{
    font-weight:bold;
}

.viewer-creator{
    color:#ccc;
    font-size:14px;
}

.creator-form{
    display:flex;
    gap:8px;
}

.creator-form input[type=text]{
    padding:6px 10px;
    border-radius:8px;
    border:none;
}

.creator-form button{
    padding:6px 14px;
    border-radius:8px;
    border:none;
    background:#04AA6D;
    color:#fff;
    cursor:pointer;
}

.creator-form button:hover{
    opacity:.85;
}

/* =======================
   Scroll naar boven knop
======================= */

#topButton{
    position:fixed;
    right:20px;
    bottom:20px;
    display:none;
    padding:12px 16px;
    border:none;
    border-radius:12px;
    background:#444;
    color:#fff;
    cursor:pointer;
    font-size:18px;
    box-shadow:0 5px 15px rgba(0,0,0,.3);
    transition:.25s;
    z-index:999;
}

#topButton:hover{
    background:#666;
}

/*Login*/

.loginform {
	z-index:1000;
}

/* Bordered form */
form.login {
  border: 3px solid #f1f1f1;
}

/* Full-width inputs */
form.login input[type=text], form.login input[type=password] {
  width: 100%;
  padding: 12px 20px;
  margin: 8px 0;
  display: inline-block;
  border: 1px solid #ccc;
  box-sizing: border-box;
}

/* Set a style for all buttons */
form.login button {
  background-color: #04AA6D;
  color: white;
  padding: 14px 20px;
  margin: 8px 0;
  border: none;
  cursor: pointer;
  width: 100%;
}

/* Add a hover effect for buttons */
form.login button:hover {
  opacity: 0.8;
}

/* Extra style for the cancel button (red) */
.cancelbtn {
  width: auto;
  padding: 10px 18px;
  background-color: #f44336;
}

/* Center the avatar image inside this container */
.imgcontainer {
  text-align: center;
  margin: 24px 0 12px 0;
}

/* Avatar image */
img.avatar {
  width: 15%;
  border-radius: 50%;
}

/* Add padding to containers */
.container {
  padding: 16px;
}

/* The "Forgot password" text */
span.psw {
  float: right;
  padding-top: 16px;
}

/* Change styles for span and cancel button on extra small screens */
@media screen and (max-width: 300px) {
  span.psw {
    display: block;
    float: none;
  }
  .cancelbtn {
    width: 100%;
  }
}
/* The Modal (background) */
.modal {
  display: none; /* Hidden by default */
  position: fixed; /* Stay in place */
  z-index: 1; /* Sit on top */
  left: 0;
  top: 0;
  width: 100%; /* Full width */
  height: 100%; /* Full height */
  overflow: auto; /* Enable scroll if needed */
  background-color: rgb(0,0,0); /* Fallback color */
  background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
  padding-top: 60px;
}

/* Modal Content/Box */
.modal-content {
  background-color: #fefefe;
  margin: 5px auto; /* 15% from the top and centered */
  border: 1px solid #888;
  width: 80%; /* Could be more or less, depending on screen size */
}

/* The Close Button */
.close {
  /* Position it in the top right corner outside of the modal */
  position: absolute;
  right: 25px;
  top: 0;
  color: #000;
  font-size: 35px;
  font-weight: bold;
}

/* Close button on hover */
.close:hover,
.close:focus {
  color: red;
  cursor: pointer;
}

/* Add Zoom Animation */
.animate {
  -webkit-animation: animatezoom 0.6s;
  animation: animatezoom 0.6s
}

@-webkit-keyframes animatezoom {
  from {-webkit-transform: scale(0)}
  to {-webkit-transform: scale(1)}
}

@keyframes animatezoom {
  from {transform: scale(0)}
  to {transform: scale(1)}
}
