.sidebar-close, .sidebar-backdrop { display: none; }
.sidebar-backdrop[hidden] { display: none !important; }
.sidebar-close { align-items: center; justify-content: center; width: 44px; height: 44px; flex: 0 0 44px; padding: 10px; border: 1px solid #ffffff35; border-radius: 6px; color: white; background: transparent; cursor: pointer; }
.sidebar-close svg { width: 20px; height: 20px; }
.sidebar { min-height: 0; }
.sidebar .brand, .sidebar .company-switch, .sidebar-footer { flex-shrink: 0; }
.sidebar .nav { min-height: 80px; flex: 1; overscroll-behavior: contain; align-content: start; grid-auto-rows: max-content; }
.topbar > *, .panel-header > *, .field, .form-grid > * { min-width: 0; }
.topbar h1, .panel-header h2, .metric strong, .notice, .empty { overflow-wrap: anywhere; }
.table-card, .acc-table-wrap, .catalog-table { position: relative; max-width: 100%; overscroll-behavior-x: contain; }
.field select { width: 100%; min-width: 0; max-width: 100%; min-height: 40px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 6px; background: white; color: var(--ink); }
.page-agenda .app-shell { grid-template-columns: minmax(0, 1fr); }
.page-agenda .sidebar { position: fixed; z-index: 40; inset: 0 auto 0 0; width: min(310px, calc(100vw - 32px)); height: 100dvh; transform: translateX(-105%); visibility: hidden; }
.page-agenda .sidebar-close { display: flex; align-self: flex-end; }
.page-agenda .icon-button { display: grid; }
.page-agenda.sidebar-open .sidebar { transform: none; visibility: visible; }
body.sidebar-open { overflow: hidden; }
body.sidebar-open .sidebar-backdrop { display: block; position: fixed; inset: 0; z-index: 39; border: 0; border-radius: 0; background: #10182070; cursor: pointer; }
@media (max-width: 900px) {
  .app-shell { grid-template-columns: minmax(0, 1fr); }
  .sidebar { position: fixed; z-index: 40; inset: 0 auto 0 0; width: min(310px, calc(100vw - 32px)); height: 100dvh; padding-top: max(12px, env(safe-area-inset-top)); padding-bottom: max(12px, env(safe-area-inset-bottom)); transform: translateX(-105%); visibility: hidden; gap: 12px; }
  body.sidebar-open .sidebar { transform: none; visibility: visible; }
  .sidebar-close { display: flex; align-self: flex-end; }
  .sidebar-footer { padding-top: 10px; }
  .sidebar .nav-link { min-height: 44px; }
  .main { padding: 16px max(12px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); }
  .icon-button { display: grid; width: 44px; height: 44px; }
  .topbar { grid-template-columns: 44px minmax(0, 1fr); gap: 12px; }
  .topbar-actions { grid-column: 1 / -1; justify-content: flex-start; }
  .topbar h1 { font-size: 26px; }
  .button { min-height: 44px; max-width: 100%; padding: 10px 12px; white-space: normal; text-align: center; font-size: 14px; }
  .form-grid { grid-template-columns: minmax(0, 1fr); }
  .panel-header { flex-wrap: wrap; }
  .panel, .state-panel { padding: 16px; }
  .main input:not([type=checkbox]):not([type=radio]):not([type=color]), .main select, .main textarea, .login-form input, .login-form select { min-width: 0; max-width: 100%; font-size: 16px; min-height: 44px; }
  .field { max-width: 100%; }
  .main .field[style*="min-width"] { min-width: 0 !important; width: 100%; }
  .cols-2, .cols-3, .cols-4 { grid-template-columns: minmax(0, 1fr); }
  .module-grid { grid-template-columns: repeat(auto-fit, minmax(min(210px, 100%), 1fr)); }
  .module-row { grid-template-columns: auto minmax(0, 1fr) auto; }
  .module-row strong { overflow-wrap: anywhere; }
  .badge { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
  .table-card { overflow-x: auto; }
  .table-card > table { min-width: 620px; }
  .login-page { padding: 16px; }
  .login-shell { grid-template-columns: minmax(0, 1fr); }
  .login-story { padding: 20px; }
  .login-story h1 { font-size: 28px; }
  .login-proof { display: none; }
  .login-form { padding: 24px 20px; }
  .catalog-icon, .acc-icon { min-height: 44px; }
}
@media (max-height: 550px) and (max-width: 900px) {
  .sidebar { overflow-y: auto; }
  .sidebar .nav { overflow: visible; min-height: auto; flex: 0 0 auto; }
}
@media print { .sidebar-backdrop, .sidebar-close { display: none !important; } }
