.sidebar { height:100dvh; }
.content,.page,.card,.grid-2>*,.grid-3>*,.grid-12>*,.msg-main { min-width:0; }
.table-wrap { max-width:100%; overflow-x:auto; }
.table-wrap:focus-visible,button:focus-visible,a:focus-visible { outline:3px solid #0369a1; outline-offset:2px; }
.page-header h2,.card-title,.kpi-value { overflow-wrap:anywhere; }
@media (max-width:1050px) {
  .kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .grid-2,.grid-3,.grid-12,.items-grid,.address-grid { grid-template-columns:minmax(0,1fr); }
  .topbar { padding:0 12px; gap:8px; }
  .topbar-right { gap:6px; min-width:0; }
  .topbar-right .user-chip span,.topbar-right .procurer-badge { display:none; }
  .topbar-search { min-width:0; }
}
@media (max-width:700px) {
  .sidebar,.sidebar.collapsed { width:60px; }
  .sidebar.mobile-open { width:min(280px,85vw); box-shadow:0 0 0 100vmax #0006; }
  .sidebar:not(.mobile-open) .logo-text,.sidebar:not(.mobile-open) .logo-icon,
  .sidebar:not(.mobile-open) .nav-section-label,.sidebar:not(.mobile-open) .nav-label,
  .sidebar:not(.mobile-open) .nav-arrow,.sidebar:not(.mobile-open) .sidebar-footer span,
  .sidebar:not(.mobile-open) .nav-submenu { display:none!important; }
  .sidebar:not(.mobile-open) .sidebar-logo { padding:0 8px; }
  .sidebar-toggle { min-width:44px; min-height:44px; margin:0; }
  .sidebar:not(.mobile-open) .nav-item { padding:12px 8px; justify-content:center; min-height:44px; }
  .sidebar-footer { padding:10px 18px; }
  .sidebar.mobile-open .nav-label,.sidebar.mobile-open .logo-text { opacity:1; width:auto; }
  .main,.main.shifted { margin-left:60px; width:calc(100% - 60px); max-width:calc(100% - 60px); }
  .topbar { flex-wrap:wrap; height:auto; min-height:60px; padding:8px; }
  .topbar-search { flex:1 1 100%; max-width:none; }
  .topbar-right { margin-left:0; max-width:100%; }
  .content { padding:14px 10px; }
  .page-header h1,.page-header h2 { font-size:20px; }
  .kpi-grid,.form-row,.form-row-3,.prq-grid,.voucher-grid,.msg-layout { grid-template-columns:minmax(0,1fr); }
  .kpi-card,.card-body { padding:14px; }
  .card-header { padding:12px; gap:8px; flex-wrap:wrap; }
  .table-wrap table { min-width:650px; }
  .tabs { flex-wrap:wrap; }
  .profile-header { flex-wrap:wrap; padding:14px; }
  .msg-list { max-height:200px; overflow-y:auto; }
  .msg-input-area { padding:10px; }
  .msg-input-area input { min-width:0; }
  .msg-chat { padding:12px; }
  .btn { white-space:normal; }
}
