.mobile-quick-actions { display: none; }

/* 手机端以“选择、登记、下载”三个高频动作优先，桌面端布局不受影响。 */
@media (max-width: 640px) {
  body { background: #eef3f9; font-size: 14px; }
  header { height: auto; min-height: 0; padding: 10px 12px; align-items: stretch; flex-direction: column; gap: 9px; }
  header > div, header nav { width: 100%; }
  header > div b { font-size: 17px; }
  header nav { display: flex; gap: 7px !important; justify-content: flex-start; }
  header nav > a, header nav > .admin-menu > summary { display: inline-flex; min-height: 38px; align-items: center; padding: 8px 10px; border-radius: 8px; background: #ffffff18; text-decoration: none; }
  header nav .top-nav-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; margin: 0; gap: 7px; }
  header nav .top-nav-button { width: 100%; min-height: 40px; padding: 8px 7px; }
  header nav .nav-settings { background: #ffffff12 !important; }
  header nav .nav-logout { margin-left: 0; }
  header .identity { order: 10; width: 100%; margin: 0; padding-top: 2px; color: #dbe9f6; font-size: 12px; }
  .admin-menu { position: static; }
  .admin-menu-panel { position: fixed; z-index: 100; top: 106px; right: 10px; left: 10px; max-height: calc(100vh - 122px); overflow-y: auto; grid-template-columns: 1fr 1fr; min-width: 0; padding: 8px; }
  .admin-menu-panel a { min-height: 44px; align-items: center; white-space: normal; }

  main { width: 100%; margin: 10px auto 24px; padding: 0 10px; }
  .card { padding: 14px; border-radius: 10px; box-shadow: 0 2px 10px #1f4e7810; }
  h1 { font-size: 25px; }
  h2 { font-size: 19px; }
  input, select, button, .button { min-height: 44px; }

  .display-hero { gap: 13px; margin-bottom: 10px; background: #fff; }
  .display-hero .eyebrow { font-size: 11px; }
  .display-hero h1 { margin-bottom: 5px; }
  .display-hero > .button { width: 100%; text-align: center; }
  .display-toolbar { gap: 12px; margin-bottom: 10px; }
  .display-toolbar > form { width: 100%; }
  #dashboard-filter { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 9px; }
  #dashboard-filter input, #dashboard-filter select { width: 100%; min-width: 0; }
  #dashboard-filter .anchor-search { grid-column: 1 / -1; }
  .generation-form { width: 100%; }
  .generation-form .last-generation { white-space: normal; }
  .generation-form .primary { min-height: 48px; }
  .mobile-quick-actions { position: sticky; z-index: 14; top: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin: 0 0 10px; padding: 7px; border: 1px solid #cbd9ea; border-radius: 10px; background: #fffffff2; box-shadow: 0 4px 14px #173a621c; backdrop-filter: blur(9px); }
  .mobile-quick-actions a { display: grid; min-height: 42px; place-items: center; padding: 7px; border-radius: 7px; background: #edf4fd; color: #1f4e78; text-align: center; text-decoration: none; font-weight: 800; }
  .mobile-quick-actions a:first-child { background: #4472c4; color: #fff; }
  .display-summary { margin-bottom: 10px; }
  .summary-chips { display: grid; gap: 7px; }
  .summary-chips span { display: flex; justify-content: space-between; gap: 10px; border-radius: 8px; }
  .summary-chips b { text-align: right; }

  .work-grid { gap: 10px; }
  .daily-status-work > .card { padding: 12px; overflow: visible; }
  .daily-status-work .table-scroll { overflow: visible; border: 0; }
  .daily-status-table, .daily-status-table tbody { display: block; width: 100%; }
  .daily-status-table thead { display: none; }
  .daily-status-table tr { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin-bottom: 10px; padding: 12px; border: 1px solid #d9e4f2; border-radius: 10px; background: #fff; }
  .daily-status-table tr.changed { border-color: #d6b34f; background: #fffaf0; }
  .daily-status-table td { display: grid; min-width: 0; gap: 4px; padding: 0; border: 0; }
  .daily-status-table td::before { content: attr(data-label); color: #6b7889; font-size: 11px; font-weight: 600; }
  .daily-status-table td:nth-child(1) { grid-column: span 2; }
  .daily-status-table td:nth-child(2) { grid-column: span 1; }
  .daily-status-table td:nth-child(3) { grid-column: 1 / -1; }
  .daily-status-table td:nth-child(n+4) { justify-items: center; text-align: center; }
  .daily-status-table td:nth-child(n+4)::before { min-height: 28px; text-align: center; }
  .daily-status-table select { width: 100%; }
  .daily-status-table input[type=checkbox] { width: 24px; height: 24px; margin: 2px 0 0; }
  .daily-status-table td:nth-child(2) { overflow-wrap: anywhere; color: #5f6d7f; font-size: 12px; }
  .settings-savebar { z-index: 12; align-items: stretch; flex-direction: column; gap: 7px; margin: 0 -2px; padding: 10px 2px 2px; background: #fffffff2; backdrop-filter: blur(7px); }
  .settings-savebar button { width: 100%; min-height: 50px; }
  .daily-account-merge { grid-template-columns: 1fr; gap: 12px; margin-top: 12px; padding: 13px; }
  .merge-fields { grid-template-columns: 1fr; gap: 9px; }
  .merge-plus { display: none; }
  .merge-fields input { min-height: 46px; font-size: 16px; }
  .saved-merges { align-items: stretch; flex-direction: column; }
  .saved-merges label { min-height: 42px; }
  .audit { max-height: 360px; }
  .daily-status-work .audit { display: none; }

  .reports { margin-top: 10px; }
  .report-grid { gap: 10px; }
  .report { padding: 8px 0 14px; }
  .report img { margin: 8px 0; }
  .report > div { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .report .button { margin: 0; padding: 10px 6px; text-align: center; }
  .manual-change-summary { margin-top: 10px; }
  .manual-change-summary > summary { font-size: 17px; }
  .change-date-filter input { width: 100%; min-width: 0; }

  .viewer-panel { inset: 0; border-radius: 0; }
  .viewer-toolbar { gap: 7px; padding: 8px; }
  .viewer-toolbar strong { font-size: 15px; }
  .viewer-actions { width: 100%; display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px; }
  .viewer-actions button { min-height: 38px; padding: 5px; font-size: 12px; }
  .viewer-actions span { display: none; }
  .viewer-stage { padding: 6px; }
  .viewer-tip { font-size: 11px; }

  .settings-filter form { width: 100%; display: grid; grid-template-columns: 1fr 1fr; }
  .settings-filter input, .settings-filter select { width: 100%; min-width: 0; }
  body:has(.settings-page-marker) main { padding-left: 10px; }
  .settings-jump { top: 0; left: auto; overflow-x: auto; flex-wrap: nowrap; flex-direction: row; width: auto; border-radius: 0; }
  .settings-jump a { flex: 0 0 auto; }
  .setting-box { padding: 12px; }
  .setting-box .settings-form, .rule-layout form, .fine-config { align-items: stretch; flex-direction: column; }
  .setting-box input, .setting-box select, .rule-layout input, .rule-layout select, .fine-config input, .fine-config select { width: 100%; }
}

@media (max-width: 390px) {
  #dashboard-filter, .settings-filter form { grid-template-columns: 1fr; }
  .admin-menu-panel { grid-template-columns: 1fr; }
  .daily-status-table tr { padding: 10px; }
}
