:root{
  --primary:#F97316;
  --primary-dark:#C2410C;
  --secondary:#16A34A;
  --secondary-dark:#15803D;
  --bg:#FFF8F1;
  --text:#1F2937;
  --card:#FFFFFF;
  --border:#F3E3D3;
  --radius:16px;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg);
  color:var(--text);
  line-height:1.5;
  overflow-x:hidden;
}

.wrap{
  max-width:720px;
  margin:0 auto;
  padding:0 20px;
}

a{color:inherit;}

/* ---- hero ---- */
.hero{
  background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);
  color:#fff;
  padding:40px 0 48px;
  text-align:center;
}
.brandrow{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin-bottom:18px;
}
.badge{
  background:rgba(255,255,255,0.22);
  border:1px solid rgba(255,255,255,0.5);
  border-radius:999px;
  padding:4px 12px;
  font-weight:700;
  font-size:13px;
  letter-spacing:0.5px;
}
.brandname{
  font-weight:600;
  font-size:15px;
  opacity:0.95;
}
.hero h1{
  margin:0 0 10px;
  font-size:clamp(32px,8vw,44px);
  font-weight:800;
  letter-spacing:-0.5px;
}
.subtitle{
  margin:0 auto;
  max-width:460px;
  font-size:16px;
  opacity:0.95;
}

/* ---- steps ---- */
main{padding-top:28px;padding-bottom:16px;}

.step{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:24px 22px;
  margin-bottom:18px;
  box-shadow:0 2px 10px rgba(194,65,12,0.06);
}

.step-zero{
  border:2px solid var(--primary);
  text-align:center;
}

.step-num{
  display:inline-block;
  background:var(--secondary);
  color:#fff;
  font-weight:700;
  font-size:12px;
  letter-spacing:0.5px;
  padding:4px 10px;
  border-radius:999px;
  margin-bottom:10px;
}
.step-zero .step-num{background:var(--primary);}

.step h2{
  margin:0 0 10px;
  font-size:21px;
  font-weight:800;
  color:var(--primary-dark);
}
.step-zero h2{font-size:26px;}

.why{
  margin:0 0 16px;
  font-size:15px;
  color:#4B5563;
}

.btn{
  display:inline-block;
  text-decoration:none;
  font-weight:700;
  border-radius:12px;
  padding:14px 22px;
  text-align:center;
  border:none;
  cursor:pointer;
  font-size:16px;
  transition:transform .08s ease;
}
.btn:active{transform:scale(0.98);}

.btn-primary{
  background:var(--secondary);
  color:#fff;
  box-shadow:0 4px 14px rgba(21,128,61,0.28);
}
.btn-primary:hover{background:var(--secondary-dark);}

.btn-big{
  width:100%;
  font-size:18px;
  padding:16px 22px;
}

.btn-secondary{
  background:#fff;
  color:var(--primary-dark);
  border:2px solid var(--primary);
  margin-top:10px;
  width:100%;
}

.note{
  margin:14px auto 0;
  font-size:13px;
  color:#6B7280;
  max-width:420px;
}

.rules{
  background:#FFF3E0;
  border:1px solid #FBD9AE;
  border-radius:var(--radius);
  padding:20px 22px;
  margin-top:8px;
}
.rules h2{
  margin:0 0 10px;
  font-size:17px;
  color:var(--primary-dark);
}
.rules ul{
  margin:0;
  padding-left:20px;
  font-size:14px;
  color:#4B5563;
}
.rules li{margin-bottom:6px;}

.footer{
  text-align:center;
  padding:28px 16px 40px;
  font-size:13px;
  color:#9CA3AF;
}

.toast{
  position:fixed;
  left:50%;
  bottom:24px;
  transform:translate(-50%,120%);
  background:#1F2937;
  color:#fff;
  padding:10px 18px;
  border-radius:999px;
  font-size:14px;
  opacity:0;
  transition:transform .25s ease, opacity .25s ease;
  pointer-events:none;
  z-index:50;
  max-width:90vw;
  text-align:center;
}
.toast.show{
  transform:translate(-50%,0);
  opacity:1;
}

