/* Mobile typography only. Keep this file after the page-specific styles.
   Legacy templates use !important, so heading overrides need the same priority. */
@media (max-width: 760px) {
  .php-site #main h1 {
    font-size: 24px !important;
    line-height: 1.4 !important;
    letter-spacing: -.02em !important;
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: normal;
    text-wrap: pretty;
  }

  .php-site #main :is(.published-article, .guide-heading, .overseas-guide-hero, .legal-heading) h1 {
    font-size: 22px !important;
    line-height: 1.5 !important;
  }

  .php-site #main .breadcrumbs ol {
    margin: 4px 0 18px;
    gap: 6px 8px;
    font-size: 12px;
    line-height: 1.7;
  }

  .php-site #main :is(.directory-intro, .overseas-heading, .tags-heading) {
    padding: 18px 0 22px;
    gap: 16px;
  }

  .php-site #main :is(.tools-heading, .rules-heading, .guide-heading, .tutorial-heading, .project-heading) {
    padding: 8px 0 22px !important;
    gap: 12px !important;
  }

  .php-site #main :is(.rules-heading, .guide-heading) {
    margin-bottom: 24px;
  }

  .php-site #main :is(.tags-heading, .project-heading, .guide-heading, .rules-heading) h1 {
    margin-top: 0;
    margin-bottom: 10px;
  }

  .php-site #main :is(.directory-intro, .overseas-heading, .project-heading, .guide-heading) > div {
    min-width: 0;
  }

  .php-site #main :is(.directory-description, .tools-lead) {
    margin-top: 8px;
    font-size: 14px;
    line-height: 1.75;
  }

  .php-site #main .published-article {
    margin-top: 22px;
    margin-bottom: 28px;
  }

  .php-site #main .published-article > h1 {
    margin: 12px 0 16px;
  }

  .php-site #main .article-lead {
    font-size: 15px;
    line-height: 1.8;
    padding-bottom: 20px;
    margin-bottom: 24px;
  }

  /* Section headings only: small card titles and form labels keep their scale. */
  .php-site #main :is(
    .section-heading h2, .reading-section > h2, .download-entry h2,
    .article-body h2, .guide-body h2, .guide-related > h2,
    .overseas-guide-body > section:not(.overseas-tip) > h2,
    .server-tutorial-heading h2, .tools-section-heading h2,
    .current-ip-heading h2, .tool-directory-heading h2,
    .rules-section-title h2, .rules-faq h2,
    .detail-about h2, .detail-resources > h2, .detail-screenshots h2,
    .detail-release > h2, .detail-release-changelog h2, .official-overview > h2,
    .detail-people > h2, .related-apps > h2,
    .server-features h2, .hub-section-head h2, .hub-full-content h2,
    .legal-content h2, .correction-form-intro h2,
    .history-section-heading h2, .history-method > div:first-child > h2,
    .protocol-guide h2, .core-profile-latest h2, .core-profile-section > h2
  ) {
    font-size: 20px !important;
    line-height: 1.5;
    overflow-wrap: anywhere;
  }

  .php-site #main :is(.article-body h3, .guide-body h3, .history-event h3, .history-lineage-selected-header h3) {
    font-size: 17px;
    line-height: 1.6;
    overflow-wrap: anywhere;
  }

  .php-site #main .rules-heading h1 {
    gap: 10px;
  }

  .php-site #main .rules-title-mark {
    width: 32px;
    height: 32px;
    flex: none;
    border-radius: 10px;
  }

  .php-site #main .rules-title-mark svg {
    width: 21px;
    height: 21px;
  }

  .php-admin #admin-main .page-heading h1 {
    font-size: 22px;
    line-height: 1.45;
    overflow-wrap: anywhere;
  }
}

