/* Shared responsive layout fixes. Loaded after the base stylesheet. */
.menu-backdrop { display: none; }

@media (max-width: 960px) {
  .topbar { padding-left: 16px; padding-right: 16px; gap: 12px; }
  .top-actions { gap: 9px; }
  .top-search { width: 170px; }
  .content { padding-left: 18px; padding-right: 18px; }
  .page-heading { gap: 16px; }
  .page-heading h1 { font-size: 21px; }
}

@media (max-width: 700px) {
  body { overflow-x: hidden; }
  .app-shell { min-width: 0; }
  .sidebar {
    display: flex;
    position: fixed;
    z-index: 100;
    inset: 0 auto 0 0;
    width: min(290px, 86vw);
    height: 100vh;
    transform: translateX(-105%);
    transition: transform .2s ease;
    box-shadow: 14px 0 35px rgba(15, 23, 42, .22);
  }
  body.menu-open .sidebar { transform: translateX(0); }
  body.menu-open { overflow: hidden; }
  .menu-backdrop {
    display: block;
    position: fixed;
    z-index: 90;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    background: rgba(15, 23, 42, .48);
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease;
  }
  body.menu-open .menu-backdrop { opacity: 1; pointer-events: auto; }
  .main { width: 100%; min-width: 0; }
  .topbar { position: sticky; top: 0; z-index: 50; gap: 9px; }
  .top-actions { min-width: 0; gap: 8px; }
  .top-search { min-width: 0; }
  .header-search-wrap { min-width: 0; }
  .content { min-width: 0; }
  .table-wrap { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .table-wrap::after {
    content: 'Posuňte tabuľku do strán';
    display: block;
    padding: 0 12px 9px;
    color: #98a2b3;
    font-size: 10px;
    text-align: right;
  }
  .table-wrap:has(.data-table) .data-table { min-width: 600px; }
  .data-table th, .data-table td { padding: 10px 9px; }
  .detail-head { flex-wrap: wrap; }
  .detail-grid { grid-template-columns: 1fr 1fr; }
  .page-heading h1 { font-size: 21px; }
  .panel-header { gap: 10px; flex-wrap: wrap; padding: 12px 14px; }
  .metric { gap: 10px; flex-wrap: wrap; }
  .login-card { width: min(100% - 28px, 430px); }
}

@media (max-width: 420px) {
  .topbar { padding: 0 10px; }
  .top-actions { gap: 6px; }
  .top-user-name { display: none; }
  .top-actions .button { padding: 0 9px; }
  .header-search-wrap { left: 50px; right: 82px; }
  .filters { grid-template-columns: 1fr; }
  .actions { grid-column: auto; }
  .stats { grid-template-columns: 1fr; }
  .detail-grid { grid-template-columns: 1fr; }
}
