// ============================================================================= // Admin app shell — a fixed left sidebar + scrollable main content area. // Simpler than apps/web's AppLayout (no collapsible rail, no nested submenu) // — an internal ops tool, three sections. // ============================================================================= .admin-layout { display: flex; min-height: 100vh; } .admin-sidebar { flex-shrink: 0; width: 15rem; display: flex; flex-direction: column; padding: var(--space-lg) var(--space-md); background: var(--color-surface); border-right: 1px solid var(--color-border); &__brand { font-family: var(--font-display); font-weight: 700; font-size: var(--font-size-lg); color: var(--color-text); margin-bottom: var(--space-lg); span { color: var(--color-accent); } } &__nav { display: flex; flex-direction: column; gap: 0.15rem; a { display: flex; align-items: center; gap: var(--space-sm); padding: var(--space-sm); border-radius: var(--radius-base); color: var(--color-text-muted); text-decoration: none; font-size: var(--font-size-sm); font-weight: 600; &:hover { background: var(--color-surface-alt); color: var(--color-text); } &.active { background: color-mix(in srgb, var(--color-primary) 12%, var(--color-surface)); color: var(--color-primary); } } } &__footer { margin-top: auto; display: flex; flex-direction: column; gap: var(--space-xs); padding-top: var(--space-md); border-top: 1px solid var(--color-border); } &__who { font-size: var(--font-size-sm); font-weight: 600; color: var(--color-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } &__footer button { padding: var(--space-xs) var(--space-sm); font-size: var(--font-size-sm); font-family: var(--font-body); color: var(--color-text-muted); background: none; border: 1px solid var(--color-border); border-radius: var(--radius-base); cursor: pointer; text-align: left; &:hover { color: var(--color-text); border-color: var(--color-primary); } } &__version { margin: 0; font-size: var(--font-size-xs); color: var(--color-text-muted); } } .admin-content { flex: 1; min-width: 0; padding: var(--space-xl); overflow: auto; }