.futai-tool {
  margin: 32px 0;
  padding: 30px;
  min-width: 0;
  border: 1px solid #cdd5cb;
  border-top: 4px solid #203a35;
  background: #f6f3eb;
  color: #203a35;
  overflow-wrap: anywhere;
}
.futai-tool *, .futai-tool *::before, .futai-tool *::after { box-sizing: border-box; }
.futai-tool [hidden] { display: none !important; }
.futai-tool .futai-tool__eyebrow { margin: 0 0 8px; font-size: 12px; font-weight: 700; letter-spacing: .1em; }
.futai-tool h3 { margin: 0 0 16px; padding: 0; font-size: 25px; line-height: 1.65; }
.futai-tool .futai-tool__intro { margin: 0 0 14px; }
.futai-tool .futai-tool__notice { margin: 0 0 26px; color: #4f5e55; font-size: 13px; line-height: 1.9; }
.futai-tool form { margin: 0; }
.futai-tool .futai-tool__stage { min-width: 0; margin: 0; padding: 26px 0; border: 0; border-top: 1px solid #cdd5cb; }
.futai-tool .futai-tool__selection { padding-top: 0; border-top: 0; }
.futai-tool .futai-tool__stage > legend,
.futai-tool .futai-tool__stage > h4 { display: flex; align-items: baseline; gap: 10px; float: none; width: 100%; margin: 0 0 14px; padding: 0; color: #203a35; font-size: 18px; font-weight: 700; line-height: 1.8; letter-spacing: .02em; }
.futai-tool .futai-tool__step { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border: 1px solid #6b7b70; font-size: 14px; line-height: 1; }
.futai-tool .futai-tool__help { margin: 0 0 14px; color: #4f5e55; font-size: 13px; line-height: 1.9; }
.futai-tool .futai-tool__part-options { display: grid; gap: 8px; margin-top: 18px; }
.futai-tool .futai-tool__part-option { display: flex; align-items: flex-start; gap: 12px; min-width: 0; min-height: 64px; margin: 0; padding: 14px 16px; border: 1px solid #cdd5cb; background: #fff; cursor: pointer; }
.futai-tool .futai-tool__part-option > span { display: block; min-width: 0; }
.futai-tool .futai-tool__part-option strong { display: block; font-size: 16px; font-weight: 700; line-height: 1.65; }
.futai-tool .futai-tool__where { display: block; margin-top: 3px; color: #4f5e55; font-size: 13px; line-height: 1.75; }
.futai-tool .futai-tool__part-option:has(input:checked) { border-color: #203a35; background: #eaf0e9; }
.futai-tool .futai-tool__part-option:has(input:focus-visible) { outline: 3px solid #935c3a; outline-offset: 3px; }
.futai-tool input[type="checkbox"] { appearance: auto; flex: 0 0 20px; width: 20px; height: 20px; min-width: 20px; margin: 3px 0 0; padding: 0; border: 1px solid #798b7f; border-radius: 0; accent-color: #203a35; font: inherit; font-size: 16px; cursor: pointer; }
.futai-tool .futai-tool__details { display: grid; gap: 18px; min-width: 0; }
.futai-tool .futai-tool__detail { min-width: 0; margin: 8px 0 0; padding: 20px; border: 1px solid #b8c4b8; background: #fff; }
.futai-tool .futai-tool__detail > legend { float: none; width: auto; max-width: 100%; margin: 0; padding: 0 8px; color: #203a35; font-size: 18px; font-weight: 700; line-height: 1.7; }
.futai-tool .futai-tool__field { min-width: 0; margin: 0 0 20px; }
.futai-tool .futai-tool__field:last-child { margin-bottom: 0; }
.futai-tool .futai-tool__field > label,
.futai-tool .futai-tool__field-label { display: block; margin: 0 0 8px; color: #203a35; font-size: 14px; font-weight: 700; line-height: 1.8; }
.futai-tool :is(select, input[type="text"], textarea) { display: block; width: 100%; max-width: 100%; min-width: 0; min-height: 48px; margin: 0; padding: 11px 12px; border: 1px solid #798b7f; border-radius: 2px; background: #fff; color: #203a35; font: inherit; font-size: 16px; line-height: 1.75; }
.futai-tool select { appearance: auto; padding-right: 30px; }
.futai-tool textarea { resize: vertical; }
.futai-tool :is(input[type="text"], textarea)::placeholder { color: #69766c; opacity: 1; }
.futai-tool .futai-tool__scope-checks { margin-bottom: 20px; }
.futai-tool .futai-tool__scope-checks > .futai-tool__help { margin-bottom: 6px; }
.futai-tool .futai-tool__check-list { display: grid; gap: 2px; }
.futai-tool .futai-tool__check { display: flex; align-items: flex-start; gap: 12px; min-width: 0; min-height: 44px; margin: 0; padding: 9px 0; color: #203a35; font-size: 16px; line-height: 1.7; cursor: pointer; }
.futai-tool .futai-tool__check > span { min-width: 0; }
.futai-tool .futai-tool__reason, .futai-tool .futai-tool__absent { margin: 0 0 20px; padding: 10px 12px; background: #f3f5ef; font-size: 14px; line-height: 1.9; }
.futai-tool .futai-tool__reason .futai-tool__check { padding: 2px 0; align-items: center; }
.futai-tool .futai-tool__reason input[type="checkbox"] { margin-top: 0; }
.futai-tool .futai-tool__empty { margin: 16px 0 0; padding: 16px; border-left: 2px solid #8d9d8c; background: #eeeee5; color: #4f5e55; font-size: 14px; line-height: 1.9; }
.futai-tool .futai-tool__count { margin: 0 0 16px; color: #4f5e55; font-size: 14px; line-height: 1.9; }
.futai-tool .futai-tool__questions { margin: 0 0 24px; padding: 0 0 0 1.7em; color: #203a35; font-size: 15px; line-height: 1.95; }
.futai-tool .futai-tool__questions:empty { display: none; }
.futai-tool .futai-tool__questions > li { margin: 0 0 14px; padding-left: 4px; }
.futai-tool .futai-tool__memo-label { display: block; margin: 24px 0 8px; font-size: 16px; font-weight: 700; }
.futai-tool textarea.futai-tool__memo { padding: 14px; line-height: 1.85; }
.futai-tool .futai-tool__actions, .futai-tool .futai-tool__confirm-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.futai-tool button { display: inline-flex; align-items: center; justify-content: center; min-width: 0; min-height: 48px; margin: 0; padding: 11px 16px; border: 1px solid #203a35; border-radius: 2px; background: #203a35; color: #fff; font: inherit; font-size: 16px; font-weight: 700; line-height: 1.6; text-align: center; cursor: pointer; }
.futai-tool button.futai-tool__secondary { background: transparent; color: #203a35; }
.futai-tool button:hover { background: #334e45; color: #fff; }
.futai-tool button:disabled { opacity: .55; cursor: default; }
.futai-tool :is(button, select, input, textarea):focus-visible { outline: 3px solid #935c3a; outline-offset: 3px; }
.futai-tool .futai-tool__reset-confirm { margin-top: 18px; padding: 16px; border: 1px solid #8d9d8c; background: #fff; }
.futai-tool .futai-tool__reset-confirm > p { margin: 0; font-size: 14px; line-height: 1.9; }
.futai-tool .futai-tool__storage { margin-top: 24px; padding-top: 16px; border-top: 1px solid #cdd5cb; }
.futai-tool .futai-tool__storage .futai-tool__help { margin: 5px 0 0 32px; }
.futai-tool .futai-tool__status { min-height: 1.9em; margin: 12px 0 0; color: #203a35; font-size: 14px; line-height: 1.9; }
.futai-tool .futai-tool__result { padding-bottom: 0; }
.futai-tool .futai-tool__noscript { margin-top: 22px; padding: 18px; border: 1px solid #b8c4b8; background: #fff; font-size: 14px; line-height: 1.9; }
.futai-tool .futai-tool__noscript > p { margin: 0 0 14px; }
.futai-tool .futai-tool__noscript ul { margin: 0; padding-left: 1.5em; }
.futai-tool .futai-tool__noscript li { margin-bottom: 10px; }
.futai-tool .futai-tool__print-memo { display: none; }
#futai-print-document { display: none; }
@media (max-width: 600px) {
  .futai-tool { padding: 24px 16px; }
  .futai-tool h3 { font-size: 22px; }
  .futai-tool .futai-tool__intro { font-size: 15px; }
  .futai-tool .futai-tool__stage > legend, .futai-tool .futai-tool__stage > h4 { font-size: 17px; }
  .futai-tool .futai-tool__part-option { padding: 13px 12px; }
  .futai-tool .futai-tool__detail { padding: 16px 12px; }
  .futai-tool .futai-tool__actions, .futai-tool .futai-tool__confirm-actions { flex-direction: column; }
  .futai-tool button { width: 100%; }
  .futai-tool .futai-tool__storage .futai-tool__help { margin-left: 0; }
}
@media print {
  body.futai-memo-printing > :not(#futai-print-document) { display: none !important; }
  body.futai-memo-printing #futai-print-document { display: block !important; margin: 0; padding: 10mm; color: #000; background: #fff; }
  #futai-print-document pre { margin: 0; padding: 0; white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; font-size: 10pt; line-height: 1.65; }
  .futai-tool { padding: 16px; border: 1px solid #555; background: #fff; color: #000; }
  .futai-tool form, .futai-tool .futai-tool__notice { display: none !important; }
  .futai-tool .futai-tool__print-memo { display: block; margin: 12px 0 0; padding: 0; white-space: pre-wrap; overflow-wrap: anywhere; color: #000; background: #fff; font: inherit; font-size: 10pt; line-height: 1.65; }
  .futai-tool h3 { break-after: avoid; }
}
