:root{
  --bg:#0e1a22;
  --panel:#0f2330;
  --muted:#8aa6b6;
  --text:#e9f3fa;
  --brand:#5bd1ff;
  --ring:#2a93ff;
  --card:#102a39;
  --code:#0b1e28;
  --shadow:0 10px 30px rgba(0,0,0,.35);
  --radius-xl:16px;
  --radius-lg:12px;
  --radius-md:10px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji","Segoe UI Emoji";
  color:var(--text);
  background:
    radial-gradient(1000px 600px at 80% -20%, #1c3140 0, rgba(28,49,64,0) 60%),
    radial-gradient(1100px 700px at -10% 120%, #1a2a35 0, rgba(26,42,53,0) 60%),
    var(--bg);
}

.topbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 700px; gap:12px;
  border-bottom:1px solid rgba(255,255,255,.06);
  position:sticky;top:0;background:rgba(14,26,34,.7);backdrop-filter:saturate(180%) blur(8px);
  z-index:2;
}
.topbar h1{margin:0;font-size:30px;font-weight:700;letter-spacing:.2px}
.topbar h1 span{color:var(--brand)}
.actions{display:flex;gap:10px;flex-wrap:wrap}

.layout{
  display:grid;
  grid-template-columns: 360px 1fr;
  gap:18px;
  padding:18px;
  max-width:1200px;
  margin-inline:auto;
}

.panel{
  background:var(--panel);
  border:1px solid rgba(255,255,255,.06);
  border-radius:var(--radius-xl);
  padding:14px;
  box-shadow:var(--shadow);
  height:fit-content;
  position:sticky; top:84px;
}
.group + .group{margin-top:18px}
.group>h2{
  margin:6px 6px 8px; font-size:13px; letter-spacing:.4px; font-weight:700; color:#bfe7ff;
  text-transform:uppercase;
}

.row{
  display:grid;
  /* label | control elástico | valor */
  grid-template-columns: auto minmax(0, 1fr) max-content;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  border-radius:10px;
  background:rgba(255,255,255,.02);
  border:1px solid rgba(255,255,255,.06);
  margin-bottom:8px;
}

.row input[type="range"]{
  width:100%;          /* que se adapte al espacio disponible */
}

.row output{
  justify-self:end;    /* pegado al borde interno del recuadro */
  min-width:3ch;       /* reserva para 2–3 dígitos */
  text-align:right;
  color:#bfe7ff;
}

/* Opcional: evita que algo se salga visualmente */
.panel, .row{overflow:hidden}

.row--split{grid-template-columns: repeat(3, 1fr); gap:10px}
#solidWrap{display:none}

.preview{
  display:flex; flex-direction:column; gap:16px;
}
.previewStage{
  background:var(--card);
  border:1px solid rgba(255,255,255,.06);
  border-radius:var(--radius-xl);
  min-height:320px;
  display:grid;place-items:center;
  box-shadow:var(--shadow);
  position:relative;
  overflow:hidden;
}
.previewStage::before{
  content:"";
  position:absolute; inset:0;
  background:radial-gradient(800px 400px at 20% -10%, rgba(91,209,255,.18), transparent 60%),
             radial-gradient(900px 450px at 120% 120%, rgba(255,108,182,.12), transparent 60%);
  pointer-events:none;
}

.btn{
  padding:14px 24px;
  font-size:18px; font-weight:600; letter-spacing:.2px;
  color:#fff; background:linear-gradient(45deg,#ff7a18,#af002d 70%);
  border:2px solid #ffffff;
  border-radius:999px;
  box-shadow:0 14px 30px rgba(0,0,0,.35);
  transition:transform .2s, filter .2s, box-shadow .25s;
  cursor:pointer; user-select:none;
}
.btn:hover{filter:brightness(1.1); transform:translateY(-2px)}
.btn:active{transform:translateY(0)}

.code{
  background:var(--panel);
  border:1px solid rgba(255,255,255,.06);
  border-radius:var(--radius-xl);
  box-shadow:var(--shadow);
  padding:14px;
}
.code-actions{display:flex;gap:10px;justify-content:flex-end;margin-bottom:10px}
.codeblock{
  background:var(--code);
  border:1px solid rgba(255,255,255,.08);
  border-radius:12px;
  padding:12px; margin:0 0 10px; overflow:auto;
  font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size:12.5px; line-height:1.45;
}

.hint{color:var(--muted);margin:0}

button{
  border:none; border-radius:10px; padding:10px 14px; cursor:pointer;
  background:#103041; color:#eaffff; transition:background .2s, transform .2s;
}
button:hover{background:#12384c}
button.primary{background:linear-gradient(90deg,#38c2ff,#6d9bff)}
button.primary:hover{filter:brightness(1.07)}
button.ghost{background:transparent;border:1px solid rgba(255,255,255,.18)}
button.ghost:hover{background:rgba(255,255,255,.06)}
button:focus-visible{outline:2px solid var(--ring); outline-offset:2px}

#dlgPresets{
  border:none; padding:0; background:transparent;
}
.preset-grid{
  background:var(--panel); border:1px solid rgba(255,255,255,.1);
  border-radius:16px; padding:14px; display:grid; gap:10px;
  grid-template-columns:repeat(3, 1fr);
}
.preset-grid button{background:#0c2532}
.preset-grid button:hover{background:#0e2d3c}

.foot {
  max-width: 1200px;             /* igual que el layout */
  margin: 40px auto 24px auto;   /* centra horizontalmente */
  padding: 0 15px;  
  padding-bottom: 18px;             /* mismo padding lateral */
  text-align: center;            /* texto centrado */
  color: var(--muted);
  font-size: 18px;
  
}
@media (max-width: 980px){
  .layout{grid-template-columns:1fr}
  .panel{position:static}
}