/* ===================== RESPONSIVE SHELL ===================== */
/* Breakpoints, die entscheiden, wann von der Desktop-Sidebar auf die
   mobile Bottom-Nav umgeschaltet wird und wie sich Grids auf schmalen
   Bildschirmen zu einer Spalte zusammenfalten. */
@media(max-width:1100px){
  .sidebar{ width:216px; padding:24px 16px 18px; }
  .main-content{ margin-left:216px; padding-inline:28px; }
  .nav-item{ padding:12px 12px; font-size:14px; }
  .contact-grid{ grid-template-columns:1fr 1fr; }
}
@media(max-width:900px){
  .detail-grid{ grid-template-columns:1fr; }
}
@media(max-width:760px){
  html, body{ height:100%; }
  body{ background:var(--bg); overscroll-behavior-y:none; }
  .sidebar{ display:none; }
  .app-shell{ display:flex; flex-direction:column; height:100vh; height:100dvh; min-height:0; overflow:hidden; }
  .main-content{ flex:1; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch; margin:0; padding:0 16px 20px; }
  .topbar{ height:82px; }
  .topbar-actions .avatar{ display:none; }
  .case-grid, .dashboard-bottom-grid, .calendar-layout, .contact-grid{ grid-template-columns:1fr; }
  .section-heading{ margin-top:28px; }
  .case-meta{ grid-template-columns:1fr; }
  .content-toolbar{ align-items:flex-start; }
  .content-toolbar>.primary-btn{ display:none; }
  .detail-heading h2{ font-size:24px; }
  .bubble{ max-width:84%; }
  .toast-wrap{ left:16px; right:16px; top:16px; }
  .mobile-nav{
    display:grid; flex-shrink:0; z-index:30; height:64px;
    margin:0 10px calc(10px + env(safe-area-inset-bottom)) 10px;
    background:rgba(13,63,54,.96); backdrop-filter:blur(12px); grid-template-columns:1fr 1fr 66px 1fr 1fr;
    align-items:center; border-radius:20px; padding:4px 8px; box-shadow:0 10px 35px rgba(0,0,0,.2);
  }
  .mobile-nav a{ border:0; background:transparent; color:rgba(255,255,255,.65); display:grid; place-items:center; gap:2px; font-size:9px; }
  .mobile-nav a span{ font-size:16px; }
  .mobile-nav a.active{ color:#fff; }
  .mobile-nav .mobile-report{ width:50px; height:50px; border-radius:16px; background:var(--accent); color:var(--brand); margin:auto; transform:translateY(-10px); box-shadow:0 8px 20px rgba(0,0,0,.18); }
  .mobile-nav .mobile-report span{ font-size:24px; }
}
@media(min-width:761px) and (max-width:1200px){
  .floating-report{ display:flex; align-items:center; gap:8px; position:fixed; right:26px; bottom:26px; border:0; background:var(--brand); color:#fff; border-radius:99px; padding:14px 18px; box-shadow:var(--shadow); font-weight:700; z-index:15; }
}
