/* Sprint 8B: camada estrutural. As regras equivalentes em style.css permanecem
   temporariamente para compatibilidade com páginas ainda legadas. */
:root {
  --ds-sidebar-width: 16.25rem;
  --ds-sidebar-collapsed-width: 4.75rem;
  --ds-topbar-height: 4.25rem;
  --ds-content-max: 100rem;
}
.ds-skip-link { background: var(--ds-color-neutral-0); border-radius: var(--ds-radius-md); color: var(--ds-color-primary-700); left: var(--ds-space-4); padding: var(--ds-space-3) var(--ds-space-4); position: fixed; top: -5rem; z-index: calc(var(--ds-z-modal) + 10); }
.ds-skip-link:focus { top: var(--ds-space-4); }
.ds-app-sidebar { display: flex; flex-direction: column; width: var(--ds-sidebar-width); z-index: 60; }
.ds-app-brand { align-items: center; color: inherit; display: flex; gap: var(--ds-space-3); min-width: 0; text-decoration: none; }
.ds-app-main { min-height: 100vh; min-width: 0; }
.ds-app-topbar { align-items: center; background: var(--ds-color-neutral-0); border-bottom: var(--ds-border); display: flex; height: var(--ds-topbar-height); justify-content: space-between; position: sticky; top: 0; z-index: 30; }
.ds-content-container { margin-inline: auto; max-width: var(--ds-content-max); width: 100%; }
.ds-content-container.full-width { max-width: none; }
.ds-page-section { margin-block: var(--ds-space-6); }
.ds-page-grid { display: grid; gap: var(--ds-space-5); grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); }
.ds-page-actions { align-items: center; display: flex; flex-wrap: wrap; gap: var(--ds-space-2); justify-content: flex-end; }
.ds-sidebar-close { background: transparent; border: 0; color: var(--ds-color-neutral-0); display: none; font-size: var(--ds-font-size-xl); margin-left: auto; }
.ds-user-menu { margin-left: auto; position: relative; }
.ds-user-menu__trigger { align-items: center; background: transparent; border: 0; border-radius: var(--ds-radius-md); color: var(--ds-color-neutral-700); display: flex; gap: var(--ds-space-2); min-height: 2.75rem; padding: var(--ds-space-2); }
.ds-user-menu__popover form { margin: 0; }
.ds-user-menu__popover button { background: transparent; border: 0; border-radius: var(--ds-radius-sm); color: var(--ds-color-danger-600); display: block; padding: var(--ds-space-2) var(--ds-space-3); text-align: left; width: 100%; }
.nav-details > summary[aria-expanded="true"]::after { transform: rotate(90deg); }
.sidebar-mini .ds-app-sidebar { width: var(--ds-sidebar-collapsed-width); }
.sidebar-mini .nav-item[data-nav-label] { position: relative; }
.sidebar-mini .nav-item[data-nav-label]:hover::after,
.sidebar-mini .nav-item[data-nav-label]:focus-visible::after { background: var(--ds-color-neutral-900); border-radius: var(--ds-radius-sm); color: var(--ds-color-neutral-0); content: attr(data-nav-label); font-size: var(--ds-font-size-xs); left: calc(100% + var(--ds-space-2)); padding: var(--ds-space-2); position: absolute; white-space: nowrap; z-index: 70; }
@media (max-width: 900px) {
  .ds-app-sidebar { width: min(20rem, 88vw); }
  .ds-sidebar-close { display: inline-flex; }
  .sidebar-open { overflow: hidden; }
  .sidebar-open .sidebar-backdrop { display: block; }
  .ds-user-menu__name { display: none; }
}
@media (max-width: 375px) {
  .ds-app-topbar { padding-inline: var(--ds-space-3); }
  .topbar-context small { display: none; }
  .ds-content-container { padding-inline: var(--ds-space-4); }
}
