/* ED Nexus shared product shell: consistent responsive and accessible foundations. */
:root {
  --ui-control-height: 42px;
  --ui-focus: 0 0 0 3px color-mix(in srgb, var(--accent) 20%, transparent);
  --ui-z-sidebar: 300;
  --ui-z-scrim: 290;
}

button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible,
[tabindex]:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent) 38%, transparent); outline-offset: 2px; }
h1, h2, h3, .page-title, .modal-title { text-wrap: balance; }
p, .page-subtitle, .empty-sub { text-wrap: pretty; }
.stat-value, .metric-value, td, time { font-variant-numeric: tabular-nums; }
.mobile-navigation-button, .mobile-navigation-scrim { display: none; }
.tbl-wrap:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent) 38%, transparent); outline-offset: 2px; }
.tbl-wrap table { margin-bottom: 0; }

@media (max-width: 900px) {
  .mobile-navigation-button { display: inline-flex !important; flex: 0 0 auto; }
  .sidebar, .sidebar.collapsed {
    display: flex !important;
    width: min(320px, 88vw) !important;
    height: 100dvh !important;
    position: fixed !important;
    inset: 0 auto 0 0 !important;
    z-index: var(--ui-z-sidebar) !important;
    transform: translateX(-102%);
    transition: transform 180ms ease-out !important;
    padding-top: env(safe-area-inset-top);
    padding-bottom: env(safe-area-inset-bottom);
  }
  .mobile-navigation-open .sidebar { transform: translateX(0); }
  .mobile-navigation-scrim {
    position: fixed;
    inset: 0;
    z-index: var(--ui-z-scrim);
    width: 100%;
    height: 100%;
    border: 0;
    background: rgba(2, 6, 23, .64);
  }
  .mobile-navigation-open .mobile-navigation-scrim { display: block; }
  .sidebar .nav-label, .sidebar .sb-section-label, .sidebar .sb-logo-text, .sidebar .sb-bottom-text { display: initial !important; opacity: 1 !important; width: auto !important; height: auto !important; }
  .sidebar .sb-section-label { display: block !important; }
  .sidebar .sb-nav-group > summary { display: flex !important; }
  .sidebar .sb-nav-group > .sb-nav-items { padding: 3px 0 5px 9px !important; }
  .sidebar .sb-logo { justify-content: flex-start !important; padding: 18px 20px !important; }
  .sidebar .nav-item { justify-content: flex-start !important; padding: 10px 12px !important; }
  .sidebar .nav-icon { margin-right: 12px !important; }
  .sidebar .tree-container { display: block; }
  .sidebar .sb-toggle-btn { display: none; }
  .main { width: 100% !important; margin-left: 0 !important; }
  .topbar { padding-left: max(12px, env(safe-area-inset-left)) !important; padding-right: max(12px, env(safe-area-inset-right)) !important; }
  .content { padding: 18px !important; }
}

@media (max-width: 640px) {
  .topbar { flex-direction: row !important; align-items: center !important; min-height: 58px; gap: 8px !important; }
  .tb-left { flex: 1; flex-wrap: nowrap !important; justify-content: flex-start !important; overflow: hidden; }
  .tb-right { width: auto !important; flex-wrap: nowrap !important; justify-content: flex-end !important; }
  .tb-breadcrumb > :not(.tb-breadcrumb-cur) { display: none !important; }
  .tb-breadcrumb-cur { max-width: 34vw; overflow: hidden; text-overflow: ellipsis; }
  .tb-left > div:last-child { display: none; }
  .tb-right .search-wrap, .tb-right .lang-btn, .tb-right .user-chip { display: none; }
  .content { padding: 14px 12px !important; }
  .modal-head { position: sticky; top: 0; background: var(--surface); }
  .modal-foot { position: sticky; bottom: 0; background: var(--surface); padding-bottom: max(11px, env(safe-area-inset-bottom)) !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
}
