/* Stile pulito e moderno (Bootstrap-based) */
body { background: #f6f7fb; }
.card { border-radius: 1rem; }
.btn, .form-control, .form-select { border-radius: .75rem; }
.progress { height: 0.9rem; border-radius: 1rem; }
/* Sticky controls dentro la card */
.sticky-controls {
    position: sticky;
    bottom: 0;
    background: linear-gradient(180deg, rgba(246,247,251,0) 0%, rgba(246,247,251,0.9) 40%, rgba(246,247,251,1) 100%);
    padding-top: .75rem;
    padding-bottom: .25rem;
    z-index: 5;
  }
  
  /* Stepper in alto */
  .osi-stepper {
    list-style: none;
    padding: 0;
    margin: 0 0 .5rem 0;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1rem;
  }
  .osi-step {
    display: flex; align-items: center; gap: .5rem;
    padding: .5rem .6rem; border: 1px solid #e7eaf3; border-radius: .6rem; background: #fff;
  }
  .osi-step.active { opacity: 1; }
  .osi-step.done { opacity: .9; }
  .osi-step-index {
    display: inline-flex; width: 26px; height: 26px; align-items: center; justify-content: center;
    border-radius: 999px; border: 1px solid #dfe3ee; font-weight: 600; font-size: .9rem; color: #344054;
    background: #f7f8fc;
  }
  .osi-step.done .osi-step-index { background: #198754; }
  .osi-stepper .osi-step-title { font-size: .9rem; }

  /* BRAND HEADER */
.brand-header {
    background: linear-gradient(180deg, #f7f9ff 0%, #ffffff 100%);
    border: 1px solid #eef0f4;
  }
  .brand-logo { height: 44px; width: auto; }
  


  .osi-step-title { font-size: .9rem; color: #475467; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  
  /* Cards domande */
  .q-card {
    border:1px solid #e6e8ef; border-radius:14px; padding:12px 12px; background:#fff;
    transition: box-shadow .2s ease;
  }
  .q-card:hover { box-shadow:0 10px 28px rgba(16,24,40,.08); }
  
  /* Repeater */
  .repeater .repeater-row {
    border:1px dashed #d7dce8; border-radius:.6rem; padding:.75rem; background:#fafbff;
  }
  .repeater .repeater-row + .repeater-row { margin-top:.5rem; }
  
  /* Radio/checkbox spacing */
  .form-check { display: inline-flex; align-items: center; gap:.35rem; }