/* =========================
   GLOBAL
========================= */

* {
  box-sizing: border-box;
}

body {

  margin: 0;

  min-height: 100vh;

  background: #030303;

  color: white;

  font-family:
    Inter,
    Arial,
    sans-serif;
}


/* =========================
   PAGE
========================= */

.page {

  width: 100%;

  min-height: 100vh;

  display: flex;

  align-items: center;

  justify-content: center;

  padding: 30px;
}


/* =========================
   UNLOCK SCREEN
========================= */

#unlock-screen {

  width: min(600px, 90vw);

  min-height: 650px;

  display: flex;

  flex-direction: column;

  align-items: center;

  justify-content: center;

  padding: 40px;

  border: 1px solid #1c1c1c;

  border-radius: 20px;

  background: #0f0f0f;

  gap: 25px;

  transition:
    transform 0.15s ease-out,
    opacity 0.3s ease;

  box-shadow:
    0 25px 80px rgba(0, 0, 0, 0.5);
}


/* =========================
   TITLE
========================= */

h1 {

  margin: 0;

  font-size: 48px;

  color: #640083;

  font-family:
    "Monobrains",
    monospace;

  text-align: center;
}


.lock-icon {

  font-size: 52px;

  filter:
    drop-shadow(
      0 0 15px #640083
    );
}


/* =========================
   DESCRIPTION
========================= */

#unlock-screen p {

  max-width: 420px;

  margin: 0;

  color: #747474;

  font-size: 17px;

  line-height: 1.6;

  text-align: center;
}


/* =========================
   PASSWORD
========================= */

input[type="password"] {

  width: min(300px, 80vw);

  padding: 14px 18px;

  border: 2px solid #640083;

  border-radius: 10px;

  background: #050505;

  color: white;

  font-size: 16px;

  text-align: center;

  transition:
    box-shadow 0.2s ease,
    border-color 0.2s ease;
}


input[type="password"]:focus {

  outline: none;

  border-color: #8d00b8;

  box-shadow:
    0 0 15px #41033b;
}


input[type="password"]::placeholder {

  color: #555;
}


/* =========================
   BUTTONS
========================= */

button {

  border: none;

  border-radius: 10px;

  padding: 12px 22px;

  background: #640083;

  color: white;

  font-size: 15px;

  cursor: pointer;

  transition:
    0.2s ease;
}


button:hover {

  background: #1d0c22;

  box-shadow:
    0 0 15px #41033b;

  transform: scale(1.04);
}


button:disabled {

  opacity: 0.5;

  cursor: not-allowed;

  transform: none;

  box-shadow: none;
}


/* =========================
   FORGOT PASSWORD
========================= */

#forgot-password {

  padding: 5px;

  background: transparent;

  color: #666;

  font-size: 14px;
}


#forgot-password:hover {

  background: transparent;

  color: white;

  box-shadow: none;

  transform: none;

  text-decoration: underline;
}


/* =========================
   VAULT SCREEN
========================= */

#vault-screen {

  display: none;

  width: min(900px, 94vw);

  min-height: 600px;

  padding: 30px;

  border: 1px solid #1c1c1c;

  border-radius: 20px;

  background: #0f0f0f;

  box-shadow:
    0 25px 80px rgba(0, 0, 0, 0.5);
}


#vault-screen.active {

  display: block;
}


/* =========================
   VAULT HEADER
========================= */

.vault-header {

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 20px;

  padding-bottom: 25px;

  border-bottom: 1px solid #202020;
}


.vault-header h2 {

  margin: 0;

  font-size: 30px;
}


.vault-subtitle {

  margin: 7px 0 0;

  color: #666;

  font-size: 14px;
}


/* =========================
   VAULT CONTENT
========================= */

.vault-content {

  padding-top: 25px;
}


.upload-button {

  margin-bottom: 25px;
}


/* =========================
   FILE LIST
========================= */

#file-list {

  display: flex;

  flex-direction: column;

  gap: 10px;
}


.file-item {

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 15px;

  padding: 15px 18px;

  border: 1px solid #202020;

  border-radius: 12px;

  background: #090909;

  transition:
    border-color 0.2s ease;
}


.file-item:hover {

  border-color: #640083;
}


.file-name {

  min-width: 0;

  overflow: hidden;

  text-overflow: ellipsis;

  white-space: nowrap;

  color: #ddd;
}


.file-actions {

  display: flex;

  gap: 8px;

  flex-shrink: 0;
}


.file-actions button {

  padding: 8px 14px;

  font-size: 13px;
}


.delete-file {

  background: #35101a;
}


.delete-file:hover {

  background: #5c1525;

  box-shadow:
    0 0 12px rgba(150, 20, 50, 0.4);
}


/* =========================
   EMPTY STATE
========================= */

.empty-vault {

  min-height: 350px;

  display: flex;

  flex-direction: column;

  align-items: center;

  justify-content: center;

  text-align: center;
}


.empty-icon {

  font-size: 50px;

  margin-bottom: 15px;
}


.empty-vault h3 {

  margin: 0 0 10px;

  font-size: 22px;
}


.empty-vault p {

  max-width: 400px;

  margin: 0 0 20px;

  color: #666;

  line-height: 1.5;
}


/* =========================
   RESPONSIVE
========================= */

@media (max-width: 600px) {

  #unlock-screen {

    min-height: 600px;

    padding: 25px;
  }


  h1 {

    font-size: 38px;
  }


  .vault-header {

    align-items: flex-start;

    flex-direction: column;
  }


  .file-item {

    align-items: flex-start;

    flex-direction: column;
  }


  .file-actions {

    width: 100%;
  }


  .file-actions button {

    flex: 1;
  }

}