.shell { display: grid; grid-template-columns: var(--sidebar-width) 1fr; min-height: 100vh; } /* ── Sidebar ───────────────────────────────────────────────────────────────── */ .sidebar { position: fixed; top: 0; left: 0; width: var(--sidebar-width); height: 100vh; background: var(--color-surface); border-right: 1px solid var(--color-border); display: flex; flex-direction: column; z-index: 100; overflow-y: auto; } .sidebarHeader { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-5) var(--space-5); border-bottom: 1px solid var(--color-border); } .sidebarTitle { font-size: var(--text-sm); font-weight: 700; color: var(--color-text-primary); letter-spacing: -0.01em; line-height: 1.2; } .sidebarSubtitle { font-size: var(--text-xs); color: var(--color-text-muted); margin-top: 1px; } /* ── Navegação ─────────────────────────────────────────────────────────────── */ .nav { flex: 1; padding: var(--space-4) var(--space-3); display: flex; flex-direction: column; gap: var(--space-1); } .navLabel { font-size: var(--text-xs); font-weight: 600; color: var(--color-text-muted); text-transform: uppercase; letter-spacing: 0.08em; padding: 0 var(--space-3); margin-bottom: var(--space-2); } .navLink { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-2) var(--space-3); border-radius: var(--radius-md); font-size: var(--text-sm); font-weight: 500; color: var(--color-text-secondary); transition: all var(--transition-fast); text-decoration: none; } .navLink:hover { background: var(--color-surface-2); color: var(--color-text-primary); } .navLinkActive { background: var(--color-accent-subtle); color: var(--color-accent); } .navLinkActive:hover { background: var(--color-accent-subtle); color: var(--color-accent-hover); } /* ── Footer da sidebar ─────────────────────────────────────────────────────── */ .sidebarFooter { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-4) var(--space-4); border-top: 1px solid var(--color-border); margin-top: auto; } .userAvatar { width: 32px; height: 32px; border-radius: var(--radius-full); background: var(--color-accent-subtle); color: var(--color-accent); display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .userInfo { min-width: 0; } .userName { font-size: var(--text-sm); font-weight: 500; color: var(--color-text-primary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .userRole { font-size: var(--text-xs); color: var(--color-text-muted); } .logoutBtn { margin-left: auto; flex-shrink: 0; color: var(--color-text-muted); padding: var(--space-1); border-radius: var(--radius-sm); transition: color var(--transition-fast), background var(--transition-fast); } .logoutBtn:hover { color: var(--color-priority-critical); background: rgba(248, 113, 113, 0.1); } /* ── Área principal ────────────────────────────────────────────────────────── */ .main { grid-column: 2; min-height: 100vh; display: flex; flex-direction: column; } /* ── Header ────────────────────────────────────────────────────────────────── */ .header { position: sticky; top: 0; height: var(--header-height); display: flex; align-items: center; justify-content: space-between; padding: 0 var(--space-8); background: rgba(15, 17, 23, 0.85); backdrop-filter: blur(12px); border-bottom: 1px solid var(--color-border); z-index: 50; } .pageTitle { font-size: var(--text-lg); font-weight: 600; color: var(--color-text-primary); letter-spacing: -0.02em; } .headerActions { display: flex; align-items: center; gap: var(--space-3); } /* ── Conteúdo ──────────────────────────────────────────────────────────────── */ .content { flex: 1; padding: var(--space-8); max-width: var(--content-max-w); width: 100%; animation: fadeIn var(--transition-normal) ease; } @keyframes fadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }