:root {
  --ink: #212529;
  --green: #343a40;
  --coral: #e32f32;
  --cream: #f8f9fa;
  --sand: #e9ecef;
  --muted: #6c757d;
  --line: #dee2e6;
  --res-red: #e32f32;
  --res-red-dark: #c51a1d;
  --res-red-soft: #f8cccd;
  --res-charcoal: #212529;
}

body { background-color: #f8f9fa; }
.sidebar { background: #212529; }
.sidebar a.active,
.sidebar a:hover { background: #e32f32; color: #fff; }
.sidebar .brand > span,
.brand-mark,
.primary,
.btn.coral,
.generate { background-color: #e32f32; }
.primary:hover,
.btn.coral:hover,
.generate:hover { background-color: #c51a1d; }
.kicker,
.eyebrow span,
.steps span.on,
.text-btn,
.pill { color: #e32f32; }
.quick,
.studio-section,
footer { background-color: #212529; }
.stat-icon.coral { background: #f8cccd; color: #c51a1d; }
input:focus,
select:focus,
textarea:focus { border-color: #e32f32; box-shadow: 0 0 0 3px rgba(227,47,50,.12); outline: 0; }

/* I colori contabili restano semantici: verde per risultati positivi,
   rosso RES per avvisi, perdite e campi obbligatori. */
.required-field-empty,
input.required-field-empty,
select.required-field-empty,
textarea.required-field-empty { border-color: #e32f32 !important; background: #fff1f1 !important; }

.access-error { min-height: 18px; margin: -4px 0 0; color: #c51a1d; font-size: 12px; font-weight: 700; }
#access-form button:disabled { opacity: .65; cursor: wait; transform: none; }
