.sap-app{max-width:1120px;margin:28px auto;font-family:Arial,Helvetica,sans-serif;color:#111827}
.sap-hero,.sap-card,.sap-result{background:#fff;border:1px solid #e5e7eb;border-radius:24px;box-shadow:0 14px 38px rgba(15,23,42,.08);padding:26px;margin-bottom:20px}
.sap-hero{display:flex;justify-content:space-between;gap:20px;align-items:center;background:linear-gradient(135deg,#f0fdf4,#fff);border:2px solid #bbf7d0}
.sap-kicker{color:#2e7d32;font-weight:900;margin-bottom:8px}.sap-hero h1{margin:0;font-size:34px}.sap-hero p{color:#667085}
.sap-badge{background:#2e7d32;color:#fff;border-radius:18px;padding:16px 20px;font-weight:900;white-space:nowrap}
.sap-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.sap-grid label{display:flex;flex-direction:column;gap:8px;font-weight:700}
.sap-grid input,.sap-match select,textarea{border:1px solid #d0d5dd;border-radius:14px;padding:12px 14px;font-size:15px;background:#fff}textarea{width:100%;min-height:110px}
.sap-section-head{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #edf0f3;padding-bottom:12px;margin-bottom:14px}.sap-section-head h2{margin:0}.sap-section-head p{color:#667085}.sap-section-head strong{background:#ecfdf3;color:#2e7d32;border-radius:999px;padding:10px 14px;height:max-content}
.sap-row{display:grid;grid-template-columns:1fr 120px 120px 170px;gap:10px;align-items:center;border:1px solid #edf0f3;border-radius:14px;padding:12px;margin-bottom:8px}
.sap-question{border:1px solid #edf0f3;border-radius:16px;padding:16px;margin:12px 0}.sap-options{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.sap-options label{border:1px solid #d0d5dd;border-radius:14px;padding:10px 14px;background:#fafafa;cursor:pointer}.sap-options label:has(input:checked){border-color:#2e7d32;background:#f0fdf4}
.sap-match{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:center;border:1px solid #edf0f3;border-radius:14px;padding:14px;margin-bottom:10px}
.sap-actions{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.sap-actions button,.sap-report-buttons a{border:0;border-radius:14px;padding:13px 18px;background:#2e7d32;color:#fff;cursor:pointer;font-weight:800;text-decoration:none;display:inline-block}.sap-actions .sap-secondary{background:#166534}.sap-actions .sap-light{background:#6b7280}
.sap-meter{height:14px;background:#dcfce7;border-radius:999px;overflow:hidden}.sap-meter span{display:block;height:100%;background:#2e7d32}.sap-report-buttons{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.sap-alert{background:#fef2f2;color:#991b1b;padding:18px;border-radius:16px}.sap-q-img{max-width:100%;border-radius:14px;margin:12px 0}
@media(max-width:800px){.sap-hero,.sap-grid,.sap-section-head,.sap-row,.sap-match{display:grid;grid-template-columns:1fr}.sap-badge{width:max-content}}


/* V4 interactive one-question-per-page mode */
.sap-progress-card{
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:22px;
  box-shadow:0 10px 28px rgba(15,23,42,.07);
  padding:18px 22px;
  margin-bottom:20px;
}
.sap-progress-top,.sap-status-line{
  display:flex;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  align-items:center;
}
.sap-progress{
  height:12px;
  background:#dcfce7;
  border-radius:999px;
  overflow:hidden;
  margin:12px 0;
}
.sap-progress span{
  display:block;
  height:100%;
  background:#2e7d32;
  width:0;
  transition:width .35s ease;
}
.sap-single-question{
  animation:sapSlideIn .28s ease;
  border:2px solid #d9f99d;
}
@keyframes sapSlideIn{
  from{opacity:0;transform:translateY(14px)}
  to{opacity:1;transform:translateY(0)}
}
.sap-question-head{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-start;
  margin-bottom:20px;
}
.sap-question-head h2{
  font-size:30px;
  line-height:1.25;
  margin:12px 0 8px;
}
.sap-chip{
  display:inline-block;
  background:#ecfdf3;
  color:#166534;
  border-radius:999px;
  padding:8px 12px;
  font-weight:900;
}
.sap-q-number{
  width:54px;
  height:54px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#2e7d32;
  color:#fff;
  font-size:24px;
  font-weight:900;
  flex:0 0 auto;
}
.sap-big-options{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin:24px 0;
}
.sap-big-options label{
  border:2px solid #d0d5dd;
  border-radius:20px;
  padding:18px;
  background:#fafafa;
  cursor:pointer;
  font-size:20px;
  font-weight:800;
  transition:.2s ease;
}
.sap-big-options label:hover{
  transform:translateY(-2px);
  border-color:#86efac;
}
.sap-big-options label.active,
.sap-big-options label:has(input:checked){
  background:#f0fdf4;
  border-color:#2e7d32;
  box-shadow:0 10px 22px rgba(46,125,50,.12);
}
.sap-big-options input{
  margin-right:8px;
}
.sap-select-wrap{
  display:grid;
  gap:10px;
  max-width:520px;
  margin:24px 0;
}
.sap-select-wrap label{
  font-weight:900;
}
.sap-select-wrap select{
  border:2px solid #d0d5dd;
  border-radius:18px;
  padding:16px;
  font-size:18px;
}
.sap-nav{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:24px;
}
.sap-nav button{
  border:0;
  border-radius:14px;
  padding:13px 18px;
  background:#2e7d32;
  color:#fff;
  cursor:pointer;
  font-weight:900;
}
.sap-nav button:disabled{
  opacity:.45;
  cursor:not-allowed;
}
.sap-nav .sap-secondary{
  background:#0f766e;
}
.sap-nav .sap-danger{
  background:#b91c1c;
}
.sap-nav .sap-light{
  background:#6b7280;
}
.sap-mini-map{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  border-top:1px solid #edf0f3;
  margin-top:22px;
  padding-top:16px;
}
.sap-mini-map button{
  width:34px;
  height:34px;
  border-radius:10px;
  border:1px solid #d0d5dd;
  background:#fff;
  cursor:pointer;
  font-weight:800;
}
.sap-mini-map button.current{
  background:#2e7d32;
  color:#fff;
}
.sap-mini-map button.done{
  border-color:#16a34a;
  background:#dcfce7;
}
.sap-mini-map button.later{
  border-color:#f59e0b;
  background:#fef3c7;
}
.sap-mini-map button.locked{
  border-color:#b91c1c;
  background:#fee2e2;
  color:#991b1b;
}
.sap-locked-card{
  opacity:.9;
}
@media(max-width:800px){
  .sap-big-options{
    grid-template-columns:1fr;
  }
  .sap-question-head{
    display:grid;
  }
}
