/* Classic card look */
.sfa-card{
  --sfa-radius: 14px;
  --sfa-shadow: 0 8px 24px rgba(0,0,0,.08);
  --sfa-border: 1px solid rgba(0,0,0,.06);
  --sfa-bg: #fff;
  padding: 18px 22px;
  margin: 24px 0;
  background: var(--sfa-bg);
  border: var(--sfa-border);
  border-radius: var(--sfa-radius);
  box-shadow: var(--sfa-shadow);
}
.sfa-title{
  text-align:center;
  font-weight:700;
  font-size: 1.05rem;
  margin: 4px 0 14px;
}
.sfa-form textarea{
  width:100%;
  min-height: 130px;
  resize: vertical;
  padding: 12px 14px;
  border: 1px solid rgba(0,0,0,.15);
  border-radius: 10px;
  outline: none;
  font: inherit;
  background: #fff;
}
.sfa-form textarea::placeholder{ color: rgba(0,0,0,.45); }
.sfa-form textarea:focus{
  border-color: #0a66c2;
  box-shadow: 0 0 0 3px rgba(10,102,194,.15);
}
/* readonly state after submit */
.sfa-form textarea.sfa-readonly,
.sfa-form textarea[readonly]{
  background: #f6f7fb;
  color: #222;
}
.sfa-btn{
  display:block;
  width:100%;
  margin-top: 14px;
  padding: 12px 16px;
  border-radius: 10px;
  border: 1px solid transparent;
  background: #0a66c2;
  color: #fff;
  font-weight: 700;
  cursor: pointer;
}
.sfa-btn.sfa-disabled{ opacity:.7; cursor:not-allowed; }
.sfa-result{ margin-top: 10px; font-size:.95em; }

/* AI answer block */
.sfa-answer{
  margin-top: 14px;
  padding: 12px 14px;
  border: 1px dashed rgba(0,0,0,.15);
  border-radius: 10px;
  background: rgba(10,102,194,.06);
}
.sfa-answer__title{
  font-weight: 700;
  margin-bottom: 6px;
  font-size: .95rem;
}
.sfa-answer__body{ line高さ: 1.6; }

@media (prefers-color-scheme: dark){
  .sfa-card{
    --sfa-bg: #161616;
    --sfa-border: 1px solid rgba(255,255,255,.06);
    --sfa-shadow: 0 8px 24px rgba(0,0,0,.5);
  }
  .sfa-form textarea{
    background: #1b1b1b; color: #eaeaea;
    border-color: rgba(255,255,255,.14);
  }
  .sfa-form textarea::placeholder{ color: rgba(255,255,255,.45); }
  .sfa-form textarea.sfa-readonly,
  .sfa-form textarea[readonly]{ background:#1e2530; color:#dfe6f3; }
  .sfa-answer{
    background: rgba(10,102,194,.15);
    border-color: rgba(255,255,255,.18);
  }
}