:root{
  --fg-warning-bg:#3a2a10;
  --fg-warning-bg-2:#2a1e0a;
  --fg-warning-border:rgba(247, 181, 0, 0.55);
  --fg-warning-text:#F5DDA0;
  --fg-error-bg:#3a1218;
  --fg-error-bg-2:#2a0a0e;
  --fg-error-border:rgba(244, 114, 182, 0.65);
  --fg-error-text:#FBD5E0;
  --fg-success-border:rgba(52, 211, 153, 0.7);
  --fg-example-color:rgba(224, 192, 123, 0.6);
}

.fg-toast{
  position:absolute;
  pointer-events:auto;
  max-width:min(360px, calc(100vw - 24px));
  padding:10px 14px;
  border-radius:10px;
  font-size:14px;
  line-height:1.4;
  font-weight:500;
  letter-spacing:0.01em;
  box-shadow:0 8px 24px rgba(0, 0, 0, 0.45), 0 2px 6px rgba(0, 0, 0, 0.3);
  opacity:0;
  transform:translateY(-6px);
  transition:opacity 0.22s ease, transform 0.22s ease;
  font-family:inherit;
  text-align:left;
  z-index:9999;
}

.fg-toast.is-visible{
  opacity:1;
  transform:translateY(0);
}

.fg-toast--soft{
  background:linear-gradient(145deg, var(--fg-warning-bg), var(--fg-warning-bg-2));
  border:1px solid var(--fg-warning-border);
  color:var(--fg-warning-text);
}

.fg-toast--hard{
  background:linear-gradient(145deg, var(--fg-error-bg), var(--fg-error-bg-2));
  border:1px solid var(--fg-error-border);
  color:var(--fg-error-text);
}

.fg-toast::after{
  content:'';
  position:absolute;
  bottom:-7px;
  left:50%;
  transform:translateX(-50%) rotate(45deg);
  width:12px;
  height:12px;
  background:inherit;
  border-right:1px solid;
  border-bottom:1px solid;
  border-color:inherit;
  border-image:none;
}

.fg-toast--soft::after{
  background:var(--fg-warning-bg-2);
  border-color:var(--fg-warning-border);
}

.fg-toast--hard::after{
  background:var(--fg-error-bg-2);
  border-color:var(--fg-error-border);
}

.fg-toast--below::after{
  bottom:auto;
  top:-7px;
  border-right:none;
  border-bottom:none;
  border-left:1px solid;
  border-top:1px solid;
  border-color:inherit;
}

.fg-toast--below.fg-toast--soft::after{ border-color:var(--fg-warning-border); }
.fg-toast--below.fg-toast--hard::after{ border-color:var(--fg-error-border); }

.fg-input-invalid{
  border-color:var(--fg-error-border) !important;
  box-shadow:0 0 0 3px rgba(244, 114, 182, 0.18) !important;
}

.fg-input-valid{
  border-color:var(--fg-success-border) !important;
}

.fg-microflash{
  animation:fg-microflash-anim 0.6s ease;
}

@keyframes fg-microflash-anim{
  0%{ box-shadow:0 0 0 0 rgba(52, 211, 153, 0.0); }
  35%{ box-shadow:0 0 0 6px rgba(52, 211, 153, 0.35); }
  100%{ box-shadow:0 0 0 0 rgba(52, 211, 153, 0); }
}

.fg-example{
  display:block;
  margin-top:4px;
  font-size:11.5px;
  font-style:italic;
  color:var(--fg-example-color);
  letter-spacing:0.01em;
  line-height:1.3;
}

.fg-suggestion{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:6px;
  padding:8px 12px;
  border-radius:10px;
  background:linear-gradient(145deg, #2a1e0a, #1a1305);
  border:1px solid rgba(247, 181, 0, 0.45);
  font-size:13px;
  line-height:1.3;
  color:#F5DDA0;
  flex-wrap:wrap;
}

.fg-suggestion__label{
  opacity:0.85;
}

.fg-suggestion__btn{
  appearance:none;
  border:1px solid rgba(247, 181, 0, 0.55);
  background:rgba(247, 181, 0, 0.15);
  color:#FBE9B0;
  font:inherit;
  font-weight:600;
  padding:4px 10px;
  border-radius:7px;
  cursor:pointer;
  transition:background 0.15s ease, border-color 0.15s ease;
}

.fg-suggestion__btn:hover,
.fg-suggestion__btn:focus-visible{
  background:rgba(247, 181, 0, 0.28);
  border-color:rgba(247, 181, 0, 0.85);
  outline:none;
}

@media (prefers-reduced-motion: reduce){
  .fg-toast{ transition:opacity 0.05s linear; transform:none; }
  .fg-microflash{ animation:none; }
}
.step-dot.is-reachable{
  cursor:pointer;
  transition:transform 0.15s ease, opacity 0.15s ease;
}
.step-dot:not(.is-reachable){
  cursor:default;
}
.step-dot.is-reachable:hover,
.step-dot.is-reachable:focus-visible{
  transform:scale(1.25);
  opacity:1;
  outline:none;
}
.fg-review-card{
  margin-top:14px;
  padding:14px 16px;
  border:1px solid rgba(247, 181, 0, 0.25);
  border-radius:12px;
  background:linear-gradient(145deg, #1a1305, #0d0a04);
}
.fg-review-person-heading{
  margin:0 0 8px 0;
  font-size:14px;
  letter-spacing:0.04em;
  text-transform:uppercase;
  color:var(--dorado, #D4A84B);
}
.fg-review-row{
  display:grid;
  grid-template-columns:minmax(120px, 38%) 1fr;
  gap:8px 14px;
  margin:0;
  padding:8px 0;
  border-bottom:1px solid rgba(247, 181, 0, 0.08);
  align-items:baseline;
}
.fg-review-row:last-child{ border-bottom:none; }
.fg-review-label{
  margin:0;
  font-size:12px;
  letter-spacing:0.04em;
  text-transform:uppercase;
  opacity:0.65;
}
.fg-review-value{
  margin:0;
  font-size:15px;
  word-break:break-word;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.fg-review-edit{
  appearance:none;
  background:transparent;
  border:1px solid rgba(247, 181, 0, 0.4);
  color:var(--dorado, #D4A84B);
  font:inherit;
  font-size:12px;
  padding:4px 10px;
  border-radius:7px;
  cursor:pointer;
  flex-shrink:0;
  transition:background 0.15s ease, border-color 0.15s ease;
}
.fg-review-edit:hover,
.fg-review-edit:focus-visible{
  background:rgba(247, 181, 0, 0.12);
  border-color:rgba(247, 181, 0, 0.7);
  outline:none;
}
.review-confirm{
  margin-top:16px;
  padding:12px 14px;
  background:rgba(247, 181, 0, 0.06);
  border:1px solid rgba(247, 181, 0, 0.25);
  border-radius:10px;
}
@media (max-width: 480px){
  .fg-review-row{
    grid-template-columns:1fr;
    gap:2px 0;
  }
}
