:root{
  --sam-primary:#1d4ed8;
  --sam-primary-dark:#163d9b;
  --sam-bg:#f4f8fc;
  --sam-card:#ffffff;
  --sam-text:#1e293b;
  --sam-muted:#64748b;
  --sam-border:#d7e0ea;
  --sam-error:#b42318;
  --sam-error-bg:#fef3f2;
  --sam-success:#027a48;
  --sam-radius:16px;
  --sam-shadow:0 18px 40px rgba(15,23,42,.08);
}

.sam-form-wrapper{
  max-width:980px;
  margin:32px auto;
  padding:28px;
  background:var(--sam-card);
  border:1px solid var(--sam-border);
  border-radius:24px;
  box-shadow:var(--sam-shadow);
  color:var(--sam-text);
}
.sam-form-wrapper h2{margin:0 0 10px;font-size:32px;line-height:1.2;color:#0f172a}
.sam-form-wrapper p{color:var(--sam-muted)}
.sam-alert{padding:14px 16px;border-radius:12px;margin:18px 0;font-weight:600}
.sam-alert-error{background:var(--sam-error-bg);color:var(--sam-error);border:1px solid #fda29b}
.sam-fieldset{margin:22px 0 0;padding:22px;background:var(--sam-bg);border:1px solid var(--sam-border);border-radius:18px}
.sam-fieldset legend{padding:0 10px;font-weight:800;color:#0f172a}
.sam-field-grid{display:grid;gap:16px}
.sam-field-grid.two-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
.sam-field.full-width{grid-column:1/-1}
.sam-field{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.sam-field:last-child{margin-bottom:0}
.sam-field label{font-weight:700;color:#0f172a}
.sam-help{font-size:14px;color:var(--sam-muted);margin-bottom:14px}
.sam-check-field label{display:flex;gap:10px;align-items:flex-start;font-weight:500}
.sam-form input[type="text"],
.sam-form input[type="email"],
.sam-form input[type="tel"],
.sam-form input[type="date"],
.sam-form select,
.sam-form textarea,
.sam-form input[type="file"]{
  width:100%;
  padding:13px 14px;
  border:1px solid #c6d4e1;
  border-radius:12px;
  background:#fff;
  color:var(--sam-text);
  font-size:15px;
  box-sizing:border-box;
}
.sam-form textarea{min-height:110px;resize:vertical}
.sam-form input:focus,
.sam-form select:focus,
.sam-form textarea:focus{outline:none;border-color:var(--sam-primary);box-shadow:0 0 0 4px rgba(29,78,216,.12)}
.sam-field-error{border-color:var(--sam-error)!important;box-shadow:0 0 0 4px rgba(180,35,24,.1)!important}
.sam-form-actions{display:flex;gap:12px;justify-content:flex-end;align-items:center;margin-top:18px;flex-wrap:wrap}
.sam-button-primary,
.sam-form-actions .button-primary,
.sam-form-actions .button-secondary,
.sam-date-btn,
.sam-slot-btn{
  appearance:none;
  border:0;
  border-radius:999px;
  cursor:pointer;
  transition:.2s ease;
}
.sam-button-primary{
  background:linear-gradient(135deg,var(--sam-primary),var(--sam-primary-dark));
  color:#fff;
  padding:14px 22px;
  font-weight:800;
}
.sam-button-primary:hover{transform:translateY(-1px);filter:brightness(1.03)}
.sam-prev-step,
.sam-form-actions .button-secondary{padding:13px 20px;border:1px solid var(--sam-border);background:#fff;border-radius:999px;font-weight:700}
.sam-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;list-style:none;padding:0;margin:24px 0 8px}
.sam-steps li{padding:12px 10px;border-radius:999px;background:#eef4fb;border:1px solid var(--sam-border);text-align:center;font-weight:700;color:var(--sam-muted);font-size:14px}
.sam-steps li.active{background:#dbeafe;color:var(--sam-primary-dark);border-color:#93c5fd}
.sam-dates-grid,.sam-slots-grid{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.sam-date-btn,.sam-slot-btn{padding:12px 16px;background:#fff;border:1px solid var(--sam-border);font-weight:700;color:var(--sam-text)}
.sam-date-btn:hover,.sam-slot-btn:hover{border-color:#93c5fd;background:#f8fbff}
.sam-date-btn.is-selected,.sam-slot-btn.is-selected{background:#dbeafe;border-color:#60a5fa;color:#0f172a}
.sam-go-confirm[disabled]{opacity:.45;cursor:not-allowed}
.sam-resumen{background:#f8fbff;border:1px solid #dbeafe;padding:18px;border-radius:14px;color:#0f172a;line-height:1.65}
.sam-admin-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;background:#f8fbff;border:1px solid var(--sam-border);padding:18px;border-radius:18px;max-width:1100px}

@media (max-width: 768px){
  .sam-form-wrapper{padding:18px;margin:16px auto;border-radius:18px}
  .sam-form-wrapper h2{font-size:26px}
  .sam-field-grid.two-cols,.sam-steps{grid-template-columns:1fr}
  .sam-form-actions{justify-content:stretch}
  .sam-form-actions > *{width:100%;text-align:center}
}
