* { box-sizing: border-box; }
body{
  margin:0;
  font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif;
  background: #0b0b10;
  color: #f3f3f7;
}
.container{
  max-width: 1000px;
  margin: 0 auto;
  padding: 26px 18px;
}
h1{ margin: 0 0 10px 0; }
h2{ margin: 0 0 8px 0; font-size: 16px; }
.muted{ opacity: 0.8; line-height: 1.4; }
.small{ font-size: 12px; }

.card{
  margin-top: 14px;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 14px;
  padding: 14px;
  background: rgba(255,255,255,0.04);
}

textarea{
  width: 100%;
  min-height: 150px;
  padding: 10px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(0,0,0,0.35);
  color: #fff;
  resize: vertical;
}

.options{
  margin-top: 14px;
  display:flex;
  gap: 14px;
  flex-wrap: wrap;
}

.opt{
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 14px;
  padding: 12px;
  background: rgba(255,255,255,0.03);
  min-width: 260px;
}

select{
  width: 100%;
  margin-top: 6px;
  padding: 8px 10px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(0,0,0,0.35);
  color: #fff;
}

.actions{
  margin-top: 14px;
  display:flex;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
}

button, .btn{
  background: #ffffff;
  color: #0b0b10;
  border: 0;
  padding: 10px 14px;
  border-radius: 12px;
  cursor:pointer;
  font-weight: 600;
  text-decoration: none;
  display: inline-block;
}
.secondary{
  background: transparent;
  color: #fff;
  border: 1px solid rgba(255,255,255,0.22);
}

.output{
  margin-top: 16px;
  padding: 14px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(0,0,0,0.35);
  overflow:auto;
  white-space: pre;
}

.alert{
  margin-top: 12px;
  padding: 12px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.14);
  white-space: pre-wrap;
}
.alert.error{ background: rgba(255, 0, 0, 0.12); }
.alert.warn{ background: rgba(255, 200, 0, 0.10); }
.alert.note{ background: rgba(0, 160, 255, 0.10); }

.badge{
  display:inline-block;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.18);
  margin-right: 8px;
  opacity: 0.9;
}

footer{ margin-top: 18px; opacity: 0.7; font-size: 12px;  text-align: center }

/* ====== Spacing between the form "cards" / boxes ====== */

/* If you have a wrapper for each block, use gap */
.form-stack {
  display: flex;
  flex-direction: column;
  gap: 18px;           /* separation between boxes */
}

/* Safety: if boxes are direct children of the form */
form > .box,
form > .card,
form > fieldset,
form > section {
  margin-bottom: 18px;
}

/* Optional: ensure last one doesn't add extra space */
form > .box:last-child,
form > .card:last-child,
form > fieldset:last-child,
form > section:last-child {
  margin-bottom: 0;
}


/* Side pattern */
.side{
  position: fixed;
  top: 0; bottom: 0;
  width: 140px;
  opacity: 0.12;
  pointer-events: none;
  background-image: url("/img/pattern.png"); /* tu imagen */
  background-repeat: repeat;
  background-size: 260px auto;
  animation: sideMove 50s linear infinite; /* velocidad */
  z-index: 0;
}

.side-left{ left: 0; }
.side-right{ right: 0; transform: scaleX(-1); }

@keyframes sideMove{
  from { background-position: 0 0; }
  to   { background-position: 0 900px; } /* cuánto “baja” */
}

/* tu contenido encima */
.page, #main, main { position: relative; z-index: 1; }

/* móvil */
@media (max-width: 980px){
  .side{ display:block; }
}

/* Base side styling */
.side{
  position: fixed;
  top: 0;
  bottom: 0;
  width: 140px;
  background-image: url("img/pattern.png");
  background-repeat: repeat;
  background-size: 220px auto;
  opacity: 0.35;
  pointer-events: none;
  z-index: 0;          /* ya no hace falta 9999 */
}

/* Left side */
.side-left{
  left: 0;
}

/* Right side */
.side-right{
  right: 0;
  transform: scaleX(-1); /* espejo para simetría (opcional) */
}

/* Make sure your content is above the sides */
.container, main, .page{
  position: relative;
  z-index: 1;
}

/* Hide on small screens (optional) */
@media (max-width: 980px){
  .side{ display: none; }
}