/* Magnus Archives GM Tool - Base Styles */

/* Root Variables */
:root {
  /* Colors */
  --color-primary: #317e30;
  --color-bg-dark: #111;
  --color-bg-medium: #1c1c1c;
  --color-bg-light: #222;
  --color-text: #eee;
  --color-text-muted: #aaa;
  --color-border: #333;
  --color-danger: #d32f2f;

  /* Spacing */
  --spacing-sm: 8px;
  --spacing-md: 15px;
  --spacing-lg: 20px;

  /* Border radius */
  --radius-sm: 4px;
  --radius-md: 6px;
  --radius-lg: 8px;
  --radius-xl: 10px;
}

/* Base Elements */
body {
  font-family: "Segoe UI", sans-serif;
  background-color: var(--color-bg-dark);
  color: var(--color-text);
  padding: var(--spacing-lg);
  padding-bottom: 80px;
  max-width: 800px;
  margin: 0 auto;
}

main {
  padding: 20px;
}

/* Headers */
.header-image {
  width: 100%;
  max-width: 800px;
  height: auto;
  display: block;
  margin: 0 auto 30px auto;
  border: 3px solid #317e30;
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(49, 126, 48, 0.4);
}

h1 {
  font-family: "libre baskerville", serif;
  color: #4caf50;
  text-align: center;
  font-size: 1.5em;
  margin: 20px 0;
  letter-spacing: 3px;
  text-shadow: 0 0 20px rgba(76, 175, 80, 0.8), 0 0 40px rgba(49, 126, 48, 0.5);
  font-weight: 700;
  position: relative;
}

h1::after {
  content: "";
  position: absolute;
  bottom: -10px;
  left: 50%;
  transform: translateX(-50%);
  width: 400px;
  height: 3px;
  background: linear-gradient(90deg, transparent, #4caf50, transparent);
  box-shadow: 0 0 10px #4caf50;
}

h2 {
  color: #4caf50;
  font-family: "Libre Baskerville", serif;
  font-size: 1.5em;
  margin: 20px 0 15px 0;
  text-transform: uppercase;
  letter-spacing: 2px;
  border-bottom: 2px solid #317e30;
  padding-bottom: 10px;
  text-shadow: 0 0 10px rgba(76, 175, 80, 0.5);
}

h3 {
  color: #66bb6a;
  font-size: 1.2em;
  margin: 15px 0 10px 0;
  letter-spacing: 1px;
}

/* Universal Form Elements */
label {
  display: inline-block;
  min-width: 130px;
}

input,
select {
  background: #222;
  color: #eee;
  border: 1px solid #333;
  border-radius: 5px;
  padding: 4px 6px;
}

select option {
  background: #1a1a1a;
  color: #eee;
  padding: 8px;
}

select option:checked {
  background: #317e30;
  color: #fff;
}

/* Section Container */
.section {
  background: #1c1c1c;
  padding: 15px;
  border-radius: 10px;
  margin-bottom: 20px;
  box-shadow: 0 0 8px #000;
}

.text-section {
  margin-top: 20px;
}

.text-section textarea {
  width: 100%;
  min-height: 150px;
  background: #222;
  color: #eee;
  border: 1px solid #333;
  border-radius: 5px;
  padding: 10px;
  font-family: inherit;
  resize: vertical;
  margin-top: 8px;
}

.text-section label {
  display: block;
  color: #aaa;
  margin-bottom: 5px;
}

/* Shimmer Animation (used throughout) */
@keyframes shimmer {
  0% {
    background-position: -100% 0;
  }
  100% {
    background-position: 200% 0;
  }
}
