*{box-sizing:border-box}

html,body{
  margin:0;
  padding:0;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  background:
    radial-gradient(circle at top, var(--glow-top), transparent 34%),
    linear-gradient(180deg,var(--bg-1),var(--bg-2));
  color:var(--text);
  min-height:100%;
}

body{
  padding:40px 20px;
}

.container{
  max-width:1040px;
  margin:0 auto;
  background:linear-gradient(180deg,var(--container-bg1),var(--container-bg2));
  border:1px solid var(--container-border);
  border-radius:28px;
  padding:30px;
  box-shadow:
    0 20px 60px var(--shadow-main),
    inset 0 1px 0 var(--shadow-inset);
  backdrop-filter:blur(10px);
}

.header{
  margin-bottom:26px;
}

.header-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
}

.header-main{
  display:flex;
  flex-direction:column;
  flex:1 1 100%;
  min-width:0;
  padding-top:8px;
  order:3;
}

.header-controls{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex:0 0 auto;
  order:2;
  margin-left:auto;
}

.header-title-row{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:8px;
  flex-wrap:nowrap;
}

.badge{
  display:inline-block;
  padding:8px 14px;
  border-radius:999px;
  background:var(--accent-soft);
  color:var(--badge-text);
  border:1px solid var(--badge-border);
  font-size:13px;
  font-weight:600;
  letter-spacing:.2px;
  margin-bottom:14px;
}

h1{
  margin:0 0 8px;
  font-size:32px;
  line-height:1.1;
  font-weight:800;
  letter-spacing:-0.03em;
}

.header-title-row h1{
  margin:0;
}

.sub{
  margin:0;
  color:var(--muted);
  font-size:15px;
}

.header-back-btn,
.header-back-btn:link,
.header-back-btn:visited{
  flex:0 0 auto;
  padding:0;
  width:40px;
  height:40px;
  border-radius:999px;
  background:linear-gradient(135deg,var(--accent),var(--accent-2));
  border:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 10px 24px var(--shadow-accent);
  text-decoration:none;
  color:var(--btn-primary-text);
  transition:.18s ease;
  order:1;
}

.header-back-btn:hover{
  transform:translateY(-1px);
  box-shadow:0 14px 28px var(--shadow-accent-hover);
  filter:brightness(1.04);
}

.header-back-btn svg{
  display:block;
  width:18px;
  height:18px;
  flex:0 0 auto;
}

.section{
  background:linear-gradient(180deg,var(--section-bg1),var(--section-bg2));
  border:1px solid var(--section-border);
  border-radius:22px;
  padding:22px;
  margin-bottom:18px;
}

.grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

.grid-3{
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  gap:16px;
}

.grid-2-small{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

.field{
  display:flex;
  flex-direction:column;
}

label{
  display:block;
  font-size:13px;
  font-weight:700;
  color:var(--text);
  margin:0 0 8px;
}

.req{
  color:var(--accent);
}

input,textarea{
  width:100%;
  border:none;
  outline:none;
  border-radius:18px;
  background:linear-gradient(180deg,var(--panel),var(--panel-2));
  color:var(--text);
  padding:14px 16px;
  border:1px solid var(--border);
  box-shadow:inset 0 1px 0 var(--input-inset-shadow);
  transition:.18s ease;
  font-size:14px;
}

input::placeholder, textarea::placeholder{
  color:var(--placeholder);
}

input:focus, textarea:focus{
  border-color:var(--focus-border);
  box-shadow:
    0 0 0 4px var(--focus-shadow),
    inset 0 1px 0 var(--input-focus-inset-shadow);
  transform:translateY(-1px);
}

textarea{
  min-height:180px;
  resize:vertical;
  line-height:1.45;
}

.actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:6px;
}

.result-actions{
  display:flex;
  gap:12px;
  margin-top:16px;
  flex-wrap:wrap;
}

