:root { color-scheme: light; font-family: system-ui, "Yu Gothic", Meiryo, sans-serif; color: #183344; background: #edf3f5; }
  * { box-sizing: border-box; }
  [hidden] { display: none !important; }
  body { margin: 0; padding: 16px; font-size: 16px; line-height: 1.65; }
  .chat { width: 100%; max-width: 460px; margin: 0 auto; background: white; border: 1px solid #c6d3db; border-radius: 16px; overflow: hidden; }
  .header { padding: 18px 20px 12px; background: #173f52; color: white; }
  .header h1 { font-size: 1.2rem; margin: 4px 0; }
  .badge { display: inline-block; border: 1px solid #a7c9d6; border-radius: 5px; padding: 1px 7px; font-size: .8rem; margin: 0; }
  .content { padding: 20px; overflow-wrap: anywhere; }
  .footer { border-top: 1px solid #d6e1e6; padding: 10px 20px; font-size: .75rem; color: #536675; }
  h2, legend { font-size: 1.15rem; font-weight: 700; line-height: 1.55; }
  h2 { margin: 0 0 12px; } h3 { font-size: 1rem; margin: 20px 0 8px; }
  p { margin: 0 0 16px; } .small { font-size: .875rem; color: #536675; }
  .header .small { color: #d3e4eb; margin-bottom: 0; }
  fieldset { margin: 12px 0; padding: 0; border: 0; min-width: 0; }
  legend { padding: 0; margin-bottom: 12px; width: 100%; }
  button, .link-button { font: inherit; font-weight: 600; min-height: 48px; padding: 11px 16px; border: 1px solid #0c6674; border-radius: 9px; background: #086372; color: white; cursor: pointer; text-align: center; text-decoration: none; display: block; width: 100%; }
  button:disabled { background: #e5eaed; color: #52616d; border-color: #bcc8d0; cursor: not-allowed; }
  button:hover:not(:disabled), .link-button:hover { background: #064e5a; }
  .secondary { background: white; color: #174e62; border-color: #738c99; }
  .secondary:hover:not(:disabled) { background: #e8f1f5; }
  :focus-visible { outline: 3px solid #bd4a05; outline-offset: 3px; }
  .choices { display: grid; gap: 9px; }
  .choice { display: flex; gap: 11px; align-items: center; border: 1px solid #96abb7; border-radius: 9px; min-height: 48px; padding: 12px; cursor: pointer; margin: 0; background: white; }
  .choice:has(input:checked) { border: 2px solid #086372; padding: 11px; background: #e6f3f5; }
  .choice:has(input:disabled:not(:checked)) { color: #5c6c77; background: #f2f4f5; }
  input[type=checkbox], input[type=radio] { width: 20px; height: 20px; flex: 0 0 20px; accent-color: #086372; margin: 0; }
  input:not([type=checkbox]):not([type=radio]) { font: inherit; min-height: 48px; width: 100%; min-width: 0; padding: 10px; border: 1px solid #738c99; border-radius: 7px; margin: 5px 0 14px; }
  .actions { display: flex; gap: 10px; margin-top: 20px; }
  .actions button { flex: 1; min-width: 0; }
  progress { width: 100%; height: 8px; accent-color: #086372; margin-bottom: 16px; }
  .levels { display: grid; grid-template-columns: 1fr auto; gap: 6px 16px; padding: 14px; background: #eef5f7; border-radius: 9px; }
  dt, dd { margin: 0; } dd { font-weight: 700; }
  .product { border: 1px solid #c4d5de; padding: 14px; border-radius: 9px; margin: 10px 0; }
  .product p { margin-bottom: 10px; }
  .cta { margin: 20px 0; } .cta .small { margin: 8px 0; }
  #free-cta { position: sticky; top: 8px; background: white; padding: 8px 0; z-index: 2; }
  #submit { position: sticky; bottom: 8px; z-index: 2; }
  #contact-form { border-top: 1px solid #c4d5de; margin-top: 22px; padding-top: 18px; }
  #privacy-link { margin-top: 18px; }
  #restart { margin-top: 12px; }
  .error { background: #fff0ed; border: 1px solid #b2482b; color: #823019; padding: 12px; border-radius: 8px; }
  .honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
  a:not(.link-button) { color: #075f85; text-underline-offset: 3px; }
  @media (max-width: 500px) { body { padding: 0; } .chat { max-width: 460px; min-height: 100vh; min-height: 100dvh; border-radius: 0; border: 0; } .content { padding: 18px 16px; } }
  @media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto; } }
