    body {
      font-family: system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;
      background: #f7f7f7;
      margin: 0;
      padding: 0;
    }

    .container {
      max-width: 960px;
      margin: 0 auto;
      padding: 16px 12px 48px;
    }

    h1 {
      font-size: 1.4rem;
      margin: 0 0 30px;
      text-align:center;
    }

    h1 span {
      font-weight: 600;
      font-size:1rem;
    }

    p.description {
      font-size: 0.9rem;
      color: #555;
      margin: 0 0 16px;
      line-height: 1.6;
    }

    /* --- フォーム全体 --- */
    #upload-form {
      background: #fff;
      border-radius: 8px;
      padding: 16px 16px 20px;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
    }

    /* --- トップ（イントロ） --- */
    .intro-step {
      text-align: left;
      padding: 12px 4px 20px;
    }

    .intro-step-title {
      font-size: 1.0rem;
      font-weight: 600;
      margin-bottom: 8px;
    }

    .intro-step-text {
      font-size: 0.9rem;
      color: #555;
      line-height: 1.7;
      margin-bottom: 12px;
    }

    .intro-step-note {
      font-size: 0.8rem;
      color: #777;
      margin-bottom: 16px;
    }

    .intro-step-actions {
      text-align: center;
    }

    /* --- 汎用ボタン --- */
    .primary-btn {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 8px 16px;
      border-radius: 999px;
      border: none;
      background: #0070c9;
      color: #fff;
      font-size: 0.9rem;
      cursor: pointer;
      margin: 8px auto 0;
    }

    .primary-btn:disabled {
      opacity: 0.5;
      cursor: default;
    }

    .primary-btn i {
      font-size: 0.9rem;
    }

    /* --- アップロードエリア --- */
    .upload-area {
      border: 2px dashed #ccc;
      border-radius: 6px;
      padding: 16px 12px;
      text-align: center;
      background: #fafafa;
      margin-bottom: 12px;
    }

    .upload-area p {
      margin: 0 0 8px;
      font-size: 0.9rem;
      color: #555;
      line-height: 1.5;
    }

    .select-btn {
      display: inline-block;
      padding: 6px 12px;
      border-radius: 999px;
      border: none;
      background: #0070c9;
      color: #fff;
      font-size: 0.85rem;
      cursor: pointer;
      margin-bottom: 6px;
    }

    /* ネイティブのファイル選択ボタンは非表示 */
    #image-input {
      display: none;
    }

    .remaining-count {
      font-size: 0.8rem;
      color: #555;
      margin: 4px 0;
    }

    .note {
      font-size: 0.8rem;
      color: #888;
      margin: 0;
    }

    /* --- プレビュー（サムネ + 削除ボタン） --- */
    .preview-list {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin: 12px 0 18px;
    }

    .preview-item {
      width: 80px;
      height: 80px;
      border-radius: 4px;
      overflow: hidden;
      border: 1px solid #ddd;
      position: relative;
      background: #f0f0f0;
    }

    .preview-item img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }

    .preview-remove {
      position: absolute;
      top: 2px;
      right: 2px;
      width: 18px;
      height: 18px;
      border-radius: 50%;
      border: none;
      background: rgba(0,0,0,0.65);
      color: #fff;
      font-size: 11px;
      text-align: center;
      cursor: pointer;
    }

    /* --- 設問ブロック --- */
    .question-block {
      margin-bottom: 16px;
      padding: 12px 10px;
      border-radius: 6px;
      background: #fafafa;
      border: 1px solid #eee;
    }

    .question-title {
      font-size: 0.95rem;
      font-weight: 600;
      margin-bottom: 4px;
    }

    .question-sub {
      font-size: 0.8rem;
      color: #666;
      margin: 0 0 10px;
      line-height: 1.6;
    }

    .option-group {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-bottom: 6px;
    }

    .option-btn {
      padding: 5px 10px;
      border-radius: 999px;
      border: 1px solid #ccc;
      background: #fff;
      font-size: 0.8rem;
      cursor: pointer;
      /*white-space: nowrap;*/
    }

    .option-btn.selected {
      background: #0070c9;
      color: #fff;
      border-color: #0070c9;
    }

    .size-row {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-bottom: 8px;
    }

    .size-field {
      display: flex;
      align-items: center;
      gap: 4px;
      font-size: 0.8rem;
    }

    .size-field input[type="number"] {
      width: 80px;
      padding: 4px 6px;
      font-size: 0.85rem;
    }

    .size-unit {
      font-size: 0.8rem;
      color: #555;
    }

    .size-note {
      font-size: 0.8rem;
      color: #777;
      margin: 0;
    }

    .question-block textarea,
    .notes-area textarea {
      width: 100%;
      min-height: 80px;
      padding: 6px 8px;
      border-radius: 4px;
      border: 1px solid #ccc;
      font-size: 0.85rem;
      resize: vertical;
      box-sizing: border-box;
    }

    .question-block textarea::placeholder,
    .notes-area textarea::placeholder {
      color: #aaa;
    }

    /* --- タグ（複数選択ボタン風） --- */
    .tag-group {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      margin-bottom: 4px;
    }

    .tag-item {
      display: inline-flex;
      align-items: center;
      padding: 4px 10px;
      border-radius: 999px;
      border: 1px solid #ccc;
      background: #fff;
      font-size: 0.8rem;
      cursor: pointer;
      user-select: none;
    }

    .tag-item input {
      display: none; /* チェックボックスは視覚的に非表示 */
    }

    .tag-item.selected {
      background: #0070c9;
      color: #fff;
      border-color: #0070c9;
    }

    .tag-hint {
      font-size: 0.75rem;
      color: #777;
      margin: 4px 0 0;
    }

    /* --- ステップナビ --- */
    .step-nav {
      display: flex;
      justify-content: center;
      align-items: center;
      margin-top: 12px;
      gap: 8px;
    }

    .step-btn {
      padding: 6px 14px;
      border-radius: 999px;
      border: 1px solid #ccc;
      background: #fff;
      font-size: 0.8rem;
      cursor: pointer;
    }

    .step-btn[disabled] {
      opacity: 0.4;
      cursor: default;
    }

    .step-counter {
      font-size: 0.75rem;
      color: #777;
    }

    /* --- アクション（解析ボタン）--- */
    .actions {
      margin-top: 12px;
      display: flex;
      align-items: center;
      justify-content: center; /* 中央寄せ */
      gap: 8px;
    }

    .submit-btn {
      padding: 8px 18px;
      border-radius: 999px;
      border: none;
      background: #00a86b;
      color: #fff;
      font-size: 0.9rem;
      cursor: pointer;
    }

    .submit-btn:disabled {
      opacity: 0.4;
      cursor: default;
    }

    .status {
      font-size: 0.8rem;
      color: #555;
    }

    /* --- 結果表示 --- */
    .results {
      margin-top: 20px;
      background: #fff;
      border-radius: 8px;
      padding: 14px 16px 18px;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
    }

    .results h2 {
      font-size: 1.0rem;
      margin: 0 0 10px;
    }

    .analysis-block {
      border: 1px solid #eee;
      border-radius: 6px;
      padding: 10px 10px 12px;
      margin-bottom: 12px;
    }

    .analysis-title {
      font-size: 0.9rem;
      font-weight: 600;
      margin: 0 0 6px;
    }

    .results-main {
      border-bottom: 1px solid #f0f0f0;
      padding-bottom: 8px;
      margin-bottom: 8px;
    }

    .result-label {
      font-size: 0.75rem;
      color: #777;
      margin-bottom: 2px;
    }

    .result-title {
      font-size: 0.95rem;
      font-weight: 600;
      margin-bottom: 4px;
    }

    .result-artist {
      font-size: 0.9rem;
      margin-bottom: 6px;
    }

    .result-price {
      font-size: 0.9rem;
      font-weight: 600;
      margin-bottom: 2px;
    }

    .result-confidence {
      font-size: 0.75rem;
      color: #777;
      margin-bottom: 4px;
    }

    .small-text {
      font-size: 0.75rem;
      color: #555;
      line-height: 1.6;
    }

    .tags {
      display: flex;
      flex-wrap: wrap;
      gap: 4px;
      margin: 4px 0;
    }

    .tag-pill {
      font-size: 0.75rem;
      padding: 2px 6px;
      border-radius: 999px;
      background: #f0f4ff;
      color: #555;
    }

    .section-title {
      font-size: 0.8rem;
      font-weight: 600;
      margin: 6px 0 4px;
    }

    .list-compact {
      list-style: none;
      padding-left: 0;
      margin: 0;
      font-size: 0.8rem;
      color: #555;
    }

    .list-compact li {
      margin-bottom: 2px;
    }

    /* --- 解析条件 --- */
    .conditions-images {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      margin: 4px 0 8px;
    }

    .conditions-images img {
      width: 60px;
      height: 60px;
      object-fit: cover;
      border-radius: 4px;
      border: 1px solid #ddd;
    }

    .conditions-text dl {
      margin: 0;
      display: grid;
      grid-template-columns: 110px 1fr;
      row-gap: 4px;
      column-gap: 4px;
    }

    .conditions-text dt {
      font-size: 0.75rem;
      color: #777;
    }

    .conditions-text dd {
      margin: 0;
      font-size: 0.8rem;
      color: #555;
    }

    /* --- 専門家相談 --- */
    .expert-toggle-btn {
      margin-top: 10px;
      padding: 8px 14px;
      border-radius: 999px;
      border: 1px solid #0070c9;
      background: #fff;
      color: #0070c9;
      font-size: 0.85rem;
      cursor: pointer;
      display: inline-flex;
      align-items: center;
      gap: 6px;
      margin-left: auto;
      margin-right: auto; /* 中央寄せ */
      display: flex;
      justify-content: center;
    }

    .expert-panel {
      margin-top: 8px;
      padding: 10px 10px 12px;
      border-radius: 6px;
      border: 1px solid #eee;
      background: #fafafa;
      display: none;
    }

    .expert-panel-title {
      font-size: 0.9rem;
      font-weight: 600;
      margin-bottom: 4px;
    }

    .expert-panel-desc {
      font-size: 0.8rem;
      color: #555;
      margin: 0 0 8px;
      line-height: 1.6;
    }

    .expert-form-row {
      margin-bottom: 8px;
      font-size: 0.8rem;
    }

    .expert-form-row label {
      display: block;
      margin-bottom: 2px;
    }

    .expert-form-row input,
    .expert-form-row select,
    .expert-form-row textarea {
      width: 100%;
      padding: 5px 7px;
      border-radius: 4px;
      border: 1px solid #ccc;
      font-size: 0.85rem;
      box-sizing: border-box;
    }

    .expert-form-row textarea {
      min-height: 80px;
      resize: vertical;
    }

    .expert-submit-btn {
      margin-top: 4px;
      padding: 6px 14px;
      border-radius: 999px;
      border: none;
      background: #0070c9;
      color: #fff;
      font-size: 0.85rem;
      cursor: pointer;
    }

    .expert-status {
      margin-top: 6px;
      font-size: 0.8rem;
      color: #555;
    }

    /* --- Google画像検索 活用ガイド --- */
    .info-box {
      margin: 8px 0 12px;
      padding: 10px 12px;
      border-radius: 6px;
      border: 1px solid #e0e0e0;
      background: #fafafa;
      font-size: 0.8rem;
      color: #555;
      line-height: 1.6;
    }

    .google-guide-title {
      font-size: 0.9rem;
      font-weight: 600;
      margin: 0 0 4px;
    }

    .google-guide-text {
      margin: 0 0 6px;
    }

    .google-guide-list {
      margin: 0 0 8px 1.2em;
      padding: 0;
      font-size: 0.78rem;
      color: #555;
    }

    .google-guide-list li {
      margin-bottom: 3px;
    }

    .secondary-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      padding: 6px 14px;
      border-radius: 999px;
      border: 1px solid #0070c9;
      background: #fff;
      color: #0070c9;
      font-size: 0.85rem;
      cursor: pointer;
      text-decoration: none;
    }

    .secondary-btn i {
      font-size: 0.85rem;
    }

    /* --- ステップのフェード --- */
    .step-hidden {
      display: none;
    }

    .step-active {
      display: block;
    }

    .step-fade {
      animation: fadeUp 0.35s ease-out;
    }
    
    .step-header{
        display:none;
        margin: 15px 0 20px;
    }

    .step-number{
        font-size:1rem;
        color:#0070c9;
        font-weight:600;
        text-align:center;
    }
    
    .step-title{
        font-size:1.2rem;
        font-weight:600;
        margin-top:4px;
    }
    
    @keyframes fadeUp {
      from {
        opacity: 0;
        transform: translateY(10px);
      }
      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    @media (min-width: 768px) {
      .container {
        padding: 20px 0 60px;
      }
    }