/* Phone workspace: thumb navigation, on-demand controls, and a single reading flow. */
@media (max-width: 760px) {
  html { scroll-padding-top: 60px; }
  .php-site { padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
  .php-site :is(button, a, input, select, textarea) { -webkit-tap-highlight-color: transparent; }
  .php-site :is(button, summary, .button) { touch-action: manipulation; }
  .php-site :is(a, button, input, select, textarea, summary):focus-visible {
    outline: 2px solid var(--ui-accent); outline-offset: 3px;
  }
  .php-site :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]), select, textarea) {
    max-width: 100%; min-width: 0; font-size: 16px;
  }
  .php-site :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]), select, .button) { min-height: 46px; }
  .php-site :is(h2, h3, section[id], div[id], span[id]) { scroll-margin-top: 22px; }
  .php-site .page-shell { padding: 16px 16px 32px; }

  .mobile-layout-ready .php-site .directory-header {
    position: sticky; top: 0; z-index: 50; height: 60px; min-height: 60px;
    background: var(--ui-surface); border-bottom: 1px solid var(--ui-line);
  }
  .mobile-layout-ready .php-site .directory-header-inner {
    height: 60px; min-height: 0; padding: 0 16px; display: flex; flex-wrap: nowrap;
    align-items: center; justify-content: space-between; gap: 12px;
  }
  .mobile-layout-ready .php-site .directory-navigation { display: none; }
  .php-site .directory-brand { min-height: 44px; font-size: 17px; }
  .php-site .directory-brand img { width: 28px; height: 28px; }
  .php-site .directory-header-tools { margin-left: auto; }
  .php-site .theme-switch { min-height: 44px; min-width: 48px; font-size: 13px; }
  .mobile-reader-action:not([hidden]) { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 48px; padding: 8px; border: 0; background: none; color: var(--ui-accent); font: inherit; font-size: 13px; }

  .mobile-bottom-nav:not([hidden]) {
    position: fixed; z-index: 70; inset: auto 0 0; display: grid; grid-template-columns: repeat(5,minmax(0,1fr));
    padding: 6px max(8px, env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom, 0px)) max(8px, env(safe-area-inset-left));
    background: var(--ui-surface); border-top: 1px solid var(--ui-line); box-shadow: 0 -4px 20px #14264208;
  }
  .mobile-bottom-nav :is(a,button) {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
    min-height: 52px; min-width: 0; padding: 5px 2px; border: 0; border-radius: 12px;
    background: none; color: var(--ui-muted); font: inherit; font-size: 11px; line-height: 1.3; text-decoration: none;
  }
  .mobile-bottom-nav .is-active { background: var(--ui-soft); color: var(--ui-accent); font-weight: 650; }
  .php-site:has(input:focus,textarea:focus) .mobile-bottom-nav { display: none; }
  .php-site:has(.mobile-sheet[open]) { overflow: hidden; }

  .mobile-sheet[open] {
    position: fixed; inset: auto 0 0; box-sizing: border-box; display: flex; flex-direction: column;
    width: 100%; max-width: 100%; max-height: 86dvh; margin: 0; padding: 0;
    color: var(--ui-ink); background: var(--ui-surface); border: 0; border-top: 1px solid var(--ui-line);
    border-radius: 24px 24px 0 0; box-shadow: 0 -16px 60px #15283e25; overflow: hidden;
  }
  .mobile-sheet::backdrop { background: #10213888; }
  .mobile-sheet-heading {
    display: flex; flex: none; align-items: center; justify-content: space-between; gap: 16px;
    padding: 20px 20px 14px; border-bottom: 1px solid var(--ui-line);
  }
  .mobile-sheet-heading h2 { margin: 0; font-size: 20px; line-height: 1.5; font-weight: 650; }
  .mobile-sheet-heading p { margin: 0 0 3px; color: var(--ui-muted); font-size: 12px; }
  .mobile-sheet-heading button {
    min-width: 52px; min-height: 44px; padding: 8px 10px; border: 0; border-radius: 10px;
    background: var(--ui-soft); color: var(--ui-accent); font: inherit; font-size: 14px;
  }
  .mobile-sheet-body { padding: 16px 20px calc(28px + env(safe-area-inset-bottom, 0px)); overflow-y: auto; overscroll-behavior: contain; }
  .mobile-navigation-group + .mobile-navigation-group { margin-top: 24px; }
  .mobile-navigation-group h3 { font-size: 13px; font-weight: 500; color: var(--ui-muted); margin: 0 0 8px; }
  .mobile-navigation-group nav { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .mobile-navigation-group a {
    min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 8px;
    padding: 10px 12px; border-radius: 10px; background: var(--ui-bg); color: var(--ui-ink); font-size: 14px; text-decoration: none;
  }
  .mobile-navigation-group a[aria-current] { color: var(--ui-accent); background: var(--ui-soft); }
  .mobile-navigation-group a span { color: var(--ui-muted); }

  .php-site [data-mobile-panel] { display: none !important; }
  .php-site .mobile-sheet [data-mobile-panel] { display: block !important; }
  .mobile-panel-trigger:not([hidden]) {
    display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; min-height: 46px;
    margin: 0 0 16px; padding: 11px 14px; border: 1px solid var(--ui-line); border-radius: 12px;
    background: var(--ui-surface); color: var(--ui-ink); font: inherit; font-size: 14px; font-weight: 550;
  }
  .mobile-panel-trigger::after { content: '⌄'; font-size: 17px; color: var(--ui-muted); }
  .mobile-catalog-actions:not([hidden]) { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 10px; }
  .mobile-catalog-actions .mobile-panel-trigger { margin: 0; }
  .php-site .mobile-sheet :is(.directory-sidebar,.overseas-sidebar,.rules-sidebar,.guide-toc,.overseas-guide-toc) {
    position: static; width: 100%; max-height: none; padding: 0; margin: 0; border: 0; box-shadow: none; background: none; overflow: visible;
  }
  .php-site .mobile-sheet :is(.proxy-workspace-nav,.overseas-sidebar nav,.guide-toc nav,.overseas-guide-toc nav,.airport-tools-navigation,.airport-guide-navigation) {
    display: flex; flex-direction: column; gap: 6px; overflow: visible; max-height: none; white-space: normal;
  }
  .php-site .mobile-sheet :is(.proxy-workspace-group, .sidebar-fold) { display: block; width: 100%; margin: 0 0 10px; }
  .php-site .mobile-sheet summary { display: flex; align-items: center; min-height: 48px; }
  .php-site .mobile-sheet :is(nav a,.mobile-article-toc a) {
    display: flex; align-items: center; gap: 10px; min-height: 46px; padding: 10px 12px; font-size: 14px; white-space: normal; border-radius: 10px;
  }
  .php-site .mobile-sheet .directory-sort { margin-bottom: 16px; }
  .php-site .mobile-sheet .directory-sort::before { content: '排列顺序'; display: block; margin-bottom: 8px; font-size: 13px; color: var(--ui-muted); }
  .php-site .mobile-sheet .directory-filters { padding: 0; border: 0; }
  .php-site .mobile-sheet .directory-filters > label { display: block; height: auto; margin: 0 0 16px; padding: 0; border: 0 !important; background: none !important; box-shadow: none !important; }
  .php-site .mobile-sheet .directory-filters > label::after { display: none; }
  .php-site .mobile-sheet .directory-filters > label > span { position: static; display: block; transform: none; margin-bottom: 8px; font-size: 13px; color: var(--ui-muted) !important; }
  .php-site .mobile-sheet :is(.directory-sort select,.directory-filters select) {
    display: block; appearance: auto; width: 100%; height: 48px; padding: 10px 12px; background: var(--ui-bg); color: var(--ui-ink) !important; border: 1px solid var(--ui-line); border-radius: 10px;
  }
  .php-site .mobile-sheet .directory-filters > button { width: 100%; margin-top: 4px; background: var(--ui-button-fill); color: var(--ui-button-ink); }
  .php-site .mobile-sheet .clear-link { display: flex; justify-content: center; align-items: center; min-height: 44px; margin-top: 8px; }

  .php-site #main :is(.directory-workspace,.overseas-workspace,.rules-workspace,.overseas-guide-layout,.guide-layout) { display: block; }
  .php-site #main :is(.directory-results,.overseas-results,.rules-results,.guide-body,.overseas-guide-body) { min-width: 0; }
  .php-site #main .directory-toolbar { display: grid; grid-template-columns: minmax(0,1fr) 64px; gap: 8px; }
  .php-site #main :is(.directory-search,.overseas-search input,.rules-search-input) { min-width: 0; }
  .php-site #main .directory-search input { width: 100%; padding: 12px 14px; }
  .php-site #main .directory-results-heading { padding: 18px 0 12px; }
  .php-site #main :is(.directory-intro,.overseas-heading) { padding: 8px 0 22px; }
  .php-site #main .overseas-total { padding: 0; }
  .php-site #main .overseas-total strong { font-size: 24px; }
  .php-site #main .rules-search { display: grid; grid-template-columns: minmax(0,1fr) auto; }
  .php-site #main .rules-search-input { grid-column: 1/-1; }
  .php-site #main :is(.software-grid,.overseas-grid,.reading-grid,.rules-grid,.friend-grid) { grid-template-columns: minmax(0,1fr); gap: 12px; }
  .php-site #main .software-card--compact { border-radius: 16px; }
  .php-site #main .software-card--compact .software-card-main { padding: 18px 16px 12px; }
  .php-site #main .software-card--compact .software-card-heading { grid-template-columns: 42px minmax(0,1fr) auto; gap: 11px; }
  .php-site #main .software-card--compact .software-icon { width: 42px; height: 42px; border-radius: 11px; }
  .php-site #main .software-card--compact h2 { font-size: 17px; line-height: 1.45; }
  .php-site #main .software-card--compact .software-description { margin: 14px 0; font-size: 14px; line-height: 1.75; min-height: 0; }
  .php-site #main .client-card-footer { margin-inline: 16px; padding: 10px 0 14px; }
  .php-site #main :is(.client-card-guide,.client-card-download) { min-height: 44px; font-size: 14px; }
  .php-site #main .client-card-download { padding-inline: 18px; }
  .php-site #main .reading-card { padding: 18px !important; }
  .php-site #main .reading-card h3 { font-size: 17px; line-height: 1.6; padding-right: 22px; }
  .php-site #main .reading-card p { font-size: 14px; line-height: 1.8; }
  .php-site #main .section-heading { align-items: flex-start; gap: 12px; }
  .php-site #main .section-heading > a { flex-shrink: 0; min-height: 44px; display: inline-flex; align-items: center; }

  .php-site #main .project-heading { display: grid; grid-template-columns: 48px minmax(0,1fr); align-items: start; }
  .php-site #main .project-heading > img { width: 48px; height: 48px; border-radius: 12px; }
  .php-site #main .project-heading > div { min-width: 0; }
  .php-site #main .project-heading p { font-size: 14px; line-height: 1.8; }
  .php-site #main .project-heading > .button { grid-column: 1/-1; width: 100%; margin: 2px 0 0; }
  .php-site #main .reader-tabs {
    flex-wrap: nowrap; overflow-x: auto; overscroll-behavior-x: contain; gap: 8px !important;
    padding: 10px 0 14px; margin: 8px 0 20px; scrollbar-width: thin;
  }
  .php-site #main .reader-tabs > a { flex: none; min-height: 44px; display: inline-flex; align-items: center; white-space: nowrap; padding: 10px 14px; }
  .php-site #main .download-links { display: grid; grid-template-columns: minmax(0,1fr); gap: 10px; }
  .php-site #main .download-links a { min-height: 48px; justify-content: space-between; }
  .php-site #main .tag-chips > a { min-height: 36px; display: inline-flex; align-items: center; padding: 7px 10px; }
  .php-site #main .tutorial-navigation { gap: 8px; margin: 16px 0 20px; }
  .php-site #main .tutorial-navigation a { min-height: 40px; }
  .php-site #main :is(.article-body,.overseas-guide-body,.guide-body,.legal-content) { font-size: 16px; line-height: 1.9; }
  .php-site #main :is(.article-body,.guide-body,.overseas-guide-body) pre { max-width: 100%; overflow-x: auto; font-size: 13px; }
  .php-site #main .article-body table { display: block; max-width: 100%; overflow-x: auto; }
  .php-site #main .article-body :is(img,video) { max-width: 100%; height: auto; }
  .php-site #main .guide-step { grid-template-columns: 26px minmax(0,1fr); gap: 10px; }

  .php-site #main .tools-heading { gap: 16px !important; }
  .php-site #main [data-utility-page] .tools-heading { padding-bottom: 14px !important; }
  .php-site #main [data-utility-page] :is(.tools-heading .tools-lead,.tools-header-stats,.tools-workspace-heading) { display: none; }
  .php-site #main .tools-workspace { display: block; }
  .php-site #main .tools-sidebar { position: sticky; top: 60px; z-index: 40; margin: 0 -4px 20px; padding: 8px 4px; background: var(--ui-bg); }
  .php-site #main .tools-sidebar-disclosure > summary { min-height: 62px; border-radius: 12px; }
  .php-site #main .tools-sidebar-body { max-height: calc(75dvh - 100px); overscroll-behavior: contain; }
  .php-site #main .tools-sidebar-link { min-height: 48px; }
  .php-site #main :is(.tools-test-panel,.current-ip-panel,.generator-panel) { padding: 18px 16px; border-radius: 16px; }
  .php-site #main :is(.tools-section-heading,.current-ip-heading) { flex-wrap: wrap; gap: 12px; }
  .php-site #main :is(.tools-test-panel,.current-ip-panel,.generator-panel) button:not(.favorite-button) { min-height: 44px; }
  .php-site #main .tools-workspace-heading { margin-bottom: 12px; flex-wrap: wrap; }
  .php-site #main .tools-workspace-content [id] { scroll-margin-top: 92px; }
  .php-site #main .pagination { justify-content: space-between; gap: 12px; padding: 24px 0; }
  .php-site #main .pagination a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 16px; border: 1px solid var(--ui-line); border-radius: 10px; }
  .php-site .directory-footer { padding: 28px 16px; margin-top: 16px; }
  .php-site .directory-footer nav { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2px 10px; }
  .php-site .directory-footer nav a { display: flex; align-items: center; min-height: 44px; font-size: 12px; }
}
