/* 窄屏布局、触屏操作和弹窗可见区域。 */
input, textarea, select, .expiry-fields > div, .tag-options,
.page-heading > div, .detail-section, .contact-section {
  min-width: 0;
}
input, textarea, select { max-width: 100%; }
.detail-team, .form-error { overflow-wrap: anywhere; }
.dialog { overscroll-behavior: contain; scroll-padding-block: 20px; }
html:has(dialog[open]), body:has(dialog[open]) { overflow: hidden; }
.notice { overflow-wrap: anywhere; pointer-events: none; }
.dialog > .notice { top: calc(var(--visual-top, 0px) + 18px); bottom: auto; }
.table-heading, .recruit-row {
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, 1fr) 110px 20px;
  column-gap: 16px;
}
.row-contact { min-width: 0; overflow-wrap: anywhere; font-size: 12px; line-height: 1.8; }
.row-expiry { display: flex; flex-direction: column; gap: 7px; }
.row-remaining { color: var(--accent); font-size: 11px; }
.privacy-warning {
  color: #ad2839;
  background: #fff2f3;
  border: 1px solid #edbac1;
  border-left: 4px solid #c43c4e;
  border-radius: 6px;
  padding: 12px 14px;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.9;
}

@media (max-width: 760px), (pointer: coarse) {
  input, textarea, select { font-size: 16px; }
  .button, .close-button { min-height: 44px; }
  .close-button { min-width: 44px; flex-shrink: 0; }
  .text-button { min-height: 44px; padding-inline: 8px; }
  .tag-options button.tag { min-height: 36px; padding: 6px 10px; }
}

@media (max-width: 760px) {
  .table-heading, .recruit-row { grid-template-columns: minmax(0, 1fr) 88px 14px; column-gap: 10px; }
  .table-heading > span:nth-child(3) { display: none; }
  .row-contact { grid-column: 1 / -1; grid-row: 3; font-size: 12px; }
  .row-contact::before { content: '联系：'; color: var(--muted); }
  .page-heading { flex-wrap: wrap; align-items: flex-start; }
  .page-heading > div { flex: 1 1 180px; }
  .page-heading > .button { flex-shrink: 0; }
  .filter-heading { flex-wrap: wrap; column-gap: 12px; row-gap: 4px; }
  .filter-heading h2 { flex-shrink: 0; }
  .tag-options { gap: 8px; }
  .row-tags .tag { font-size: 12px; padding: 3px 7px; }
  .pagination {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 8px;
    padding: 18px 12px;
  }
  .pagination .button { padding-inline: 9px; }
  .pagination span { text-align: center; }
  .dialog {
    position: fixed;
    top: calc(var(--visual-top, 0px) + 12px);
    bottom: auto;
    margin: 0 auto;
  }
  .dialog-heading { position: sticky; top: -22px; z-index: 1; background: #fff; padding-block: 8px; }
  .expiry-fields { grid-template-columns: minmax(0, 1fr); }
  .field-hint { flex-wrap: wrap; gap: 4px 12px; }
  .field-hint > :last-child { white-space: nowrap; }
  .dialog-footer { flex-wrap: wrap; }
  .dialog-footer > span { flex: 1 1 130px; max-width: none; min-width: 0; }
  .dialog-footer .button { flex-shrink: 0; }
  .publish-footer .hint { min-width: 0; }
  .notice { max-width: calc(100% - 32px); bottom: max(18px, env(safe-area-inset-bottom)); }
}

@media (max-width: 360px) {
  .page-heading > .button { width: 100%; }
  .dialog { padding-inline: 16px; }
}
