/* Professional shell overrides loaded after the legacy application stylesheet. */
body {
  letter-spacing: 0;
}

.sidebar {
  border-right: 1px solid var(--border-sidebar);
  box-shadow: var(--shadow-sidebar);
}

.sidebar .brand,
.page-title,
.summary-card-label,
.kpi-label,
.table thead th,
.sidebar .nav-group-toggle,
.sidebar .section-label {
  letter-spacing: 0;
}

.sidebar .brand .brand-icon {
  box-shadow: none;
}

.sidebar .nav-group {
  margin: 8px 8px 0;
  border-radius: 8px;
  background: transparent;
}

.sidebar .nav-group + .nav-group {
  margin-top: 8px;
}

.sidebar .nav-group-toggle {
  min-height: 42px;
  padding: 10px 12px;
  font-size: 0.72rem;
  background: transparent;
}

.sidebar .nav-group-toggle:hover {
  background: var(--bg-sidebar-hover);
}

.sidebar .nav-group[open] {
  border-color: var(--border-sidebar);
  box-shadow: none;
}

.sidebar .nav-group[open] .nav-group-toggle {
  background: var(--bg-sidebar-hover);
}

.sidebar .nav-group-links {
  padding: 5px 5px 7px;
  background: transparent;
}

.sidebar .nav-group .nav-link {
  min-height: 38px;
  margin: 0 0 2px;
  padding: 9px 10px;
  border-radius: 6px;
  align-items: center;
}

.sidebar a.nav-link {
  min-height: 38px;
}

.sidebar a.nav-link.active,
[data-theme="dark"] .sidebar a.nav-link.active {
  background: var(--bg-sidebar-active);
  color: var(--text-on-accent);
  box-shadow: none;
}

[data-theme="dark"] .sidebar .nav-group-toggle:hover,
[data-theme="dark"] .sidebar .nav-group[open] .nav-group-toggle {
  background: var(--bg-sidebar-hover);
}

[data-theme="dark"] .sidebar .nav-group[open] {
  border-color: var(--border-sidebar);
  box-shadow: none;
}

[data-theme="dark"] .kpi-card,
[data-theme="dark"] .summary-card,
[data-theme="dark"] .filter-bar {
  background: var(--bg-card);
}

[data-theme="dark"] .table-meta a,
[data-theme="dark"] .summary-card-note a,
[data-theme="dark"] .filter-meta a,
[data-theme="dark"] .empty-state a {
  color: var(--accent);
}

.main {
  width: calc(100% - var(--sidebar-width));
  max-width: 1920px;
  padding: 24px clamp(18px, 2.2vw, 34px) 48px;
}

.card,
.kpi-card,
.summary-card,
.filter-bar,
.dashboard-panel,
.qr-preview-surface {
  border-radius: 8px;
}

.card,
.kpi-card,
.summary-card,
.filter-bar {
  box-shadow: var(--shadow-card);
}

.btn,
.btn-sm,
.btn-xs,
.form-control,
.form-select,
.input-group-text,
.nav-tabs .nav-link {
  border-radius: 6px;
}

.btn:focus-visible,
.form-control:focus-visible,
.form-select:focus-visible,
a:focus-visible,
button:focus-visible,
summary:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.table-responsive {
  border-radius: 8px;
}

@media (min-width: 769px) and (max-width: 1120px) {
  :root {
    --sidebar-width: 216px;
  }

  .sidebar .brand {
    padding-inline: 12px;
  }

  .sidebar .brand .v-tag {
    display: none;
  }

  .main {
    padding-inline: 18px;
  }
}

@media (max-width: 768px) {
  .mobile-topbar {
    height: 58px;
    padding: 0 12px;
    background: var(--bg-sidebar);
    box-shadow: 0 4px 16px rgba(0, 0, 0, .18);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .mobile-theme-btn {
    width: 36px;
    height: 36px;
    border-radius: 7px;
  }

  .main {
    width: 100%;
    max-width: 100vw;
    padding: 72px 10px calc(82px + env(safe-area-inset-bottom));
  }

  .summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .kpi-card,
  .summary-card,
  .filter-bar,
  .card,
  .dashboard-panel {
    border-radius: 8px;
    box-shadow: var(--shadow-card);
  }

  .kpi-card,
  .summary-card,
  .mobile-card-table tr,
  .master-lists-page .tab-pane > .row > [class^="col"]:first-child > .card,
  .master-lists-page .tab-pane > .row > [class*=" col"]:first-child > .card {
    background: var(--bg-card);
  }

  .kpi-card {
    min-height: 86px;
    padding: 12px;
  }

  .summary-card {
    min-height: 92px;
  }

  .filter-bar {
    padding: 10px;
  }

  .form-control,
  .form-select {
    min-height: 42px;
    border-radius: 6px;
  }

  .mobile-card-table tbody {
    gap: 9px;
  }

  .mobile-card-table tr {
    gap: 8px 10px;
    padding: 12px;
    border-radius: 8px;
    box-shadow: var(--shadow-card);
  }

  .mobile-card-table tr::before,
  .kpi-card::after {
    display: none;
  }

  .mobile-card-table td::before {
    letter-spacing: 0;
  }

  .modal-content {
    border-radius: 8px 8px 0 0;
  }

  .btn,
  .btn-sm,
  .btn-xs {
    min-height: 40px;
    border-radius: 6px;
  }

  .mobile-dock {
    left: 8px;
    right: 8px;
    bottom: max(8px, env(safe-area-inset-bottom));
    grid-template-columns: repeat(auto-fit, minmax(56px, 1fr));
    gap: 3px;
    padding: 5px;
    border-radius: 8px;
    background: var(--bg-card);
    box-shadow: 0 10px 28px rgba(0, 0, 0, .20);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .mobile-dock-item {
    min-height: 48px;
    border-radius: 6px;
    font-size: .65rem;
  }

  .mobile-dock-item.active {
    box-shadow: none;
  }

  .master-lists-page .nav-tabs .nav-link {
    border-radius: 6px;
  }

  .master-lists-page .tab-pane > .row > [class^="col"]:first-child > .card,
  .master-lists-page .tab-pane > .row > [class*=" col"]:first-child > .card,
  .dashboard-panel {
    border-radius: 8px;
    box-shadow: var(--shadow-card);
  }
}

@media (max-width: 420px) {
  .summary-grid {
    grid-template-columns: 1fr;
  }

  .filter-bar .filter-field,
  .filter-bar .col-auto {
    min-width: 100%;
    flex-basis: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.001ms !important;
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
  }
}
