/* スマホ向けの共通調整（Escala アプリ） */
@media (min-width: 521px) {
  /* PC・タブレットはサポートシートを常時表示（summary だけ非表示） */
  .document-details__summary {
    display: none;
  }

  .document-details {
    display: block;
  }

  .document-details .document-card {
    display: block !important;
  }
}

@media (max-width: 520px) {
  html {
    -webkit-text-size-adjust: 100%;
  }

  body {
    padding: 8px 6px 20px !important;
    min-height: 100vh;
    min-height: 100dvh;
    height: auto !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    font-size: 15px;
    line-height: 1.65;
  }

  /* トップ（タイトル）画面は縦中央に */
  body.landing-page {
    align-items: center !important;
    justify-content: center !important;
    padding: max(16px, env(safe-area-inset-top)) 12px max(20px, env(safe-area-inset-bottom)) !important;
    box-sizing: border-box;
  }

  body.landing-page .container {
    box-shadow: none !important;
    background: transparent !important;
    padding: 0 8px !important;
  }

  .mobile-hide {
    display: none !important;
  }

  .sub-text,
  .description,
  .section-note {
    font-size: 14px !important;
    line-height: 1.65 !important;
  }

  .section-note {
    display: none;
  }

  .container {
    width: 100% !important;
    max-width: 100% !important;
    padding: 14px 12px max(18px, env(safe-area-inset-bottom)) !important;
    border-radius: 18px !important;
    margin: 0 auto !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06) !important;
  }

  h1, h2 {
    font-size: 17px !important;
    line-height: 1.4 !important;
    margin-bottom: 10px !important;
  }

  input[type="text"],
  input[type="date"],
  input[type="range"],
  textarea,
  select {
    font-size: 16px !important;
  }

  button,
  .main-start-btn,
  .choice-btn,
  .main-btn,
  .submit-btn,
  .send-btn,
  .btn-action,
  .search-btn,
  .home-btn {
    min-height: 48px;
    font-size: 16px !important;
  }

  .choice-btn {
    width: 100% !important;
    max-width: none !important;
  }

  .main-start-btn {
    width: 100%;
    max-width: 320px;
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  .logo-img {
    max-width: min(260px, 82vw) !important;
  }

  .logo-sub {
    font-size: 13px !important;
    margin-bottom: 24px !important;
  }

  body.parent-result-page {
    background-color: #f7fae7 !important;
    width: 100% !important;
    max-width: 100vw !important;
    overflow-x: hidden !important;
  }

  .parent-result-page .result-top,
  .parent-result-page .document-details,
  .parent-result-page .document-card,
  .parent-result-page .no-print-area {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  .parent-result-page .document-details {
    overflow-x: hidden !important;
  }

  .result-top {
    max-width: 100% !important;
    border-radius: 14px !important;
    overflow: hidden !important;
  }

  .follow-card {
    padding: 16px 14px 12px !important;
  }

  /* 保護者結果 */
  .follow-card,
  .document-card {
    padding: 16px 12px !important;
    border-radius: 12px !important;
    overflow-x: hidden !important;
  }

  .doc-title {
    font-size: 19px !important;
    letter-spacing: 0 !important;
  }

  .follow-text,
  .content-box,
  .message-card,
  .flow-card__body {
    font-size: 15px !important;
    line-height: 1.7 !important;
    letter-spacing: 0.01em;
  }

  .follow-title {
    font-size: 17px !important;
    margin-bottom: 12px !important;
  }

  .no-print-area--priority {
    max-width: 100% !important;
    margin-top: 0 !important;
    gap: 12px !important;
    padding: 0 14px 16px !important;
  }

  .search-hint {
    font-size: 12px !important;
    line-height: 1.55 !important;
    word-break: keep-all;
    overflow-wrap: break-word;
  }

  .search-hint__label {
    font-size: 11px !important;
  }

  .search-hint__value {
    font-size: 13px !important;
  }

  .mirror-card__list {
    font-size: 15px !important;
  }

  .action-guide__intro {
    font-size: 14px !important;
  }

  .parent-result-page .meta-table {
    width: 100% !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
  }

  .parent-result-page .meta-table th,
  .parent-result-page .meta-table td {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    padding: 8px 10px !important;
    font-size: 14px !important;
    box-sizing: border-box !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }

  .parent-result-page .meta-table tr {
    display: block;
    margin-bottom: 10px;
    border: 1px solid #ddd;
    box-sizing: border-box !important;
  }

  .parent-result-page .meta-table th {
    border-bottom: none;
    width: 100% !important;
  }

  .parent-result-page .content-box {
    max-width: 100% !important;
    padding: 14px 12px !important;
    box-sizing: border-box !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    line-break: strict !important;
    white-space: pre-wrap !important;
    line-height: 1.7 !important;
  }

  .parent-result-page h3 {
    margin-top: 18px !important;
    margin-bottom: 8px !important;
    padding-right: 4px !important;
    box-sizing: border-box !important;
  }

  .parent-result-page .doc-title {
    margin-bottom: 20px !important;
    padding-bottom: 8px !important;
    letter-spacing: 0 !important;
  }

  /* 保護者チャット */
  body.parent-chat-page {
    overflow-x: hidden !important;
    align-items: flex-start !important;
    padding: 8px 10px 20px !important;
  }

  .parent-chat-page .container {
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  .parent-chat-page .input-area {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  .parent-chat-page #user-input {
    width: 100% !important;
    min-width: 0 !important;
    flex: 1 1 auto !important;
    box-sizing: border-box !important;
  }

  .parent-chat-page .send-btn {
    width: 100% !important;
    flex: 0 0 auto !important;
  }

  .parent-chat-page .submit-btn {
    font-size: 14px !important;
    line-height: 1.5 !important;
    padding: 14px 14px !important;
  }

  /* 施設検索ページ */
  body.search-page {
    overflow-x: hidden !important;
    align-items: flex-start !important;
    padding: 8px 10px 20px !important;
  }

  .search-page .container {
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  .search-page .search-area {
    width: 100% !important;
    min-width: 0 !important;
  }

  .search-page #address-input {
    width: 100% !important;
    min-width: 0 !important;
    flex: 1 1 auto !important;
  }

  .search-page .search-btn {
    width: 100% !important;
    flex: 0 0 auto !important;
  }

  /* チャット */
  #chat-box {
    height: min(52vh, 380px) !important;
    min-height: 220px !important;
  }

  .msg {
    font-size: 15px !important;
    line-height: 1.65 !important;
    max-width: 90% !important;
    word-break: break-word !important;
  }

  .input-area {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
  }

  #user-input {
    width: 100% !important;
    min-width: 0 !important;
    flex: none !important;
    box-sizing: border-box !important;
  }

  .send-btn {
    width: 100% !important;
    padding: 14px 18px !important;
    flex-shrink: 0;
    box-sizing: border-box !important;
  }

  .two-col {
    flex-direction: column !important;
    gap: 0 !important;
  }

  .two-col .field {
    width: 100% !important;
  }

  .radio-row {
    gap: 6px !important;
  }

  .radio-chip {
    flex: 1 1 calc(50% - 6px);
    min-width: 0;
    justify-content: center;
    padding: 10px 8px !important;
    font-size: 13px !important;
    box-sizing: border-box;
  }

  /* 施設検索 */
  .search-area {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
  }

  .search-btn {
    width: 100% !important;
    padding: 14px !important;
  }

  #address-input {
    width: 100% !important;
  }

  /* 子ども結果 */
  .page-section {
    margin-bottom: 20px !important;
  }

  .flow-node {
    padding-left: 32px !important;
  }

  .yn-btn,
  .choice-btn,
  .flow-btn-next {
    min-height: 44px !important;
    font-size: 14px !important;
    padding-top: 9px !important;
    padding-bottom: 9px !important;
  }

  .flow-btn-todo {
    min-height: 0 !important;
    font-size: 14px !important;
    padding: 10px 12px !important;
  }

  .flow-parent-msg__btn,
  .flow-parent-msg__generate,
  .flow-parent-msg__skip {
    min-height: 0 !important;
    font-size: 12px !important;
    padding: 6px 8px !important;
    line-height: 1.3 !important;
  }

  .flow-parent-msg__actions {
    gap: 6px !important;
  }

  .flow-parent-msg__row {
    gap: 6px !important;
  }

  .flow-parent-msg {
    gap: 8px !important;
    padding: 12px 10px !important;
  }

  .flow-parent-msg__textarea {
    font-size: 14px !important;
    margin: 0 !important;
  }

  /* 入力内容の確認（子どもルート） */
  .child-check-page {
    justify-content: flex-start !important;
    align-items: stretch !important;
  }

  .child-check-page .container {
    margin-top: 0 !important;
  }

  .child-check-page .check-lead {
    font-size: 13px !important;
    margin-bottom: 10px !important;
    line-height: 1.5 !important;
  }

  .child-check-page .summary-box {
    padding: 12px 10px !important;
    margin-bottom: 14px !important;
    border-radius: 14px !important;
  }

  .child-check-page .summary-item {
    margin-bottom: 6px !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
  }

  .child-check-page .summary-item strong {
    font-size: 14px !important;
  }

  .child-check-page .main-btn {
    font-size: 15px !important;
    padding: 12px 0 !important;
    min-height: 44px !important;
  }

  .child-check-page .back-link {
    margin-top: 12px !important;
    font-size: 13px !important;
  }

  .slider-ends {
    font-size: 11px !important;
  }

  .slider-example {
    font-size: 11px !important;
    line-height: 1.45 !important;
  }

  .flow-disclaimer {
    font-size: 11px !important;
    line-height: 1.5 !important;
    padding: 9px 10px !important;
    margin-bottom: 12px !important;
  }

  .consent-modal__panel {
    padding: 18px 16px 16px !important;
    border-radius: 16px !important;
  }

  .consent-modal__title {
    font-size: 16px !important;
  }

  .consent-modal__body,
  .consent-modal__list {
    font-size: 13px !important;
  }

  .consent-modal__btn {
    min-height: 48px !important;
    font-size: 15px !important;
  }
}