button{
  border:none;
  outline:none;
  cursor:pointer;
  padding:13px 20px;
  border-radius:999px;
  font-size:14px;
  font-weight:700;
  transition:.18s ease;
  letter-spacing:.1px;
}

.btn-primary{
  background:linear-gradient(135deg,var(--accent),var(--accent-2));
  color:var(--btn-primary-text);
  box-shadow:0 10px 24px var(--shadow-accent);
}

.btn-primary:hover{
  transform:translateY(-1px);
  box-shadow:0 14px 28px var(--shadow-accent-hover);
  filter:brightness(1.04);
}

.btn-secondary{
  background:var(--btn-secondary-bg);
  color:var(--text);
  border:1px solid var(--btn-secondary-border);
}

.btn-secondary:hover{
  transform:translateY(-1px);
  background:var(--btn-secondary-bg-hover);
}

.status{
  font-size:13px;
  color:var(--muted);
  margin-top:4px;
}

.result-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}

.result-title h3{
  margin:0;
  font-size:18px;
}

.output{
  background:
    linear-gradient(180deg,var(--section-bg1),var(--section-bg2)),
    var(--code-bg);
  border:1px solid var(--code-border);
  border-radius:22px;
  padding:18px;
  color:var(--code-text);
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
  white-space:pre-wrap;
  word-break:break-word;
  min-height:180px;
  line-height:1.5;
  box-shadow:inset 0 1px 0 var(--output-inset-shadow);
}

.output:empty::before{
  content:"Aquí aparecerán los comandos generados...";
  color:var(--muted);
}

code{
  color:var(--code-inline);
  background:var(--btn-secondary-bg);
  padding:2px 6px;
  border-radius:8px;
}

.theme-toggle{
  flex:0 0 auto;
  padding:0;
  width:74px;
  height:40px;
  border-radius:999px;
  background:var(--btn-secondary-bg);
  border:1px solid var(--btn-secondary-border);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-shadow:inset 0 1px 0 var(--toggle-outer-inset);
}

.theme-toggle:hover{
  background:var(--btn-secondary-bg-hover);
  transform:translateY(-1px);
}

.theme-toggle-track{
  position:relative;
  width:58px;
  height:28px;
  border-radius:999px;
  background:var(--toggle-track-off);
  display:block;
  transition:.2s ease;
}

.theme-icon{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:14px;
  height:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--toggle-icon-muted);
  transition:.2s ease;
  z-index:1;
}

.theme-icon svg{
  width:14px;
  height:14px;
  display:block;
}

.theme-icon-moon{
  left:7px;
}

.theme-icon-sun{
  right:7px;
}

.theme-toggle-thumb{
  position:absolute;
  top:3px;
  left:3px;
  width:22px;
  height:22px;
  border-radius:50%;
  background:var(--toggle-thumb);
  box-shadow:0 2px 10px var(--toggle-thumb-shadow);
  transition:.2s ease;
  z-index:2;
}

.theme-toggle.is-light .theme-toggle-track{
  background:linear-gradient(135deg,var(--accent),var(--accent-2));
}

.theme-toggle.is-light .theme-toggle-thumb{
  transform:translateX(30px);
}

.theme-toggle.is-light .theme-icon-sun{
  color:var(--toggle-icon-active);
}

.theme-toggle:not(.is-light) .theme-icon-moon{
  color:var(--toggle-icon-active);
}

.mt-16{
  margin-top:16px;
}

.mt-18{
  margin-top:18px;
}

@media (max-width:860px){

  .grid,.grid-3,.grid-2-small{
    grid-template-columns:1fr;
  }

  .container{
    padding:20px;
    border-radius:22px;
  }

  h1{
    font-size:26px;
  }

  .header-top{
    gap:14px;
  }

  .header-controls{
    margin-left:0;
    gap:8px;
  }

  .header-main{
    padding-top:4px;
  }

  .header-title-row{
    flex-wrap:wrap;
    align-items:center;
    gap:10px;
  }

}