@media (min-width:600px){
  .step{padding:28px 32px;}
}


/* ---- v2: plan dashboard ---- */
.plan-box{
  background:var(--card);
  border:2px solid var(--secondary);
  border-radius:var(--radius);
  padding:24px 22px;
  margin-bottom:22px;
  box-shadow:0 2px 10px rgba(21,128,61,0.08);
}
.plan-box .step-num{background:var(--secondary);}

.plan-modules{
  display:flex;
  flex-direction:column;
  gap:14px;
  margin:16px 0 20px;
}

.module-card{
  border:1px solid var(--border);
  border-radius:12px;
  padding:14px 16px;
  background:#FFFCF9;
  transition:border-color .15s ease, background .15s ease;
}
.module-card.module-active{
  border-color:var(--secondary);
  background:#F3FBF4;
}

.module-head{
  display:flex;
  align-items:flex-start;
  gap:10px;
}
.module-letter{
  flex:0 0 auto;
  background:var(--primary);
  color:#fff;
  font-weight:800;
  font-size:14px;
  width:28px;
  height:28px;
  border-radius:8px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.module-head h3{
  margin:0 0 4px;
  font-size:16px;
  font-weight:800;
  color:var(--primary-dark);
}
.module-why{
  margin:0;
  font-size:13px;
  color:#6B7280;
}

.module-options{
  margin-top:12px;
  display:flex;
  flex-direction:column;
  gap:8px;
  padding-left:38px;
}

.option-row{
  display:flex;
  align-items:flex-start;
  gap:8px;
  font-size:14px;
  color:#374151;
  cursor:pointer;
}
.option-row input{
  margin-top:3px;
  flex:0 0 auto;
}
.option-row-main{
  margin-top:12px;
  padding-left:38px;
  font-weight:700;
  color:var(--primary-dark);
}

.module-extra{
  margin-top:10px;
  padding-left:38px;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.field-label{
  font-size:12px;
  color:#6B7280;
  margin-bottom:-4px;
}
.field-input{
  width:100%;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:8px;
  font-size:14px;
  font-family:inherit;
}

.strategy-choice{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.btn-plan{margin-top:4px;}

#planHint{text-align:center;}

.section-heading{
  font-size:20px;
  font-weight:800;
  color:var(--primary-dark);
  margin:0 0 6px;
  text-align:center;
}
.section-sub{
  text-align:center;
  margin:0 0 16px;
}

.step-module{margin-bottom:18px;}

.step-option{
  border-top:1px solid var(--border);
  padding-top:14px;
  margin-top:14px;
}
.step-option:first-of-type{
  border-top:none;
  padding-top:0;
  margin-top:0;
}
.step-option-label{
  font-weight:700;
  font-size:14px;
  color:#374151;
  margin:0 0 10px;
}

.option-actions{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.option-actions .btn{width:100%;}

.field-group{
  margin-bottom:16px;
  text-align:left;
}
.field-group .field-label{
  display:block;
  font-size:13px;
  font-weight:700;
  color:var(--text);
  margin-bottom:6px;
}
.field-group textarea.field-input{
  resize:vertical;
}
#detailsForm{
  text-align:left;
}
#formSection .gate-check-row{
  margin-top:4px;
}
.module-card.module-active{
  border-color:var(--secondary);
  background:#F3FBF4;
}

.gate-check-row{
  display:flex;
  align-items:flex-start;
  gap:10px;
  background:#fff;
  border:2px solid var(--secondary);
  border-radius:12px;
  padding:14px 16px;
  cursor:pointer;
  font-weight:700;
  font-size:15px;
  margin-bottom:14px;
}
.gate-check-row input[type="checkbox"]{
  width:22px;
  height:22px;
  flex-shrink:0;
  margin-top:1px;
  accent-color:var(--secondary);
}
