/* ==========================================================================
   RESPONSIVE — Mobile-first renforcé (l'artisan consulte depuis le chantier)
   Breakpoints : ≤1280 desktop compact · ≤1024 tablette · ≤720 mobile
   ========================================================================== */

@media (max-width: 1280px) {
  .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .split, .split-rev { grid-template-columns: minmax(0, 1fr); }
  .ged-layout { grid-template-columns: 270px minmax(0, 1fr); }
}

@media (max-width: 1024px) {
  :root { --sidebar-w: 280px; }
  .app { grid-template-columns: minmax(0, 1fr); }
  .sidebar {
    position: fixed; left: 0; top: 0; bottom: 0;
    width: var(--sidebar-w);
    transform: translateX(-102%);
    box-shadow: var(--shadow-lg);
    background: var(--surface-solid);
  }
  body.nav-open .sidebar { transform: none; }
  body.nav-open .sidebar-backdrop { display: block; }
  .topbar .topbar__burger { display: grid; }
  .grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ged-layout { grid-template-columns: minmax(0, 1fr); }
  .ged-pane { position: static; max-height: 340px; }
  .kpi-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stepper { grid-template-columns: repeat(9, minmax(64px, 1fr)); overflow-x: auto; padding-bottom: 6px; }
  .user-chip__meta { display: none; }
  .user-chip { padding: 4px; }
  .week-agenda { grid-template-columns: repeat(7, minmax(120px, 1fr)); overflow-x: auto; padding-bottom: 6px; }
}

@media (max-width: 720px) {
  :root { --topbar-h: 58px; }
  body { font-size: 0.9rem; }
  .content { padding: var(--sp-4) var(--sp-4) 110px; }
  .topbar { padding: 0 var(--sp-3); gap: 6px; }
  .topbar__crumb { display: none; }
  .topbar__title h1 { font-size: 1rem; }
  .role-switch button span { display: none; }
  .role-switch button { padding: 6px 9px; }
  .grid-2, .grid-3, .grid-4 { grid-template-columns: minmax(0, 1fr); }
  .span-2, .span-3 { grid-column: auto; }
  .form-grid { grid-template-columns: minmax(0, 1fr); }
  .page-head { margin-bottom: var(--sp-4); }
  .page-head__title h2 { font-size: 1.35rem; }
  .card { padding: var(--sp-4); border-radius: 14px; }
  .kpi__value { font-size: 1.65rem; }
  .kpi-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .kpi-mini { padding: 10px; gap: 9px; }
  .kpi-mini__icon { width: 32px; height: 32px; font-size: 1rem; }
  .kpi-mini__value { font-size: 1rem; }
  .info-grid { grid-template-columns: minmax(0, 1fr); }
  .modal-backdrop { padding: 0; align-items: end; }
  .modal { max-height: 92vh; border-radius: 22px 22px 0 0; max-width: 100% !important; }
  .toast-root { right: 16px; left: 16px; bottom: 86px; width: auto; }
  .fab { right: 16px; bottom: 16px; height: 52px; padding: 0 18px 0 16px; }
  .search-input .input { width: 100%; }
  .search-input { flex: 1; }
  .table th, .table td { padding: 9px 10px; }
  .statement__body { padding: 6px 16px 16px; }
  .stmt-line { font-size: 0.84rem; }
  .stmt-total__val { font-size: 1.45rem; }
  .big-number { font-size: 1.9rem; }
  .frise-item { grid-template-columns: 64px 18px 1fr; gap: 9px; }
  .frise-item::before { left: 72px; }
  .cal__cell { min-height: 70px; padding: 4px; }
  .cal__post { font-size: 0; height: 6px; padding: 0; }
  .gantt { --label-w: 150px; }
  .hero-client__hello { font-size: 1.4rem; }
  .folder-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .folder-card { padding: 14px; }
  .folder-card__desc { display: none; }
  .file-row { flex-wrap: wrap; }
  .file-row__actions { width: 100%; justify-content: flex-end; }
  .dropdown { left: 8px !important; right: 8px !important; max-width: none; }
  .hide-mobile { display: none !important; }
}

@media (min-width: 721px) {
  .show-mobile { display: none !important; }
}

@media print {
  .sidebar, .topbar, .fab, .toast-root, .page-head__actions { display: none !important; }
  .app { display: block; }
  body { background: #fff; }
  .card { box-shadow: none; backdrop-filter: none; }
}
