
.ev{
  margin:1.75rem 0;
  border:2px solid #000;
  background:#fff;
  padding:1rem 1.25rem;
}
.ev-grid{margin:0;display:flex;flex-direction:column;gap:.8rem}
.ev-row{
  display:grid;
  grid-template-columns:5rem 1fr;
  gap:0 1rem;
  align-items:baseline;
}
.ev-grid dt{
  font-size:.66rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  opacity:.6;
}
.ev-grid dd{margin:0;font-size:.9rem;line-height:1.5}
.ev-grid a{border-bottom:1px solid #000}
.ev-grid a:hover{border-bottom-style:double}
@media (max-width:480px){
  .ev-row{grid-template-columns:1fr;gap:.15rem}
}

.sf-form{max-width:820px;margin-top:1.5rem}

.sf-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1rem 1.25rem;
}
.sf-full{grid-column:1 / -1}
@media (max-width:640px){
  .sf-grid{grid-template-columns:1fr}
}

.sf-field{display:flex;flex-direction:column;gap:.3rem}

.sf-label{
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.sf-control{
  font:14px/1.5 "Courier New",Courier,monospace;
  color:#000;
  background:#fff;
  border:1px solid #000;
  border-radius:0;
  padding:.5rem .6rem;
  width:100%;
  appearance:none;
  transition:box-shadow .12s ease, background .12s ease;
}
.sf-control:hover{background:#fafafa}
.sf-control:focus{outline:3px solid #000;outline-offset:2px;background:#fff}
textarea.sf-control{resize:vertical;min-height:5.5rem}
select.sf-control{
  background-image:linear-gradient(45deg,transparent 50%,#000 50%),
                   linear-gradient(135deg,#000 50%,transparent 50%);
  background-position:calc(100% - 15px) 52%, calc(100% - 10px) 52%;
  background-size:5px 5px, 5px 5px;
  background-repeat:no-repeat;
  padding-right:2rem;
}

.sf-hint{font-size:.68rem;opacity:.6;letter-spacing:.04em}
.sf-error{font-size:.68rem;color:#a00;font-weight:700;min-height:0}
.sf-field.is-invalid .sf-control{
  border-color:#a00;
  border-width:2px;
  background:#fff5f5;
}
.sf-field.is-invalid .sf-label{color:#a00}

.sf-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
  margin-top:1.5rem;
}

.sf-submit,.sf-copy{
  font:700 .72rem/1 "Courier New",Courier,monospace;
  letter-spacing:.14em;
  text-transform:uppercase;
  border:2px solid #000;
  border-radius:0;
  padding:.75rem 1.4rem;
  cursor:pointer;
  transition:background .12s linear,color .12s linear,transform .12s ease,box-shadow .12s ease;
}
.sf-submit{background:#000;color:#fff}
.sf-submit:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 #000}
.sf-copy{background:#fff;color:#000}
.sf-copy:hover{background:#000;color:#fff}
.sf-submit:focus-visible,.sf-copy:focus-visible{outline:3px solid #000;outline-offset:3px}

.sf-status{
  margin-top:1rem;
  font-size:.72rem;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.sf-status:empty{display:none}
.sf-status:not(:empty){
  border-left:4px solid #000;
  padding-left:.7rem;
}
.sf-done{
  margin-top:2rem;
  border:2px solid #000;
  padding:1.25rem;
  background:#fff;
  animation:sf-in .3s ease both;
}
@keyframes sf-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.sf-done-h{text-transform:uppercase;font-weight:900;font-size:1.1rem;margin-bottom:.4rem}
.sf-done-p{font-size:.85rem;margin-bottom:1rem}

.sf-summary{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:.35rem 1rem;
  margin:0 0 1rem;
  font-size:.8rem;
  border-top:1px solid rgba(0,0,0,.2);
  padding-top:.75rem;
}
.sf-summary dt{
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-size:.62rem;
  opacity:.65;
  padding-top:.15rem;
}
.sf-summary dd{margin:0;word-break:break-word}

.sf-raw{
  border:1px solid #000;
  background:#fafafa;
  padding:.75rem;
  font-size:.72rem;
  white-space:pre-wrap;
  word-break:break-word;
  margin-top:.6rem;
  max-height:14rem;
  overflow:auto;
}

@media (prefers-reduced-motion: reduce){
  .sf-submit,.sf-copy,.sf-done{transition:none;animation:none}
  .sf-submit:hover{transform:none}
}
.ev-req{
  display:inline-block;
  border:1px solid #000;
  background:#000;
  color:#fff;
  font-size:.58rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  padding:1px .35rem;
  vertical-align:.12em;
  white-space:nowrap;
}
