/* php-json-formateador - estilos */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#0f172a;--surface:#1e293b;--text:#f1f5f9;--muted:#94a3b8;
  --primary:#3b82f6;--primary-hover:#2563eb;--success:#10b981;--error:#ef4444;
  --border:#334155;--radius:8px;
}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh;
}
header{background:linear-gradient(135deg,#1e293b,#334155);padding:2rem 1rem;text-align:center}
header h1{font-size:1.8rem;margin-bottom:.5rem}
.subtitle{color:var(--muted);font-size:1rem}
main{max-width:900px;margin:2rem auto;padding:0 1rem}
label{display:block;margin:1rem 0 .5rem;font-weight:600}
textarea{
  width:100%;background:var(--surface);color:var(--text);border:1px solid var(--border);
  border-radius:var(--radius);padding:1rem;font-family:"Cascadia Code",Consolas,monospace;
  font-size:.95rem;resize:vertical;
}
textarea:focus{outline:2px solid var(--primary);border-color:var(--primary)}
.botones{display:flex;gap:.75rem;flex-wrap:wrap;margin:1rem 0}
button{
  padding:.7rem 1.4rem;border:none;border-radius:var(--radius);cursor:pointer;
  font-size:.95rem;font-weight:600;transition:all .2s;
}
.btn-primary{background:var(--primary);color:#fff}
.btn-primary:hover{background:var(--primary-hover);transform:translateY(-1px)}
.btn-secundario{background:var(--surface);color:var(--text);border:1px solid var(--border)}
.btn-secundario:hover{background:#334155}
.resultado{
  margin-top:1rem;padding:1rem;border-radius:var(--radius);overflow-x:auto;
}
.resultado.ok{background:#052e1a;border:1px solid var(--success)}
.resultado.error{background:#450a0a;border:1px solid var(--error);color:#fca5a5}
.resultado pre{margin:0}
.resultado code{font-family:"Cascadia Code",Consolas,monospace;font-size:.9rem;color:#86efac}
.info{
  background:var(--surface);padding:1.5rem;border-radius:var(--radius);margin-top:2rem;
  border-left:4px solid var(--primary);
}
.info h2{font-size:1.2rem;margin-bottom:.75rem}
.info ul{list-style:none;padding-left:0}
.info li{padding:.3rem 0;color:var(--muted)}
.info strong{color:var(--text)}
footer{text-align:center;padding:2rem 1rem;color:var(--muted);border-top:1px solid var(--border);margin-top:2rem}
footer a{color:var(--primary);text-decoration:none}
footer a:hover{text-decoration:underline}
@media(max-width:600px){
  header h1{font-size:1.4rem}
  .botones{flex-direction:column}
  button{width:100%}
}