/*
 DragonStar Design System V2 — layout and spacing.
*/

/* Global shell */
.portal-frame {
  grid-template-columns: var(--ui-sidebar-width) minmax(0, 1fr);
  background: transparent;
}

.portal-sidebar {
  width: var(--ui-sidebar-width);
  padding: 1rem .85rem;
  border-right: 1px solid color-mix(in srgb, var(--ui-border) 72%, transparent);
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--ui-sidebar-bg) 98%, white 2%),
      var(--ui-sidebar-bg));
}

.sidebar-brand {
  margin: 0 0 1.2rem;
  padding: .15rem .2rem .85rem;
}

.portal-sidebar nav:not(.sidebar-nav),
.sidebar-nav {
  gap: .3rem;
}

.portal-sidebar a {
  min-height: 2.65rem;
  padding: .58rem .7rem;
  border-radius: var(--ui-radius-sm);
}

.portal-sidebar a:hover {
  background: var(--ui-sidebar-hover);
}

.portal-sidebar a.active {
  background: var(--ui-sidebar-active);
  box-shadow: inset 3px 0 0 var(--ui-accent);
}

.portal-topbar {
  min-height: var(--ui-topbar-height);
  padding: .7rem 1rem;
  gap: 1rem;
  border-bottom: 1px solid color-mix(in srgb, var(--ui-border) 76%, transparent);
  background: var(--ui-topbar-bg);
  backdrop-filter: blur(14px) saturate(1.15);
  -webkit-backdrop-filter: blur(14px) saturate(1.15);
}

:root[data-topbar-pinned="true"] .portal-topbar {
  box-shadow: 0 8px 24px color-mix(in srgb, var(--ui-heading) 8%, transparent);
}

.portal-content {
  width: min(100%, var(--ui-content-max));
  margin-inline: auto;
  padding: clamp(1.25rem, 2vw, 2rem);
}

.dashboard-header,
.wfm-page-header {
  margin: 0 0 1.5rem;
  padding: clamp(1.35rem, 2vw, 2rem);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-lg);
  background:
    radial-gradient(42rem 20rem at 100% 0, color-mix(in srgb, var(--ui-primary) 8%, transparent), transparent 72%),
    var(--ui-surface-elevated);
  box-shadow: var(--ui-shadow-xs);
}

.dashboard-header {
  align-items: start;
}

.dashboard-header > div:first-child,
.wfm-page-header > div:first-child {
  display: grid;
  gap: .55rem;
}

.dashboard-header p,
.wfm-page-header p {
  margin: 0;
}

/* Better grid breathing room */
.dashboard-grid,
.content-grid,
.signal-grid,
.module-grid,
.profile-section-grid {
  gap: var(--ds-space-5);
}

.module-grid {
  grid-template-columns: repeat(auto-fit, minmax(16.5rem, 1fr));
}

/* WFM shell */
.wfm-app {
  gap: 1.5rem;
}

.wfm-shell {
  grid-template-columns: minmax(15rem, 17rem) minmax(0, 1fr);
  gap: 1.25rem;
}

.wfm-local-nav {
  top: calc(var(--ui-topbar-height) + 1rem);
  max-height: calc(100vh - var(--ui-topbar-height) - 2rem);
  padding: 1rem .85rem 1.15rem;
  border-radius: var(--ui-radius-lg);
  background: color-mix(in srgb, var(--ui-surface-elevated) 96%, var(--ui-bg));
  box-shadow: var(--ui-shadow-xs);
}

.wfm-local-nav-heading {
  margin-bottom: 1rem;
  padding-inline: .15rem;
}

.wfm-nav-groups {
  gap: 1.05rem;
}

.wfm-nav-group {
  gap: .5rem;
}

.wfm-nav-group-links {
  gap: .22rem;
  margin-left: .85rem;
  padding-left: .75rem;
  border-left-color: color-mix(in srgb, var(--ui-border) 82%, transparent);
}

.wfm-nav-link {
  min-height: 3.6rem;
  padding: .62rem .72rem;
  border-radius: var(--ui-radius-sm);
}

.wfm-nav-link.active {
  border-color: color-mix(in srgb, var(--ui-primary) 58%, var(--ui-border));
  background: var(--ui-primary-soft);
  box-shadow: inset 3px 0 0 var(--ui-primary);
}

.wfm-main {
  display: grid;
  gap: 1.25rem;
}

.wfm-route-toolbar,
.document-toolbar {
  padding: 1rem;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-elevated);
  box-shadow: var(--ui-shadow-xs);
}

/* Document workspace */
.documents-layout,
.documents-shell {
  gap: 1.25rem;
}

.documents-sidebar {
  border-radius: var(--ui-radius-lg);
}

.documents-main {
  display: grid;
  gap: 1rem;
}

.folder-grid {
  margin-block: .1rem;
}

/* Profile */
.profile-layout,
.profile-grid,
.profile-section-grid {
  gap: 1.25rem;
}

.profile-panel + .profile-panel {
  margin-top: 0;
}

/* Admin/backoffice */
.admin-layout,
.admin-content,
.backoffice-content {
  gap: 1.25rem;
}

.admin-actions,
.header-actions,
.wfm-header-actions,
.toolbar-actions {
  gap: .6rem;
}

/* Sidebars on narrow screens */
@media (max-width: 1100px) {
  .portal-content {
    padding: 1rem;
  }

  .wfm-shell {
    grid-template-columns: minmax(13rem, 15rem) minmax(0, 1fr);
    gap: 1rem;
  }
}

@media (max-width: 900px) {
  .wfm-shell {
    grid-template-columns: 1fr;
  }

  .wfm-local-nav {
    position: static;
    max-height: none;
  }

  .wfm-nav-group-links {
    border-left: 0;
    margin-left: 0;
    padding-left: 0;
  }

  .dashboard-header,
  .wfm-page-header {
    padding: 1.2rem;
  }
}

@media (max-width: 720px) {
  .portal-content {
    padding: .85rem;
  }

  .dashboard-header,
  .wfm-page-header {
    margin-bottom: 1rem;
    border-radius: var(--ui-radius-md);
  }

  .module-grid {
    grid-template-columns: 1fr;
  }
}