/* DFORM.fieldSet.css v1.0 */
:root{
 --fs-gap:0.1rem;
 --fs-label-bg:#fff;
 --fs-label-radius:.5rem;
 --fs-label-shadow:0 2px 4px rgba(0,0,0,.12);
 --fs-input-focus-shadow:0 0 0 3px rgba(3,102,214,.20);
 --fs-success:#28a745;
 --fs-warning:#ffc107;
 --fs-danger:#dc3545;
 --fs-icon-color:#6c757d;
 --fs-border-color:#c9d1dc;
 /* areas de mensajes */
 --fs-msg-info-bg:#e6f3ff; --fs-msg-info-border:#b3d7ff; --fs-msg-info-txt:#0056b3;
 --fs-msg-success-bg:#e6ffed;--fs-msg-success-border:#b3ffcc;--fs-msg-success-txt:#0f5132;
 --fs-msg-warning-bg:#fff6e6;--fs-msg-warning-border:#ffe8b3;--fs-msg-warning-txt:#664d03;
 --fs-msg-danger-bg:#ffe6e6; --fs-msg-danger-border:#ffb3b3; --fs-msg-danger-txt:#842029;
}
*{
  box-sizing:
  border-box;
  margin:0;
  padding:0;
  }
.fs-app-container{
 font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
 line-height:1.0;
 padding:0.4rem;
 background:#f5f7fa;
 color:#333;
 border:1px dotted silver;
}
.fs-app-container h1,.fs-app-container h2{margin:1.5rem 0 .75rem;font-weight:600;color:#212529;}
/* GRID RESPONSIVE */
.fs-grid{display:grid;gap:var(--fs-gap)}
.fs-grid--1col{grid-template-columns:1fr}
.fs-grid--2cols{grid-template-columns:1fr}
.fs-grid--3cols{grid-template-columns:1fr}
.fs-grid--4cols{grid-template-columns:1fr}
.fs-grid--5cols{grid-template-columns:1fr}
.fs-grid--6cols{grid-template-columns:1fr}
.fs-grid--7cols{grid-template-columns:1fr}
.fs-grid--8cols{grid-template-columns:1fr}
.fs-grid--9cols{grid-template-columns:1fr}
@media(min-width:768px){
 .fs-grid--2cols{grid-template-columns:repeat(2,1fr)}
 .fs-grid--3cols{grid-template-columns:repeat(3,1fr)}
 .fs-grid--4cols{grid-template-columns:repeat(4,1fr)}
 .fs-grid--5cols{grid-template-columns:repeat(5,1fr)}
 .fs-grid--6cols{grid-template-columns:repeat(6,1fr)}
 .fs-grid--7cols{grid-template-columns:repeat(7,1fr)}
 .fs-grid--8cols{grid-template-columns:repeat(8,1fr)}
 .fs-grid--9cols{grid-template-columns:repeat(9,1fr)}
 .fs-grid--datos1{grid-template-columns:0.8fr 1.6fr 2fr 1.5fr 3fr}
 .fs-grid--datos2{grid-template-columns:2.35fr 0.8fr 2fr 3fr}
}
.fs-fieldset{
  border:1px solid var(--fs-border-color);
  border-radius:3px;
  padding:0.9rem .1rem .2rem 0;
  background:#efefff;
  }
.fs-legend{
  padding:0 .5rem;
  font-weight:600;
  color:#0366d6;
  }
/* ===== FLOATING LABEL + ICON ===== */
.fs-field{
 position:relative;
 margin-bottom:.25rem;
}
.fs-field__icon{
 position:absolute;
 left:.75rem;
 top:50%;
 transform:translateY(-50%);
 font-size:1rem;
 color:var(--fs-icon-color);
 pointer-events:none;
 transition:.2s color;
}
.fs-field__control{
 width:100%;
 padding:.8rem .75rem .4rem 2.4rem;
 margin:0 0 0.3rem 0;
 border:1px dotted var(--fs-border-color);
 border-radius:.25rem;
 font-size:1rem;
 background:#fff;
 transition:border-color .2s,box-shadow .2s;
}
.fs-field__control:focus{
 outline:none;
 border-color:#0366d6;
 box-shadow:var(--fs-input-focus-shadow);
}
.fs-field__label{
 position:absolute;
 top:50%;
 left:2.4rem;
 transform:translateY(-50%);
 font-size:1rem;
 color:var(--fs-icon-color);
 pointer-events:none;
 transition:.2s ease all;
}
/* Estados flotante / con contenido */
.fs-field__control:focus ~ .fs-field__label,
.fs-field__control:not(:placeholder-shown) ~ .fs-field__label{
 top:-.4rem;
 left:1.2rem;
 font-size:.75rem;
 color:#0366d6;
 background:var(--fs-label-bg);
 border-radius:var(--fs-label-radius);
 box-shadow:var(--fs-label-shadow);
 padding:0 .5rem;
}
/* ===== VALIDATION COLORS ===== */
.fs-field.fs-success .fs-field__control{border-color:var(--fs-success)}
.fs-field.fs-warning .fs-field__control{border-color:var(--fs-warning)}
.fs-field.fs-danger .fs-field__control{border-color:var(--fs-danger)}
.fs-field.fs-required .fs-field__label::after{content:" *";color:var(--fs-danger)}
/* ===== BUTTON GROUP ===== */
.fs-field--btn{display:flex;gap:var(--fs-gap)}
.fs-field--btn .fs-field__control{flex:1 1 auto}
.fs-btn{
 height:2.65rem;
 padding:0 1rem;
 border:none;
 border-radius:.25rem;
 background:#0366d6;
 color:#fff;
 font-size:1rem;
 cursor:pointer;
 transition:background .15s;
}
.fs-btn:hover{background:#0250b9}
/* estilos para mensajes */
.fs-msg{
 border:1px solid;
 border-radius:.4rem;
 padding:.6rem .8rem;
 font-size:.95rem;
 line-height:1.35;
 margin-bottom:.75rem;
}
.fs-msg .fs-legend{
 font-weight:600;
 display:flex;
 align-items:center;
 gap:.3rem;
 margin-bottom:.25rem;
}
.fs-msg--info{background:var(--fs-msg-info-bg);border-color:var(--fs-msg-info-border);color:var(--fs-msg-info-txt)}
.fs-msg--info .fs-legend{color:var(--fs-msg-info-txt)}
.fs-msg--success{background:var(--fs-msg-success-bg);border-color:var(--fs-msg-success-border);color:var(--fs-msg-success-txt)}
.fs-msg--success .fs-legend{color:var(--fs-msg-success-txt)}
.fs-msg--warning{background:var(--fs-msg-warning-bg);border-color:var(--fs-msg-warning-border);color:var(--fs-msg-warning-txt)}
.fs-msg--warning .fs-legend{color:var(--fs-msg-warning-txt)}
.fs-msg--danger{background:var(--fs-msg-danger-bg);border-color:var(--fs-msg-danger-border);color:var(--fs-msg-danger-txt)}
.fs-msg--danger .fs-legend{color:var(--fs-msg-danger-txt)}
/* DFORM.fieldSet.css */
