:root {
  --white: #ffffff;
  --yellow: #ffd83d;
  --black: #07110f;
  --red: #e63b3b;
  --orange: #e9821c;
  --muted: #6d675c;
}

* {
  box-sizing: border-box;
}

[hidden] {
  display: none !important;
}

body {
  margin: 0;
  background: var(--white);
  color: var(--black);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

button,
textarea,
input {
  font: inherit;
}

button {
  cursor: pointer;
}

.shell {
  min-height: 100svh;
  display: grid;
  align-content: center;
  gap: 14px;
  width: min(100%, 544px);
  margin: 0 auto;
  padding: 14px 12px;
}

.brand {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.brand img {
  width: 38px;
  height: 38px;
  image-rendering: pixelated;
}

h1 {
  margin: 0;
  font-size: 30px;
  line-height: 1;
}

.auth-card,
.tool-card,
.status {
  display: grid;
  gap: 12px;
}

.auth-card {
  border: 2px solid var(--black);
  border-radius: 10px;
  padding: 18px;
}

.auth-card p,
.subtitle,
.status p,
.status span {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

.auth-card button,
.mode,
.submit,
.feedback button {
  min-height: 48px;
  border: 2px solid var(--black);
  border-radius: 8px;
  background: var(--white);
  color: var(--black);
  font-size: 17px;
  font-weight: 780;
}

.auth-card button:first-of-type,
.mode.active,
.submit,
.feedback button:first-child {
  background: var(--yellow);
}

.modes,
.feedback > div {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

form,
.pane {
  display: grid;
  gap: 10px;
}

textarea {
  width: 100%;
  resize: none;
  border: 2px solid var(--black);
  border-radius: 8px;
  padding: 14px;
  font-size: 17px;
  line-height: 1.5;
}

.file-box {
  min-height: 48px;
  display: grid;
  place-items: center;
  border: 2px dashed var(--black);
  border-radius: 8px;
  background: #fffdf0;
  font-weight: 760;
  text-align: center;
}

.file-box input {
  display: none;
}

.submit {
  box-shadow: 0 5px 0 var(--black);
}

.preview {
  width: 100%;
  max-height: 132px;
  object-fit: contain;
  border: 2px solid var(--black);
  border-radius: 8px;
}

.status {
  border: 2px solid var(--black);
  border-radius: 8px;
  padding: 14px 16px;
}

.status strong {
  color: var(--red);
  font-size: 21px;
}

.feedback {
  display: grid;
  gap: 8px;
  border-top: 1px solid #ece3bf;
  padding-top: 10px;
}

.feedback p {
  color: var(--orange);
  font-weight: 700;
  min-height: 18px;
}

@media (max-width: 380px) {
  .shell {
    align-content: start;
    gap: 10px;
  }

  .brand img {
    width: 34px;
    height: 34px;
  }

  h1 {
    font-size: 27px;
  }

  textarea {
    padding: 12px;
  }

  #textContent {
    min-height: 178px;
  }
}
