/* Global mobile UX overrides */
html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

@media (max-width: 1100px) {
  .navbar {
    inset: max(8px, env(safe-area-inset-top)) 8px auto 8px;
    border-radius: 18px;
  }

  .navbar .nav-mobile-toggle {
    min-height: 46px;
    padding: 11px 14px;
  }

  .navbar .nav {
    gap: 6px;
    padding: 8px;
    max-height: calc(100dvh - 108px - env(safe-area-inset-top));
    overflow-y: auto;
    overflow-x: hidden;
    padding-bottom: calc(10px + env(safe-area-inset-bottom));
  }

  .navbar .nav-item > a,
  .navbar .dropdown-content li a,
  .navbar .theme-toggle,
  .navbar .palette-toggle {
    min-height: 42px;
    display: flex;
    align-items: center;
  }

  .navbar .dropdown-content {
    margin-top: 4px;
    border-radius: 12px;
  }

  .container {
    margin: 82px 8px 10px 8px !important;
    padding: 14px !important;
    border-radius: 14px !important;
    min-height: calc(100dvh - 96px);
    overflow: visible;
  }

  .container::before {
    height: 52px;
  }

  .row {
    row-gap: 0.65rem;
  }

  h1 {
    font-size: clamp(1.2rem, 5.4vw, 1.5rem);
  }

  h2 {
    font-size: clamp(1.1rem, 4.8vw, 1.35rem);
  }

  .btn,
  .form-control,
  .form-select,
  .form-check-input {
    min-height: 42px;
  }

  .btn-group {
    flex-wrap: wrap;
    gap: 6px;
  }

  .filter-shell,
  .filter-form,
  .card,
  .tabella-card,
  .bar-summary-card,
  .bar-close-section,
  .chiusura-panel {
    border-radius: 14px !important;
  }

  .filter-form-grid,
  .bar-filter-grid,
  .chiusura-grid-4,
  .chiusura-kpi-grid,
  .chiusura-cards-grid,
  .bar-close-grid,
  .bar-growth-grid,
  .bar-growth-stats,
  .bar-report-grid-mini,
  .doc-folder-grid,
  .doc-grid {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .filter-actions,
  .bar-modal-actions,
  .edit-voce-actions,
  .chiusura-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }

  .filter-actions .btn,
  .bar-modal-actions .btn,
  .edit-voce-actions .btn,
  .chiusura-actions .btn {
    flex: 1 1 140px;
  }

  .table-wrap,
  .report-table-wrap,
  .bar-table-wrap,
  .mag-table-pane {
    overflow-x: auto !important;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
  }

  table.table-sm,
  .table,
  .bar-table,
  .report-table-wrap .table {
    min-width: 620px;
  }

  table.table-sm th,
  table.table-sm td,
  .table th,
  .table td,
  .bar-table th,
  .bar-table td {
    padding: 7px 8px !important;
    font-size: 0.78rem;
    white-space: nowrap;
  }

  table.table-sm td:last-child,
  .bar-table td:last-child,
  .table td:last-child {
    overflow: visible !important;
  }

  .btn-actions {
    width: 32px;
    height: 32px;
    min-width: 32px;
  }

  .dropdown-menu,
  td .dropdown-menu,
  .bar-dropdown-menu {
    right: 0;
    left: auto;
    min-width: 170px;
  }

  .tabelle-prospetto,
  .tabelle-giorni {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .tabella-card {
    padding: 10px !important;
  }

  .modal-dialog {
    margin: 8px auto !important;
    max-width: calc(100vw - 14px) !important;
  }

  .modal-content,
  .bar-modal-card,
  .edit-voce-dialog,
  .edit-voce-dialog-sm {
    border-radius: 14px !important;
    max-height: calc(100dvh - 20px);
    overflow: auto;
  }

  .bar-modal-overlay,
  .edit-voce-modal {
    padding: 8px !important;
  }

  .modal-body {
    max-height: calc(100dvh - 170px);
    overflow: auto;
  }

  .ai-assistant-launcher {
    right: 12px;
    bottom: max(12px, env(safe-area-inset-bottom));
  }

  .ai-assistant-panel {
    left: 8px;
    right: 8px;
    bottom: calc(max(12px, env(safe-area-inset-bottom)) + 56px);
    width: auto;
    max-height: 60dvh;
  }

  canvas {
    max-width: 100% !important;
    height: auto !important;
  }

  .bar-chart-canvas-wrap,
  .donut-wrap {
    overflow-x: auto;
  }
}

@media (max-width: 760px) {
  .navbar {
    inset: max(6px, env(safe-area-inset-top)) 6px auto 6px;
  }

  .navbar .nav-mobile-toggle {
    font-size: 0.94rem;
    padding: 10px 12px;
  }

  .container {
    margin: 76px 6px 8px 6px !important;
    padding: 12px !important;
    border-radius: 12px !important;
  }

  .container::before {
    height: 44px;
  }

  .btn {
    font-size: 0.88rem;
  }

  .btn.btn-sm {
    min-height: 34px;
    font-size: 0.8rem;
  }

  table.table-sm,
  .table,
  .bar-table,
  .report-table-wrap .table {
    min-width: 560px;
  }

  table.table-sm th,
  table.table-sm td,
  .table th,
  .table td,
  .bar-table th,
  .bar-table td {
    font-size: 0.75rem;
  }
}

@media (max-width: 480px) {
  .container {
    margin: 72px 6px 8px !important;
    padding: 10px !important;
  }

  .navbar .nav {
    max-height: calc(100dvh - 96px - env(safe-area-inset-top));
  }

  .navbar .nav-item > a,
  .navbar .dropdown-content li a {
    font-size: 0.9rem;
  }

  .btn,
  .form-control,
  .form-select {
    font-size: 0.85rem;
  }

  table.table-sm,
  .table,
  .bar-table,
  .report-table-wrap .table {
    min-width: 520px;
  }

  .ai-assistant-panel {
    max-height: 66dvh;
  }
}

@media (hover: none) and (pointer: coarse) {
  .btn:hover {
    transform: none !important;
  }
}
