/* ===== 移动端响应式 ===== */
@media (max-width: 768px) {
  :root { --sidebar-w: 240px; --topbar-h: 54px; }

  .sidebar {
    position: fixed;
    top: 0; left: 0;
    height: 100vh;
    z-index: 350;
    transform: translateX(-100%);
    transition: transform 0.28s ease;
  }
  .sidebar.mobile-open {
    transform: translateX(0);
    box-shadow: 4px 0 24px rgba(0,0,0,0.3);
  }
  .main-content { width: 100%; }
  .mobile-bottom-nav {
    display: flex;
    padding-bottom: env(safe-area-inset-bottom, 0);
  }
  .page-container {
    padding: 16px;
    padding-bottom: 76px;
  }
  .stat-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .stat-card { padding: 14px; gap: 10px; }
  .stat-value { font-size: 22px; }
  .stat-icon { width: 40px; height: 40px; font-size: 18px; }
  .kanban-wrap { flex-direction: column; }
  .kanban-col { min-width: auto; }
  .bar-chart-wrap { gap: 6px; }
  .doc-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .quick-entry-grid { grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .quick-entry { padding: 14px 8px; }
  .quick-entry-icon { font-size: 24px; }
  .quick-entry-label { font-size: 12px; }
  .top-bar { padding: 0 14px; }
  .breadcrumb { font-size: 14px; }
  .card-body { padding: 14px; }
  .card-header { padding: 12px 14px; }
  .filter-bar { padding: 10px 14px; }
  .search-input { min-width: 140px; }
  .page-header { gap: 8px; }
  .page-title { font-size: 17px; }
  .profit-summary { padding: 20px; }
  .profit-summary-value { font-size: 28px; }
  table { font-size: 12px; }
  thead th, tbody td { padding: 8px 10px; }
  .notify-panel { width: 100%; }
  .modal { padding: 10px; }
  .modal-box { max-height: 95vh; }
  .perf-summary-row { gap: 8px; }
}

@media (max-width: 480px) {
  .stat-grid { grid-template-columns: 1fr 1fr; }
  .quick-entry-grid { grid-template-columns: repeat(3, 1fr); }
  .page-container { padding: 12px; padding-bottom: 72px; }
  .top-user { display: none; }
}

@media (min-width: 769px) {
  .mobile-bottom-nav { display: none !important; }
  .sidebar { transform: none !important; position: relative; }
  .sidebar.collapsed { width: 0; min-width: 0; overflow: hidden; }
}
