/* Camera Viewer Styles - works with main.css */

.camera-container {
  max-width: 900px;
  width: 100%;
  margin: 0 auto;
  padding-bottom: calc(3 * var(--line-height));
}

.camera-container header {
  text-align: left;
  margin: 0 auto 30px auto;
}

.camera-container header h1 {
  font-size: var(--h1-font-size);
  text-align: left;
}

.upload-section {
  text-align: center;
  margin-bottom: 30px;
}

#fileInput {
  display: none;
}

.file-label {
  display: inline-block;
  padding: 15px 30px;
  background-color: var(--box-background-color);
  color: var(--main-text-color);
  border: 1px solid var(--light-border-color);
  border-radius: 4px;
  cursor: pointer;
  font-weight: bold;
  transition: background-color 0.3s;
  font-size: var(--body-font-size);
}

.file-label:hover {
  background-color: var(--main-background-color);
}

.viewer {
  border-top: 2px solid var(--light-border-color);
  padding-top: 30px;
  margin-bottom: calc(1 * var(--line-height));
}

.options-bar {
  display: flex;
  justify-content: center;
  gap: 20px;
  margin-bottom: 20px;
  flex-wrap: wrap;
  align-items: center;
  padding: 15px;
  background-color: var(--box-background-color);
  border: 1px solid var(--light-border-color);
  border-radius: 6px;
}

.option-group {
  display: flex;
  align-items: center;
  gap: 8px;
}

.option-group label {
  font-weight: bold;
  font-size: var(--small-font-size);
}

select {
  padding: 8px 12px;
  background-color: var(--box-background-color);
  color: var(--main-text-color);
  border: 1px solid var(--light-border-color);
  border-radius: 4px;
  cursor: pointer;
  font-weight: bold;
  font-size: var(--small-font-size);
  font-family: IBM Plex Sans, sans-serif;
}

.main-display {
  text-align: center;
  margin-bottom: 30px;
}

#mainCanvas {
  border: 4px solid var(--light-border-color);
  background-color: var(--box-background-color);
  image-rendering: pixelated;
  width: 384px;
  height: 336px;
}

#mainCanvas.original-res {
  width: 128px;
  height: 112px;
}

.controls {
  margin-top: 20px;
  display: flex;
  flex-direction: column;
  gap: 15px;
  align-items: center;
}

.controls label {
  font-weight: bold;
  font-size: var(--body-font-size);
}

#picSlider {
  width: 300px;
}

button {
  padding: 10px 20px;
  background-color: var(--box-background-color);
  color: var(--main-text-color);
  border: 1px solid var(--light-border-color);
  border-radius: 4px;
  cursor: pointer;
  font-weight: bold;
  transition: background-color 0.3s;
  font-size: var(--small-font-size);
  font-family: IBM Plex Sans, sans-serif;
}

button:hover {
  background-color: var(--main-background-color);
}

.preview-section {
  text-align: center;
}

.preview-section h3 {
  font-size: var(--h2-font-size);
  margin-bottom: 15px;
}

.preview-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 10px;
  max-width: 600px;
  margin: 0 auto;
}

.preview-item {
  width: 64px;
  height: 56px;
  border: 2px solid var(--light-border-color);
  background-color: var(--box-background-color);
  cursor: pointer;
  image-rendering: pixelated;
  transition: transform 0.2s, border-color 0.2s;
}

.preview-item:hover {
  transform: scale(1.1);
  border-color: var(--light-text-color);
}

.preview-item.active {
  border-color: var(--light-text-color);
  border-width: 3px;
}

@media (max-width: 700px) {
  .preview-grid {
    grid-template-columns: repeat(5, 1fr);
  }

  #mainCanvas {
    width: 256px;
    height: 224px;
  }
}

@media (max-width: 600px) {
  .options-bar {
    flex-direction: column;
    gap: 10px;
  }

  #mainCanvas {
    width: 256px;
    height: 224px;
  }

  #picSlider {
    width: 200px;
  }
}

.camera-container small {
  display: block;
  text-align: center;
  margin-top: 30px;
}
